【PostgreSQL】从零开始:(十八)数据类型-字符类型

发布时间:2023年12月20日

字符类型

名字描述
character varying(n),varchar(n)可变长度的字符类型,它类似于其他数据库中的VARCHAR数据类型。可以在创建表时指定字符可变列的最大长度。如果不指定长度,则默认为255个字符。
character(n), ,char(n)bpchar(n)固定长度的字符类型,最多可以存储n个字符。如果存储的字符串长度小于n,会在末尾自动填充空格。
bpchar存储固定长度字符的数据类型。bpchar类型使用固定长度的存储空间来存储字符数据,不管实际输入的字符的长度如何,都会被填充到固定长度,在存储和处理固定长度的字符数据时非常有用。它可以用于存储具有固定长度的字符串,例如电话号码、邮政编码等,如果插入的数据长度超过了bpchar类型的指定长度,PostgreSQL将会截断或填充数据,要使用bpchar类型的固定长度特性,请确保指定正确的长度,以便正确存储和处理字符数据。( 16 / 15 / 14 / 13 / 12 / 11 / 10)版本支持
text可变长度的字符类型,可以存储任意长度的字符串。通常用于存储大量文本数据。
创建表格: CREATE TABLE contact ( id serial PRIMARY KEY, phone_number bpchar(10) );
插入数据: INSERT INTO contact (phone_number) VALUES ('1234567890');
查询数据: SELECT * FROM contact;
结果: id | phone_number ----+-------------- 1 | 1234567890
CREATE TABLE test1 (a character(4));
INSERT INTO test1 VALUES ('ok');
SELECT a, char_length(a) FROM test1; -- (1)

  a   | char_length
------+-------------
 ok   |           2


CREATE TABLE test2 (b varchar(5));
INSERT INTO test2 VALUES ('ok');
INSERT INTO test2 VALUES ('good      ');
INSERT INTO test2 VALUES ('too long');
ERROR:  value too long for type character varying(5)
INSERT INTO test2 VALUES ('too long'::varchar(5)); -- explicit truncation
SELECT b, char_length(b) FROM test2;

   b   | char_length
-------+-------------
 ok    |           2
 good  |           5
 too l |           5

PostgreSQL 中还有另外两种固定长度字符类型。它们不用于常规用途,仅用于内部系统目录。该类型用于存储标识符。它的长度目前定义为 64 个字节(63 个可用字符加上终止符),但应使用源代码中的常量进行引用。长度在编译时设置(因此可针对特殊用途进行调整);默认的最大长度可能会在将来的版本中更改。类型(注意引号)的不同之处在于它只使用一个字节的存储,因此只能存储一个 ASCII 字符。它在系统目录中用作简单的枚举类型。

名字存储大小描述
“char”1 字节单字节内部类型
name64 字节对象名称的内部类型
文章来源:https://blog.csdn.net/sinat_36528886/article/details/135081760
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。