ALTER
SQL语句用于修改现有数据库表的结构,例如添加、删除或修改列以及其他表属性
- 添加列:使用
ADD COLUMN
子句向现有表中添加新列。这不会影响现有数据,但可能需要更多存储空间。
ALTER TABLE table_name ADD COLUMN column_name data_type;
- 删除列:使用
DROP COLUMN
子句从表中删除列。这将永久删除该列及其所有数据,因此在执行此操作之前请确保已备份数据。
ALTER TABLE table_name DROP COLUMN column_name;
- 修改列:使用
MODIFY COLUMN
或ALTER COLUMN
子句更改现有列的数据类型或约束。这可能导致数据丢失,因为新数据类型可能与原始数据类型不兼容。
ALTER TABLE table_name MODIFY COLUMN column_name new_data_type;
- 重命名表:使用
RENAME TO
子句更改表的名称。这不会影响表结构,但需要更新引用旧表名的所有查询和代码。
ALTER TABLE old_table_name RENAME TO new_table_name;
- 添加主键:使用
ADD PRIMARY KEY
子句向表添加主键约束。这将确保指定列的值是唯一的,并且不允许为空。
ALTER TABLE table_name ADD PRIMARY KEY (column_name);
- 删除主键:使用
DROP PRIMARY KEY
子句从表中删除主键约束。这将允许重复值和空值,但可能导致数据完整性问题。
ALTER TABLE table_name DROP PRIMARY KEY;
- 添加外键:使用
ADD FOREIGN KEY
子句向表添加外键约束。这将确保表中的某个列的值与另一个表中的主键或唯一键相匹配。
ALTER TABLE table_name ADD FOREIGN KEY (column_name) REFERENCES referenced_table_name(referenced_column_name);
- 删除外键:使用
DROP FOREIGN KEY
子句从表中删除外键约束。这将允许表中的列包含与参考表不匹配的值,但可能导致数据完整性问题。
ALTER TABLE table_name DROP FOREIGN KEY constraint_name;
- 添加唯一约束:使用
ADD UNIQUE
子句向表添加唯一约束。这将确保指定列的值是唯一的,但允许为空。
ALTER TABLE table_name ADD UNIQUE (column_name);
- 删除唯一约束:使用
DROP INDEX
或DROP UNIQUE
子句从表中删除唯一约束。这将允许重复值,但可能导致数据完整性问题。
ALTER TABLE table_name DROP INDEX index_name;
请注意,不同的数据库管理系统(如MySQL、PostgreSQL、SQL Server等)可能支持不同的 ALTER
语法。在执行任何 ALTER
操作之前,请务必查阅特定数据库的文档以了解正确的语法和限制。