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 操作之前,請務必查閱特定數據庫的文檔以了解正確的語法和限制。