PostgreSQL 修改表结构

在本节中,我们将学习用于更改表结构的PostgreSQL ALTER TABLE的各种命令。

PostgreSQL ALTER TABLE 命令

我们使用PostgreSQLalter table 命令改变当前的表结构。

alter table的语法如下:

ALTER TABLE table_name action; 

下表将显示以下 ALTER TABLE 命令修改:

描述 命令
我们将使用ALTER TABLE ADD COLUMN向表中添加一个新列。 ALTER TABLE table_name ADD COLUMN new_column_name TYPE;
我们将使用ALTER TABLE DROP COLUMN命令删除现有列。 ALTER TABLE table_name DROP COLUMN column_name;
要修改列的默认值,我们可以使用ALTER TABLE ALTER COLUMN SET DEFAULT 或 DROP DEFAULT命令。 ALTER TABLE table_name ALTER COLUMN column_name [SET DEFAULT value | DROP DEFAULT];
我们将使用ALTER TABLE ADD CONSTRAINT命令来添加约束。 ALTER TABLE table_name ADD CONSTRAINT constraint_name constraint_definition;
我们将使用alter table rename column命令重命名剩余的列。 ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name;
要重命名表,我们将使用ALTER TABLE RENAME TO命令。 ALTER TABLE table_name RENAME TO new_table_name;
为了添加 CHECK 约束,我们将使用ALTER TABLE,ADD CHECK命令。 ALTER TABLE table_name ADD CHECK expression;
要更改NOT NULL 约束,我们将使用ALTER TABLE ALTER COLUMN命令。 ALTER TABLE table_name ALTER COLUMN column_name [SET NOT NULL| DROP NOT NULL];

在 PostgreSQL 中,我们可以在alter table 命令中进行各种活动,如下所示:

  • 添加列
  • 重命名列
  • 删除一列
  • 向列添加 CHECK 约束
  • 修改列的数据类型
  • 为列设置默认值
  • 重命名表

PostgreSQL ALTER TABLE 示例

为了更好地理解ALTER TABLE命令,我们将借助 Create table 命令创建一个名为Station的新表:

CREATE TABLE Station (  
St_id INTEGER PRIMARY KEY,  
St_Name Varchar(200),  
St_City CHAR(30),  
St_State CHAR(2)  
);  

输出结果:

执行上述命令后,我们将得到以下消息窗口:

创建Station表后,我们将对该特定表执行以下操作:

添加一列

之后,我们将在以下命令的帮助下添加一个名为Latitude的新列:

ALTER TABLE Station  
ADD COLUMN Latitude REAL;  

输出结果:

执行上述命令后,我们将看到以下消息窗口:

删除一列

要从 Station 表中删除 Latitude 列,我们将使用以下命令:

ALTER TABLE Station  
DROP COLUMN Latitude;  

输出结果:

执行上述语句后,我们将得到以下消息:

重命名列

要将St_Name列重命名为Name,我们使用以下命令:

ALTER TABLE Station  
RENAME COLUMN St_Name TO Name;  

输出结果为:

执行上述命令后,我们将收到以下消息:

我们使用 SELECT 命令检查以上所有的 alter 操作:

Select * from Station;  

输出结果:

运行上述命令后,我们将得到以下输出:

重命名表

要将 Station 表重命名为 Station1,我们将使用以下命令:

ALTER TABLE Station  
RENAME TO  Station1;  

输出结果:

执行上述命令后,我们将收到以下消息:

更改列类型

以下命令用于将Station1表中St_City 和 St_State列的类型从Char修改为Varchar:

ALTER TABLE Station1  
ALTER COLUMN St_City TYPE Varchar(30),  
ALTER COLUMN St_State TYPE Varchar(20);  

输出结果:

执行上述命令后,我们将收到以下消息:

添加 NOT NULL 约束

如果我们想将 NOT NULL 约束添加到Station1表中的St_City列,我们将使用以下命令:

ALTER TABLE Station1 ALTER COLUMN St_City SET NOT NULL;  

输出结果:

执行上述命令后,我们将收到以下消息:

删除 NOT NULL 约束

如果我们想从Station1表的St_City列中删除 NOT NULL 约束,我们将运行以下命令:

ALTER TABLE Station1   
ALTER COLUMN   
St_City DROP NOT NULL;  

输出结果:

执行上述命令后,我们将收到以下消息:

添加 PRIMARY KEY 约束

如果我们想在Station1表中添加主键约束,我们将使用以下命令。

ALTER TABLE Station1 ADD PRIMARY KEY (St_id);  

输出结果:

在下面的消息窗口中,一张表只允许有一个主键。因此,我们假设表中没有预先设置的主键。

热门文章

优秀文章