PostgreSQL - Varchar类型

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

在本节中,无涯教程将了解 PostgreSQL varchar数据类型的工作原理,该数据类型使无涯教程可以存储长度不受限制的字符。

Varchar类型

PostgreSQL 中,Varchar数据类型用于保留无限长的字符。它可以容纳最大长度为 65,535 个字节的字符串。

Varchar类型语法

PostgreSQL Varchar数据类型的语法如下:

variable_name VARCHAR(n)

Varchar数据示例

无涯教程将使用 CREATE 命令在 Organization 数据库中创建 Varchar_demo 表:

CREATE TABLE Varchar_demo (
    Id serial PRIMARY KEY,
    P VARCHAR(1),
    Q VARCHAR(10)
);

成功执行上述命令后,已创建 Varchar_demo 表,如下图所示:

PostgreSQL Varchar

一旦生成 varchar_demo 表,无涯教程将使用插入命令将某些值插入其中。

INSERT INTO Varchar_demo (P, Q)
VALUES ('Learnfk',
        'It is a demo for Varchar'
        );

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

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

PostgreSQL Varchar

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

INSERT INTO Varchar_demo (P, Q)
VALUES ('J',
        'It is a demo for Varchar'
        );

执行上述命令时,PostgreSQL为 Q 列重新发出类似的错误,这意味着 Q 列的数据类型为 VARCHAR(10) 。相反,输入的字符数多于10 ,如下面的屏幕截图所示:

PostgreSQL Varchar

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

INSERT INTO Varchar_demo (P, Q)
VALUES ('J',
        'Learnfk'
        );

执行上述命令后,无涯教程将得到以下结果:该值已成功插入到 Varchar_demo 表中。

PostgreSQL Varchar

如上图所示,无涯教程成功插入了 P和Q 列的值。

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

SELECT * FROM Varchar_demo;

实施上述命令后,无涯教程将获得以下结果,可以看到 P列和Q列的值已成功输入到 Varchar_demo 表。

PostgreSQL Varchar让无涯教程再看一个示例,以详细了解Varchar数据类型。在CREATE命令的帮助下,将创建一个新表 Varchar_demo2 ,并使用INSERT命令插入一些值。

无涯教程将使用 CREATE 命令将 Varchar_demo2 创建到与上述 Organization 类似的数据库中:

CREATE TABLE Varchar_demo2 (  
   Id SERIAL PRIMARY KEY,  
   Name VARCHAR(5) NOT NULL  
);  

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

PostgreSQL Varchar

生成 Varchar_demo2 表后,无涯教程可以使用INSERT命令在其中插入一些值。

INSERT INTO 
Varchar_demo2(Name) 
VALUES ('Mike Ross');  

实现上述命令后。 postgreSQL给出错误消息"value too long for type character varying(5)"。输出更清楚地解释了它。

PostgreSQL Varchar

VARCHAR和空格示例

PostgreSQL在存储时不扩展varchar值的空间,并且PostgreSQL在存储或恢复Varchar值时也使用尾随空格。

为此,无涯教程将在下面的示例中通过 Insert 命令理解它,并在 Varchar_demo2 Name 列中添加值。在上例中创建的 表:

INSERT INTO 
Varchar_demo2(Name) 
VALUES ('Noah ');  

执行上述命令后,无涯教程将得到以下结果:该值已成功插入到 Varchar_demo2 表中。

PostgreSQL Varchar

创建并插入 Varchar_demo2 表的值之后,无涯教程将使用 SELECT 命令从Varchar_demo2表中检索值:

SELECT Id, Name, length(Name) 
FROM Varchar_demo2; 

实施上述命令后,无涯教程将得到以下结果,其中 PostgreSQL 在长度计数中包含尾随空格,因为它不会增加列的长度。

PostgreSQL Varchar

如果无涯教程尝试插入的Varchar值的尾部空格超过列的长度,则PostgreSQL将截断尾部空格。另外,PostgreSQL提出了一个警告。如下面的示例所示:

INSERT INTO 
Varchar_demo2(Name) 
VALUES ('Emily ');

执行上面的命令后,无涯教程将得到以下结果:

PostgreSQL Varchar

在上面的命令中,插入的值长度为六个字节进入 name 列。该值仍然插入列中。但是,PostgreSQL在添加该值之前会切断尾随空间。

无涯教程可以在以下命令的帮助下进行检查,其中成功添加了Insert命令。

SELECT Id, Name, length(Name) 
FROM Varchar_demo2; 

实施上述命令后,无涯教程仍将获得以下输出。

PostgreSQL Varchar

CHAR和VARCHAR区别

PostgreSQL CHAR和VARCHAR数据类型均遵循 ASCII字符。它们实际上是相似的,但是在从数据库存储和获取数据方面有所不同。

下表突出显示 char和varchar数据类型之间的基本差异:

CHAR数据类型VARCHAR数据类型
PostgreSQL支持为 Char 数据类型分配静态内存。 PostgreSQL支持为Varchar数据类型动态分配内存。
字符数据类型也称为字符 Varchar 数据类型也称为 Variable 字符。
char数据类型不能容纳超过 255 个字符。 Varchar 数据类型最多可容纳 65535 个字符。
Char 数据类型以固定长度存储值,这些值在创建表时表示。 Varchar 数据类型将值存储在长度为一字节或两字节的可变长度字符串中。
可以填充带有尾随空格以包含指定的长度。存储时,不能用任何字符和空格填充。

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

技术教程推荐

左耳听风 -〔陈皓〕

ZooKeeper实战与源码剖析 -〔么敬国〕

JavaScript核心原理解析 -〔周爱民〕

Serverless入门课 -〔蒲松洋(秦粤)〕

职场求生攻略 -〔臧萌〕

Web漏洞挖掘实战 -〔王昊天〕

手把手带你搭建推荐系统 -〔黄鸿波〕

AI绘画核心技术与实战 -〔南柯〕

AI 应用实战课 -〔黄佳〕

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