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);
输出结果:
在下面的消息窗口中,一张表只允许有一个主键。因此,我们假设表中没有预先设置的主键。
热门文章
优秀文章