↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 数据类型 / 字符串

"char"

单字节内部类型

当前查看 PostgreSQL 18。

中文定义与说明

单字节内部类型

同版本中文手册节选

表 8.4 显示了在 PostgreSQL 里可用的一般用途的字符类型。

SQL 定义了两种主要字符类型:character varying(n) 和 character(n),其中 n 是正整数。这两种类型都可以存储长度最多为 n 个字符(而不是字节)的字符串。试图把更长的字符串存入这些类型的列时会报错,除非超出的字符全部都是空格,在这种情况下字符串会被截断到最大长度。(这一多少有些奇怪的例外是 SQL 标准要求的。)不过,如果显式把一个值转换为 character varying(n) 或 character(n),那么超长的值会被截断为 n 个字符而不会报错。(这同样是 SQL 标准要求的。)如果要存储的字符串短于声明长度,character 类型的值会用空格填充;character varying 类型则只是简单地存储较短的字符串。

此外,PostgreSQL 还提供 text 类型,用于存储任意长度的字符串。虽然 text 类型不在 SQL 标准中,但其他若干 SQL 数据库管理系统也提供了它。text 是 PostgreSQL 的原生字符串数据类型,因为大多数对字符串进行操作的内置函数都声明为接受或返回 text,而不是 character varying。在很多场景下,character varying 的行为就像是建立在 text 之上的一个域。

类型名 varchar 是 character varying 的别名,而 bpchar(带长度说明时)和 char 是 character 的别名。varchar 和 char 这两个别名由 SQL 标准定义;bpchar 则是 PostgreSQL 的扩展。

查看完整中文手册与上下文。

PG10–20 核心源码清单。类型转换与操作符类列出源码显式声明的关系;缺少记录不能排除通过其他机制进行转换或使用索引。

定义

单字节内部类型

"char"
目录名称
pg_catalog."char"
类型 OID
18
类型种类
基础类型
声明长度
1 字节
存储策略
plain
输入函数
charin
输出函数
charout
手册中的声明
"char"
存储大小
1 字节
手册说明
单字节内部类型

系统目录属性

此构建的源码初始化值。字段含义参见 pg_type 。包含头文件默认值;依赖构建的常量保留符号形式,不作为服务器运行时实测。

oid
18
descr
single character
typacl
_null_
typlen
1
typelem
0
typname
char
typsend
charsend
typtype
b
typalign
c
typarray
0
typbyval
t
typdelim
','
typinput
charin
typmodin
-
typndims
0
typowner
POSTGRES
typrelid
0
typmodout
-
typoutput
charout
typtypmod
-1
typanalyze
-
typdefault
_null_
typnotnull
f
typreceive
charrecv
typstorage
p
typbasetype
0
typcategory
Z
typcollation
0
typisdefined
t
typnamespace
pg_catalog
typsubscript
-
typdefaultbin
_null_
array_type_oid
1002
typispreferred
f
array_type_name
_char

类型转换 8

与此类型相关的显式 pg_cast 记录。PostgreSQL 还支持 pg_cast 之外的类型转换,缺少记录不能证明转换不可能。

源类型目标类型转换上下文转换方式函数
chartext隐式函数text(char)
charbpchar赋值函数bpchar(char)
charvarchar赋值函数text(char)
textchar赋值函数char(text)
bpcharchar赋值函数char(text)
varcharchar赋值函数char(text)
charint4显式函数int4(char)
int4char显式函数char(int4)

运算符重载 6

每种操作数签名均为独立重载。实现函数和返回类型来自同一源码构建。

运算符左操作数右操作数返回类型含义实现函数
=charcharbool等于。chareq
<>charcharbool不等于。charne
<charcharbool小于。charlt
<=charcharbool小于或等于。charle
>charcharbool大于。chargt
>=charcharbool大于或等于。charge

操作符类 4

声明输入类型与此类型相符的操作符类。多态操作符类、类型转换和表达式索引还可能提供其他索引路径;不能仅凭此表判断是否支持索引。

操作符类索引方法输入类型操作符族默认存储类型
char_opsbtreecharbtree/char_ops是与输入类型相同
char_opshashcharhash/char_ops是与输入类型相同
char_minmax_opsbrincharbrin/char_minmax_ops是char
char_bloom_opsbrincharbrin/char_bloom_ops否char

版本比较

PostgreSQL 17 → 18。属性比较不包含构建标识和说明正文;原始目录字段与源描述保留原文。

这两个样本的系统目录和结构化属性没有变化。

文档与源码

构建
18.6 · https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f

相关条目

全部数据类型 · 下载此版本 JSON · 最早收录的样本不代表该类型的实际引入版本。