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

字符类型

名字 描述
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 字节 单字节内部类型
name 64 字节 对象名称的内部类型

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-20 19:32:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-20 19:32:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-20 19:32:02       82 阅读
  4. Python语言-面向对象

    2023-12-20 19:32:02       91 阅读

热门阅读

  1. vi和vim的区别

    2023-12-20 19:32:02       65 阅读
  2. css 2D转换

    2023-12-20 19:32:02       61 阅读
  3. 15.动态规划:数据结构优化DP

    2023-12-20 19:32:02       64 阅读
  4. k8s pod网络排查教程

    2023-12-20 19:32:02       57 阅读
  5. docker 搭建靶场

    2023-12-20 19:32:02       59 阅读
  6. 记录 | ubuntu安装oh my zsh

    2023-12-20 19:32:02       61 阅读
  7. 阿里云ECS端口开放安全组配置编程

    2023-12-20 19:32:02       56 阅读