PostgreSQL教程

PostgreSQL 添加列

在本节中,我们将了解如何使用PostgreSQL ADD COLUMN命令向当前数据库表中添加一个或多个列。

PostgreSQL ADD COLUMN命令

我们将使用 alter table add列,命令将新列添加到现有表中。
语法
更改添加列命令的语法如下:
ALTER TABLE table_name
ADD COLUMN new_column_name data_type;
在以上语法中,我们具有以下参数:
参数 说明
ALTER TABLE 这是一个子句,用于修改表的定义。
Table_name 它用于描述我们需要在ALTER TABLE子句之后添加新列的表名。
New_cloumn _name 用于在ADD COLUMN条件之后指定具有名称(如默认值,数据类型等)的列名称。
注意: 当我们向表中添加新列时,PostgreSQL会在表末尾对其进行增强,因为PostgreSQL没有其他选择来定义新列在表中的位置。

使用alter table命令添加多列

语法,通过使用alter table命令添加多列:
ALTER TABLE table_name
ADD COLUMN new_column_name_1 data_type constraint,
ADD COLUMN new_column_name_2 data_type constraint,
:::
:::
ADD COLUMN new_column_name_N data_type constraint;

PostgreSQL添加列的示例

为了更好地理解添加列,我们将遵循以下过程:
首先,我们将创建一个名为 Persons 的新表,其中有两列 Person_id和First_name ,借助以下命令:
CREATE TABLE Persons (
    Person_ID Serial primary key,
   Person_Name varchar not null     
 );
输出
执行上述查询后,我们将获得以下消息窗口,表示已创建 Persons 表:
PostgreSQL
在此之后,我们将使用以下命令的帮助将 Address列添加到 Persons表中:
ALTER TABLE Persons 
ADD COLUMN Address VARCHAR;
输出
执行上述查询后,我们将获得以下消息窗口:
PostgreSQL ADD Columns
下面的命令将帮助我们将 City和phone_no 列添加到 Persons 表中:
ALTER TABLE Persons 
ADD COLUMN City VARCHAR,
ADD COLUMN Phone_no VARCHAR;
输出
执行上述查询后,我们将获得以下消息窗口:
PostgreSQL ADD Columns
如果我们想在 psql 中查看 Persons 表结构,我们将使用以下内容命令:
lidihuo=# \d Persons
Persons表结构的输出
PostgreSQL ADD Columns
如上图所示,我们在Persons表的列列表末尾添加了 Address,City和Phone_no 列。

添加具有NOT NULL约束的列

在此,我们将向包含某些数据的特定表添加具有非null约束的列。
首先,我们将使用插入命令将一些数据插入 Persons 表中:
INSERT INTO Persons (Person_name)
VALUES
    ('John'),
    ('Emily'),
    ('Mike');
输出
我们可以看到以下消息窗口的 Persons 表中已经插入了三行。
PostgreSQL ADD Columns
现在,让我们假设我们要添加 电子邮件列到 Persons表中,为此,我们使用以下命令:
ALTER TABLE Persons 
ADD COLUMN Email VARCHAR NOT null;
输出
一旦执行上述命令,我们将得到一个错误,指出
列"电子邮件"包含空值
PostgreSQL ADD Columns">
由于 电子邮件,发生了上述错误>列包含 NOT NULL 约束。
在 PostgreSQL 中,新列在添加列时采用 NULL 值,这也会破坏 NOT NULL 约束。
要解决上述错误,我们需要遵循以下步骤:
Step1
首先,我们需要添加没有 NOT NULL 约束的列,为此,我们将使用以下命令:
ALTER TABLE Persons 
ADD COLUMN Email VARCHAR;
输出
如下面的消息窗口所示, 电子邮件列已 添加到了 Persons表:
PostgreSQL ADD Columns
Step2
现在,我们将更新"电子邮件"列的值。
UPDATE Persons
SET Email = 'JohnSmith11@gmail.com'
WHERE
Person_id = 1;
UPDATE Persons
SET Email = 'Emily23@gmail.com'
WHERE
Person_id = 2;
UPDATE Persons
SET Email = 'MikeRoss21@gmail.com'
WHERE
Person_id = 3;
输出
如下面的消息窗口所示, 电子邮件列值已 更新Persons表:
PostgreSQL ADD Columns">
如果要检查 表中的值是否已更新,我们将使用 选择命令:
Select * From Persons;
输出
上述查询的输出如下:
PostgreSQL ADD Columns
Step3
更新Email列值后,我们将设置 NOT NULL 约束使用以下命令将 电子邮件列添加到 Persons表中:
ALTER TABLE Persons
ALTER COLUMN Email SET NOT null;
输出
执行上述命令后,我们将获得以下消息窗口:
PostgreSQL添加列
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4