ALTER TABLE
是 MySQL 中用于修改數據庫表結構的 SQL 語句。以下是一些常見的使用場景:
添加列:當需要向表中添加新的列時,可以使用 ALTER TABLE
語句。例如,若要向 employees
表中添加一個名為 salary
的列,可以使用以下語句:
ALTER TABLE employees ADD salary DECIMAL(10, 2);
刪除列:如果需要從表中刪除列,可以使用 ALTER TABLE
語句。但請注意,MySQL 不支持直接刪除非空列。因此,在刪除列之前,必須先將該列的所有數據刪除或將其設置為空。例如,若要從 employees
表中刪除 department
列,可以使用以下語句:
ALTER TABLE employees DROP COLUMN department;
修改列:當需要修改表中現有列的屬性時,可以使用 ALTER TABLE
語句。例如,若要將 employees
表中的 name
列的最大長度從 50 改為 100,可以使用以下語句:
ALTER TABLE employees MODIFY name VARCHAR(100);
更改列的數據類型:除了修改列的長度或屬性外,還可以使用 ALTER TABLE
語句更改列的數據類型。但請注意,某些數據類型轉換可能涉及數據丟失或格式變化。例如,將 employees
表中的 birthdate
列從 DATE
類型更改為 DATETIME
類型,可以使用以下語句:
ALTER TABLE employees MODIFY birthdate DATETIME;
添加約束:可以使用 ALTER TABLE
語句向表中添加約束,如主鍵、唯一鍵、外鍵等。例如,若要向 employees
表中添加一個名為 employee_id
的主鍵,可以使用以下語句:
ALTER TABLE employees ADD PRIMARY KEY (employee_id);
刪除約束:如果需要從表中刪除約束,可以使用 ALTER TABLE
語句。例如,若要刪除 employees
表中的 email
列的唯一鍵約束,可以使用以下語句:
ALTER TABLE employees DROP INDEX email;
修改表名:雖然這不是直接修改表結構,但使用 RENAME TABLE
子句可以更改表的名稱。例如,若要將 old_table_name
重命名為 new_table_name
,可以使用以下語句:
RENAME TABLE old_table_name TO new_table_name;
在使用 ALTER TABLE
時,請確保仔細考慮每個操作的影響,并在必要時備份相關數據。