📜  PostgreSQL更改表

📅  最后修改于: 2020-11-30 01:19:13             🧑  作者: Mango

PostgreSQL ALTER表

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

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命令执行各种活动,如下所示:

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表中从CharVarchar的St_City和St_State列的类型:

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

输出量

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

添加NOT NULL约束

如果要向Station1表的St_City列中添加NOT NULL约束,则将使用以下命令:

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;

输出量

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

添加主键约束9

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

ALTER TABLE Station1 ADD PRIMARY KEY (St_id);

输出量

在下面的消息窗口中, table只能使用一个主键。因此,我们将假定表中没有预设的主键。

概要

  • 我们可以在alter命令的帮助下删除Columns。并且如果索引或任何表约束链接,则相关列将自动删除。或者,对于另一个表,如果引用了表,则可以使用Cascade。
  • 通过使用alter table命令,我们可以在特定表中添加列约束。
  • 我们还可以借助alter命令删除列的默认值。
  • 我们可以修改列的数据类型,并且连接的索引和约束将自动修改为新的列类型