📚 目录

  1. 概述
  2. ALTER TABLE 的基本语法
  3. 修改表结构
  4. 添加、删除列
  5. 修改列的数据类型
  6. 重命名表或列
  7. 添加和删除约束
  8. 参考资料

🛠️ 概述

在 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 表上的主键约束。


📘 参考资料