PostgreSQL的字符数据类型

975 阅读4分钟

字符数据类型在PostgreSQL数据库中用于在数据库表中存储不同长度的字符串数据。PostgreSQL数据类型支持三种字符数据类型:char、varchar和**text。**这些数据类型用于存储不同类型的字符串数据。下面已经解释了使用这些数据类型的目的。

CHAR(n)或CHARACTER(n)。

这种数据类型用于存储固定长度的字符串数据。长度值将在创建表的时候提供。表中包含char数据的字段将用空格字符填满未使用的空间。所以,这种数据类型最好用于存储固定长度的数据,如固定长度的id,特定格式的电话号码等。如果用户试图存储大于char数据字段长度的字符串数据,会出现错误。

VARCHAR(n)或CHARACTER VARYING(n)

这种数据类型用于存储可变长度的字符串数据。长度将像char数据一样在创建表的时候提供。包含这种数据类型的字段的未使用空间将保持未使用,只占用字符串数据的空间。如果用户试图存储大于varchar数据字段长度的字符串数据,将会出现错误。

TEXT或VARCHAR

这种数据类型用于存储无限长度的字符串数据。所以,在创建表的时候,长度值没有被定义。这不是SQL标准的数据类型,它已经从一些关系型数据库管理系统(RDBMS)中移除,如Oracle、MS SQL Server等。

前提条件

在执行本教程中所示的SQL语句之前,你必须在Linux操作系统上安装最新版本的PostgreSQL包。运行下面的命令来安装和启动PostgreSQL。

sudoaptget\-yinstallpostgresqlpostgresqlcontribsudo apt-get \-y installpostgresql postgresql-contrib sudosystemctl start postgresql.service

运行下面的命令,以root权限登录到PostgreSQL。

$ sudo -upostgres psql

在PostgreSQL中使用字符数据类型

在创建任何具有布尔数据类型的表之前,你必须先创建一个PostgreSQL数据库。因此,运行下面的命令来创建一个名为**"testdb "的数据库。**

# CREATE DATABASE testdb;

创建数据库后会出现以下输出。

创建一个表

运行下面的SQL语句,通过使用不同类型的字符数据类型在PostgreSQL数据库中创建一个名为client的表。这里,第一个字段名是id,它是表的主键。当有新的记录插入时,这个字段的值将会自动增加。第二个字段的名称是name,这个字段的数据类型是varchar,它将能够存储最多15个字符。第三个字段的名称是地址,该字段的数据类型是文本。第四个字段的名称是电子邮件,这个字段的数据类型是字符变化,将能够存储最多30个字符。第五个字段是电话,数据类型是char,将存储14个字符的字符串数据。

# CREATE TABLE clients (
idserial PRIMARY KEY,
name varchar(15)NOT NULL,
address text NOT NULL,
email character varying(30),
phone char(14)NOT NULL) 。

如果该表创建成功,将出现以下输出。

向表中插入数据

用有效的数据运行下面的插入查询,向客户表插入一条记录。

# INSERT INTO clients (name, address, email, phone)
VALUES('AR Company','12/A, Dhanmondi, Dhaka. ','ar@gmail.com','+8801826783423');

如果插入查询被成功执行,将出现以下输出。

运行下面的插入查询,向客户表插入一条记录。这里名字字段的值超过了字段的大小。所以,会出现一个错误信息。

# INSERT INTO clients (name, address, email, phone)
VALUES('RFL Company Ltd.','23, Motijeel, Dhaka. ','rflbd@gmail.com','+8801927891278');

执行上述插入查询后会出现以下输出。这里,名字字段最多可以存储15个字符,但查询中给出了16个字符。

运行下面的插入查询,向客户表插入一条记录。这里,电话字段的值超过了字段的大小。所以,会出现一个错误信息。

# INSERT INTO clients (name, address, email, phone)
VALUES('Vision','190/1, Mirpur, Dhaka. ','vision@gmail.com','+880152678342312');

执行上述插入查询后会出现以下输出。这里,电话字段可以存储14个字符,但查询中给出了16个字符。

从表中读取数据。

在执行了上述三个插入查询后,只有一个插入查询被成功执行。现在,运行下面的选择查询,从客户 表中获取所有记录。

# SELECT*FROM clients;

执行上述查询后,将出现以下输出。

结论。

字符数据类型是PostgreSQL表的一个非常有用的数据类型。表的某些字段需要存储固定长度的字符串数据,而表的某些字段需要可变长度的数据。本教程通过创建一个表来解释PostgreSQL表的三种不同数据类型的用途。新的PostgreSQL用户在阅读本教程后,将获得关于字符数据类型的正确知识,并能够正确使用它们来创建表。