📅  最后修改于: 2020-11-30 01:19:13             🧑  作者: Mango
在本节中,我们将学习PostgreSQL ALTER TABLE的各种命令,以更改表的结构。
我们使用PostgreSQL alter table命令更改当前表结构。
alter table的语法如下:
ALTER TABLE table_name action;
下表将显示以下ALTER TABLE命令的修改:
Description | Commands |
---|---|
We will use the ALTER TABLE ADD COLUMN to add a new column to a table. | ALTER TABLE table_name ADD COLUMN new_column_name TYPE; |
We will use the ALTER TABLE DROP COLUMN command for deleting an existing column. | ALTER TABLE table_name DROP COLUMN column_name; |
For modifying the column’s default value, we can use the ALTER TABLE ALTER COLUMN SET DEFAULT or DROP DEFAULT command. | ALTER TABLE table_name ALTER COLUMN column_name [SET DEFAULT value | DROP DEFAULT]; |
We will use ALTER TABLE ADD CONSTRAINT command for adding a constraint. | ALTER TABLE table_name ADD CONSTRAINT constraint_name constraint_definition; |
We will use the alter table rename column to command for renaming a remaining column. | ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name; |
For renaming a table, we will use the ALTER TABLE RENAME TO command. | ALTER TABLE table_name RENAME TO new_table_name; |
For adding the CHECK constraint, we will use the ALTER TABLE, ADD CHECK command. | ALTER TABLE table_name ADD CHECK expression; |
To change the NOT NULL constraint, we will then use ALTER TABLE ALTER COLUMN command. | ALTER TABLE table_name ALTER COLUMN column_name [SET NOT NULL| DROP NOT NULL]; |
在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表后,将对该特定表执行以下操作:
之后,我们将通过以下命令添加一个名为“谷歌纵横”的新列:
ALTER TABLE Station
ADD COLUMN Latitude REAL;
输出量
一旦执行了以上命令,我们将获得以下消息窗口:
要从“站”表中删除“纬度”列,我们将使用以下命令:
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表中从Char到Varchar的St_City和St_State列的类型:
ALTER TABLE Station1
ALTER COLUMN St_City TYPE Varchar(30),
ALTER COLUMN St_State TYPE Varchar(20);
输出量
执行完上述命令后,我们将得到以下消息:
如果要向Station1表的St_City列中添加NOT NULL约束,则将使用以下命令:
ALTER TABLE Station1 ALTER COLUMN St_City SET NOT NULL;
输出量
一旦执行了上面的命令,我们将得到以下消息:
如果要从Station1表的St_City列中删除NOT NULL约束,我们将运行以下命令:
ALTER TABLE Station1
ALTER COLUMN
St_City DROP NOT NULL;
输出量
执行完上述命令后,我们将得到以下消息:
如果要在Station1表中添加主键约束,则将使用以下命令。
ALTER TABLE Station1 ADD PRIMARY KEY (St_id);
输出量
在下面的消息窗口中, table只能使用一个主键。因此,我们将假定表中没有预设的主键。