SQL ALTER TABLE 语句


SQL ALTER TABLE 语句

概述

SQL ALTER TABLE 语句用于修改数据库中已有表的结构。可以通过增加/删除/修改表中的列、增加/删除表约束、以及重命名表等方式在现有表中进行修改。

语法

以下是 ALTER TABLE 语句的一般语法:

ALTER TABLE 表名
  [ADD|DROP|MODIFY] [COLUMN] 列名 数据类型 [列约束]
  [ADD|DROP|CONSTRAINT] 约束名 [约束类型(可选)]
  [RENAME TO 新表名]
  [ALTER COLUMN 列名 [SET DEFAULT 默认值|DROP DEFAULT]]
  • 表名:要修改的表的名称。
  • ADD、DROP、MODIFY:要进行的操作类型。ADD用于添加列和约束、DROP用于删除列和约束、MODIFY用于修改列的数据类型和限制。
  • COLUMN:可选项,用于明确要进行的是列的操作。
  • 列名:要添加、删除或修改的列的名称。
  • 数据类型:要添加、删除或修改的列的数据类型。例如:INT、VARCHAR、DATETIME等类型。
  • 列约束:给列加上限制,如NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY等。
  • CONSTRAINT:对表进行约束操作。
  • 约束名:对表约束的名称。
  • 约束类型:可以使用的约束类型有PRIMARY KEY、FOREIGN KEY、UNIQUE等。
  • RENAME TO:用于重命名表。
  • ALTER COLUMN:用于修改表中某列的属性。SET DEFAULT用于设置列默认值,DROP DEFAULT用于删除列默认值。

操作示例

  1. 添加列
ALTER TABLE students 
ADD age int;
  1. 修改列
ALTER TABLE students
MODIFY age int;
  1. 删除列
ALTER TABLE students
DROP COLUMN age;
  1. 添加约束
ALTER TABLE students
ADD CONSTRAINT pk_student_id PRIMARY KEY (id);
  1. 修改约束
ALTER TABLE students
MODIFY CONSTRAINT pk_student_id UNIQUE (id);
  1. 删除约束
ALTER TABLE students
DROP CONSTRAINT pk_student_id;
  1. 重命名表
ALTER TABLE students
RENAME TO new_students;
  1. 修改列属性
ALTER TABLE students
ALTER COLUMN age SET DEFAULT 18;

注意事项

  • 执行 ALTER TABLE 语句时,数据库表可能会锁定,影响其他事务的正常处理,因此需要小心使用。
  • 注意一些列属性的改变可能会导致依赖该列的其他表或程序出现问题,应谨慎修改。
  • 修改表结构会与数据库中现有的数据进行交互,如果不小心操作,可能会破坏数据完整性,因此操作前应备份数据。
  • 有时会因为数据表大小太大或操作太复杂导致执行 ALTER TABLE 语句花费过长的时间,所以操作时需要耐心等待。

结论

ALTER TABLE 语句是 SQL 中用于修改数据表结构的重要语句之一。在数据库设计或维护时,掌握 ALTER TABLE 语句的技巧和规范是非常必要的。