📚 目录
🛠️ 概述
在 PostgreSQL 中,ALTER TABLE
命令用于修改现有表的结构。通过此命令,您可以对表进行多种修改操作,如添加或删除列、更改列的数据类型、重命名表或列、添加或删除约束等。该命令是数据库管理中的常见操作,可以在不删除表的情况下进行表的调整。
📝 ALTER TABLE 的基本语法
ALTER TABLE
命令的基本语法如下:
ALTER TABLE table_name
action;
table_name
:需要修改的表的名称。action
:具体的操作,例如添加列、删除列、重命名等。
📝 修改表结构
通过 ALTER TABLE
,您可以对表进行各种结构上的修改,以下是常见的操作。
📝 添加、删除列
添加列:
使用 ADD COLUMN
子句可以向表中添加新列。
语法:
ALTER TABLE table_name ADD COLUMN column_name column_type;
示例(添加列):
ALTER TABLE employees ADD COLUMN email VARCHAR(255);
该命令会在 employees
表中添加一个名为 email
的新列,数据类型为 VARCHAR(255)
。
删除列:
使用 DROP COLUMN
子句可以删除表中的列。
语法:
ALTER TABLE table_name DROP COLUMN column_name;
示例(删除列):
ALTER TABLE employees DROP COLUMN email;
该命令会删除 employees
表中的 email
列。
📝 修改列的数据类型
使用 ALTER COLUMN
子句中的 TYPE
来更改列的数据类型。
语法:
ALTER TABLE table_name ALTER COLUMN column_name TYPE new_data_type;
示例(修改列的数据类型):
ALTER TABLE employees ALTER COLUMN salary TYPE DECIMAL(10, 2);
该命令将 employees
表中 salary
列的数据类型修改为 DECIMAL(10, 2)
。
📝 重命名表或列
PostgreSQL 允许通过 RENAME
子句来重命名表或列。
重命名表:
语法:
ALTER TABLE old_table_name RENAME TO new_table_name;
示例(重命名表):
ALTER TABLE employees RENAME TO staff;
该命令将 employees
表重命名为 staff
。
重命名列:
语法:
ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name;
示例(重命名列):
ALTER TABLE staff RENAME COLUMN email TO contact_email;
该命令将 staff
表中的 email
列重命名为 contact_email
。
📝 添加和删除约束
添加约束:
使用 ADD CONSTRAINT
可以向表中添加约束,例如主键、外键、唯一约束等。
语法(添加主键约束):
ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY (column_name);
示例(添加主键约束):
ALTER TABLE employees ADD CONSTRAINT pk_employee_id PRIMARY KEY (id);
该命令会在 employees
表的 id
列上添加主键约束。
删除约束:
使用 DROP CONSTRAINT
可以删除表中的约束。
语法:
ALTER TABLE table_name DROP CONSTRAINT constraint_name;
示例(删除约束):
ALTER TABLE employees DROP CONSTRAINT pk_employee_id;
该命令会删除 employees
表上的主键约束。
📘 参考资料
- PostgreSQL 官方文档:ALTER TABLE
- 更多 PostgreSQL 技巧整理自:www.52kanjuqing.com
发表回复