PostgreSQL - Character类型

PostgreSQL - Character类型 首页 / PostgreSQL入门教程 / PostgreSQL - Character类型

在本节中,无涯教程将了解 PostgreSQL字符数据类型的工作原理,该数据类型使无涯教程能够为表选择正确的字符类型。

字符数据类型

PostgreSQL 中,字符数据代表字符类型值,也称为 CHAR 。换句话说,无涯教程可以说PostgreSQL字符数据类型用于存储长度有限的字符。

无涯教程有下表,其中包含 postgreSQL 的所有字符数据类型:

数据类型说明
char(n)此处 n 表示要存储固定长度字符串的字符数。
character(n)此处 n 是要存储固定长度字符串的字符数。
varchar(n)此处 n 要存储的字符数,可变长度的字符串。
character varying(n)此处 n 要存储的字符数,可变长度的字符串。
text可变长度字符串。

在上表中, CHAR(n)和VARCHAR(n)最多可以存储 n 个字符,其中 n 表示长度限制的字符。如果未定义 n ,则默认为字符(1)字符(1)。

如果无涯教程尝试在用 char(n)指定的列中获取更长的字符串,则 PostgreSQL 会显示错误在输出中。

字符类型语法

PostgreSQL字符数据类型的语法如下:

variable_name CHAR(n)

字符类型示例

让无涯教程看不同的示例,以了解 PostgreSQL 字符数据类型的工作方式。

为此,无涯教程将在 CREATE 命令的帮助下创建一个新的表名称 Char_demo 表,并使用 INSERT 命令插入一些值。

无涯教程将使用 CREATE 命令创建 Char_demo 表:

CREATE TABLE Char_demo (
    Id serial PRIMARY KEY,
    A CHAR (1),
    B CHAR (10)
);

执行上述命令后,已成功创建 Char_demo 表,如以下屏幕截图所示:

PostgreSQL Character

一旦生成 char_demo 表,无涯教程就可以使用插入命令将一些值插入它。

INSERT INTO Char_demo (A, B)
VALUES ('Learnfk',
        'It is a demo test for char'
        );

执行完上述命令后,无涯教程将得到以下输出,PostgreSQL将发出一个错误:" value too long for type character(1)"。

这意味着 A 列的数据类型为 char(1),在这里无涯教程尝试在特定列中插入包含三个字符的字符串,如无涯教程在下面的截图:

PostgreSQL Character

要解决以上错误,无涯教程将使用以下命令,如下所示:

INSERT INTO Char_demo (A, B)
VALUES ('J',
        'It is a demo test for char'
        );	

在执行上述命令时,无涯教程将获得以下输出,并且再次postgreSQL将发出错误"value too long for type character(10)"的值。

这意味着 B 列的数据类型为 char(10),而输入的字符数大于10 ,因为可以在下面的屏幕截图中看到:

PostgreSQL Character

因此,要解决以上两个错误,无涯教程将使用以下命令:

INSERT INTO Char_demo (A, B)
VALUES ('J',
        'Learnfk'
        );

执行上述命令后,无涯教程将获取以下结果,该结果将显示该值已成功插入到 char_demo 表中。

PostgreSQL Character

如上图所示,无涯教程可以将 A和B列的值成功插入到字符数据类型中。

创建并插入 Char_demo 表的值之后,无涯教程将使用 SELECT 返回所有行 Char_demo 表中:

SELECT * FROM Char_demo;

成功执行上述命令后,无涯教程将获得以下结果,可以看到已成功输入 A列和B列的值。

PostgreSQL Character

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

Service Mesh实践指南 -〔周晶〕

Go语言核心36讲 -〔郝林〕

OpenResty从入门到实战 -〔温铭〕

透视HTTP协议 -〔罗剑锋(Chrono)〕

数据中台实战课 -〔郭忆〕

分布式数据库30讲 -〔王磊〕

Linux内核技术实战课 -〔邵亚方〕

Spark核心原理与实战 -〔王磊〕

Rust 语言从入门到实战 -〔唐刚〕

好记忆不如烂笔头。留下您的足迹吧 :)