PostgreSQL 变量


PostgreSQL 变量

在本节中,我们将了解PostgreSQL varchar 数据类型的工作原理,它允许我们存储无限长度的字符。我们还看到了Varchar 数据类型和空格的示例

什么是 PostgreSQL Varchar 数据类型?

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

换句话说,我们可以说PostgreSQL Varchar 数据类型使用了字符数据类型,表示为VARCHAR

  • 大多数情况下,我们应该使用Varchar 和 Text数据类型。如果我们希望 PostgreSQL 检查长度,那么我们使用VARCHAR(n)
  • 在 PostgreSQL 中,varchar 表示为Varchar (n),其中n用于表示字符长度的限制。如果未描述n,则默认为具有无限长度的 Varchar。
  • 如果我们尝试在Varchar(n)指定的列中获取更长的字符串,则 PostgreSQL 在输出中会发生错误。
  • 尽管如此,如果附加字符都是空格,我们有一个例外,那么 PostgreSQL 会将空格修剪最大长度 (n)存储 string
  • 如果我们为Varchar数据类型定义了长度说明符,或者如果我们尝试在Varchar(n)列中插入多于n 个字符, PostgreSQL 将检查并引发错误。

注意:varchar 数据类型是可变长度的字符串,可以携带特殊字符、数字和字母。并且 n 存储长度最大为 0 到 65535 个字符的文本。

PostgreSQL Varchar 数据类型的语法

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

variable_name VARCHAR(n)

PostgreSQL Varchar 数据类型示例

让我们看不同的例子来理解PostgreSQL Varchar 数据类型是如何工作的。

为此,我们将在 CREATE 命令的帮助下创建一个名为Varchar_demo 的新表,并使用INSERT 命令插入一些值。

我们将使用CREATE命令将Varchar_demo表创建到组织数据库中:

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

输出

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

PostgreSQL 变量

一旦生成了Varchar_demo\表,我们将使用 INSERT 命令向其中插入一些值。

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

输出

执行上述命令后,我们将得到以下输出,PostgreSQL 将发出错误“值太长,无法使用类型字符变化 (1) ”。

这意味着P列的数据类型是VARCHAR (1),我们尝试将包含三个字符的字符串插入到特定列中,如下面的屏幕截图所示:

PostgreSQL 变量

要解决上述错误,我们将使用以下命令,如下所示:

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

输出

在执行上述命令时,PostgreSQL 对Q列重新发出类似的错误,这意味着Q列的数据类型是VARCHAR (10)。相比之下,输入的字符数超过 10,我们可以在下面的屏幕截图中观察到:

PostgreSQL 变量

因此,要解决上述两个错误,我们将使用以下命令:

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

输出

执行上述命令后,我们会得到如下结果:该值已成功插入到Varchar_demo\表中。

PostgreSQL 变量

正如我们在上面的屏幕截图中看到的,我们成功插入了P 和 Q列的值。

创建并插入Varchar_demo表的值后,我们将使用SELECT命令返回Varchar_demo表的所有行:

SELECT * FROM Varchar_demo;

输出

执行上述命令后,我们将得到如下结果,可以看到列 P 和列 Q的值都已成功输入到Varchar_demo\表中。

PostgreSQL 变量

示例 2

让我们再看一个例子来详细了解 Varchar 数据类型。我们正在使用 CREATE 命令的帮助创建一个新表作为Varchar_demo2,并使用 INSERT 命令插入一些值。

我们将使用CREATE命令将Varchar_demo2创建到与上述类似的数据库中,即组织

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

输出

所述Varchar_demo2表已经执行上述命令后成功创建,如图中下面的截图:

PostgreSQL 变量

一旦生成了Varchar_demo2\表,我们就可以使用 INSERT 命令向其中插入一些值。

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

输出

执行上述命令后。PostgreSQL 给出错误消息“类型字符 (1) 的值太长”。输出更清楚地解释了它。

PostgreSQL 变量

PostgreSQL VARCHAR 和空格示例

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

为此,我们将通过下面的示例来理解其中的Insert命令,并在我们在上面的示例中创建的Varchar_demo2\表的Name列中添加值:

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

输出

执行上述命令后,我们会得到如下结果:该值已成功插入到Varchar_demo2\表中。

PostgreSQL 变量

创建并插入Varchar_demo2表的值后,我们将使用SELECT命令从 Varchar_demo2 表中检索

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

输出

执行上述命令后,我们将得到以下结果,其中PostgreSQL在长度计数中包含尾随空格,因为它不会增加列长度。

PostgreSQL 变量

如果我们尝试插入带有超过列长度的尾随空格的 Varchar 值,PostgreSQL 将截断尾随空格。此外,PostgreSQL发出警告。正如我们在下面的例子中所示:

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

输出

执行上述命令,我们将得到以下结果:

PostgreSQL 变量

在上面的命令中,在Name列中插入的值长度为6。并且该值仍然插入到列中。但是,PostgreSQL 在添加值之前会删除尾随空格。

我们可以通过下面命令的帮助查看,其中插入命令添加成功。

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

输出

执行上述命令后,我们将得到以下输出,但仍带有警告:第 1 行的列“名称”的数据被截断

PostgreSQL 变量

PostgreSQL CHAR 和 PostgreSQL VARCHAR 数据类型的区别

PostgreSQL CHAR 和 VARCHAR 数据类型都跟在ASCII 字符之后。它们实际上相似,但在存储和从数据库中获取数据方面有所不同。

下表突出显示了CHAR 和 VARCHAR 数据类型之间的本质区别:

PostgreSQL CHAR 数据类型 PostgreSQL VARCHAR 数据类型
PostgreSQL 支持Char数据类型的静态内存分配。 PostgreSQL 支持 Varchar 数据类型的动态内存分配。
char数据类型也被称为Character 所述的Varchar数据类型也被称为可变特征。
char 数据类型不能超过255 个字符。 Varchar数据类型最多可容纳65535个字符。
char数据类型存储在固定长度的值,在创建表,我们表示。 所述的Varchar数据类型存储在一个可变长度的字符串与所述值的一个或两个字节的长度前缀。
它可以用尾随空格填充以包含指定的长度。 存储时不能用任何字符和空格填充它。

概述

PostgreSQL Varchar 数据类型部分,我们学习了以下主题:

  • varchar数据类型的用途,用于改变长度的字符类型。
  • 如果我们想在将字符串 (n) 插入或更新到列之前检查它的长度,我们可以使用Varchar(n)数据类型。
  • 我们使用 PostgreSQL Varchar 数据类型和空格。