PostgreSQL 添加列 PostgreSQL ALTER TABLE 命令 PostgreSQL 删除列 PostgreSQL 添加列 在本节中,我们将了解如何使用 PostgreSQL ADD COLUMN 命令将一个或多个列添加到当前数据库表中。 PostgreSQL ADD COLUMN 命令 我们将使用alter table add column命令将新列添加到现有表中。 句法 Alter add column 命令的语法如下: ALTER TABLE table_name ADD COLUMN new_column_name data_type; 在上面的语法中,我们有以下参数: 范围 描述 改变表 它是一个子句,用于修改表的定义。 表名 它用于描述需要在 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表已创建: 之后,我们将使用以下命令的帮助将Address列添加到Persons表: ALTER TABLE Persons ADD COLUMN Address VARCHAR; 输出 执行上述查询后,我们将得到以下消息窗口: 下面的命令将帮助我们将City 和 phone_no列添加到Persons表中: ALTER TABLE Persons ADD COLUMN City VARCHAR, ADD COLUMN Phone_no VARCHAR; 输出 执行上述查询后,我们将得到以下消息窗口: 如果我们想在psql 中查看Persons表结构,我们将使用以下命令: javatpoint=# \d Persons 输出所述的人的表结构 正如我们在上图中所看到的,我们在 Persons 表的列列表的末尾添加了 Address、City 和 Phone_no列。 添加具有 NOT NULL 约束的列 在此,我们将向包含一些数据的特定表添加具有非空约束的列。 首先,我们将使用 Insert 命令将一些数据插入到Persons表中: INSERT INTO Persons (Person_name) VALUES ('John'), ('Emily'), ('Mike'); 输出 我们可以看到三行已插入到下面消息窗口的Persons表中。 现在,让我们假设我们想将Email列添加到Persons表,为此,我们使用以下命令: ALTER TABLE Persons ADD COLUMN Email VARCHAR NOT NULL; 输出 一旦我们执行上面的命令,我们会得到一个错误,说 “email”列包含空值 发生上述错误是因为Email列包含NOT NULL约束。 在PostgreSQL 中,新列在添加列时采用NULL值,这也破坏了NOT NULL约束。 要解决上述错误,我们需要按照以下步骤操作: 步骤1 首先,我们需要添加没有NOT NULL约束的列,为此,我们将使用以下命令: ALTER TABLE Persons ADD COLUMN Email VARCHAR; 输出 正如我们在下面的消息窗口中看到的,Email列已添加到Persons表中: 第2步 现在,我们将更新电子邮件列的值。 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; 输出 正如我们在下面的消息窗口中看到的,Email列值已更新到Persons表中: 如果我们想检查Persons表中的值是否更新,我们将使用Select命令: Select * From Persons; 输出 上述查询的输出如下: Step3 更新 Email 列值后,我们将使用以下命令将Email列的NOT NULL约束设置到Persons表中: ALTER TABLE Persons ALTER COLUMN Email SET NOT NULL; 输出 执行上述命令后,我们将得到以下消息窗口: PostgreSQL ALTER TABLE 命令 PostgreSQL 删除列