📅  最后修改于: 2020-11-30 01:34:29             🧑  作者: Mango
在本节中,我们将了解PostgreSQL字符数据类型的工作原理,这使我们能够为表选择正确的字符类型。我们还看到了字符数据类型的示例。
在PostgreSQL中,字符数据表示字符类型值,也称为CHAR 。换句话说,我们可以说PostgreSQL字符数据类型用于存储长度有限的字符。
我们有下表,其中包含PostgreSQL支持的所有字符数据类型:
Datatype | Explanation |
---|---|
char(n) | Here n represents the number of characters to store fixed-length strings. Space padded on the right is equal to the size of characters. |
character(n) | Here n is the number of characters to store fixed-length strings. Space padded on the right is equal to the size of characters. |
varchar(n) | Here n is the number of characters to store. Variable-length string. |
character varying(n) | Here n is the number of characters to store. Variable-length string. |
text | Variable-length string. |
在上表中, CHAR(n)和VARCHAR(n)最多可以存储n个字符,其中n表示字符长度的限制。如果未定义n ,则默认为char(1)或字符(1)。
如果尝试在用char(n)指定的列中获取更长的字符串,则PostgreSQL在输出中显示错误。
但是,如果其他字符都是空格,我们仍然有例外,PostgreSQL将把空格修剪到最大长度(n)并存储字符串。
如果将字符串强制转换为CHAR(n)或VARCHAR(n) ,则PostgreSQL会将字符串缩短为n个字符,然后再将其插入表中。
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表,如以下屏幕快照所示:
一旦生成了Char_demo表,我们就可以使用INSERT命令将一些值插入其中。
INSERT INTO Char_demo (A, B)
VALUES ('Javatpoint',
'It is a demo test for char'
);
输出量
执行完上述命令后,我们将获得以下输出,PostgreSQL将发出一个错误:“对于字符类型(1) ,该值太长”。
这意味着A列的数据类型为char(1),并且我们尝试在其中将三个字符的字符串插入特定的列,如下面的屏幕截图所示:
要解决以上错误,我们将使用以下命令,如下所示:
INSERT INTO Char_demo (A, B)
VALUES ('J',
'It is a demo test for char'
);
输出量
执行上面的命令后,我们将获得以下输出,并且PostgreSQL再次发出错误:“对于字符 (10)类型,该值太长”。
这意味着B列的数据类型为char(10),而输入的字符数大于10,如下面的屏幕截图所示:
因此,要解决以上两个错误,我们将使用以下命令:
INSERT INTO Char_demo (A, B)
VALUES ('J',
'Javatpoint'
);
输出量
执行完上述命令后,我们将获得以下结果,该结果显示该值已成功插入Char_demo表中。
从上面的屏幕快照中可以看到,我们可以将列A和B的值成功插入到字符数据类型中。
创建并插入Char_demo表的值之后,我们将使用SELECT命令返回Char_demo表的所有行:
SELECT * FROM Char_demo;
输出量
成功执行上述命令后,我们将获得以下结果,可以看到已成功输入了列A和列B的值。
在PostgreSQL字符数据类型部分中,我们了解到字符数据类型可用于定长字符。