在mysql中,用SQL語句增刪改字段,重命名替換字段
語法
ALTER TABLE 表 {ADD ADD{COLUMN 字段類型 [ (字長)] [NOT NULL] [CONSTRAINT 索引 ] | ALTER COLUMN 字段類型 [(字長)] | rename COLUMN to COLUMNxx | change COLUMN to COLUMNxx 字段類型 [(字長)]| CONSTRAINT 多重字段索引 } | DROP DROP{COLUMN 字段 I CONSTRAINT 索引名 } }
ALTER TABLE 語句分為以下幾個部分:
部分 說明
- table 指定修改的表。
- field 指定在表內增加或刪除的字段。
- type 字段的數據類型。
- size 字段的字符長度 (文本及二進制字段)。
- index 字段索引。了解更多有關如何構造本索引的信息,請看 CONSTRAINT子句。
- multifieldindex 增加至表中的多重字段索引的定義。了解更多有關如何構造本索引的信息,請看 CONSTRAINT子句。
- indexname 刪除的多重字段索引的名稱。
說明
使用 ALTER TABLE 語句,可用多種不同方法更改當前已存在的表:你可以:
使用 ADD COLUMN 在表中添加新的字段。需要指定字段名、數據類型、還可以 (對文本和二進制字段)指定長度。
例如,下列語句在員工表中增加一 25 個字符的、名為 Notes 的文本字段:
ALTER TABLE Employees ADD COLUMN Notes TEXT(25)
也可以定義此字段的索引。關於單一字段索引的詳細信息,請參閱CONSTRAINT 子句主題。
如果對一字段指定 NOT NULL,則在這字段中添加的新記錄必須有有效的數據。
使用ALTER COLUMN改變一個當前字段的數據類型,需要指定字段名、新數據類型、還可以 (對文本和二進制字段)指定長度。
例如,下列語句把雇員表中一個字段的數據類型, 被稱為ZipCode(最初被定義為整數),改變成一個10字符文本字段:
ALTER TABLE Employees ALTER COLUMN ZipCode TEXT(10)
- 使用 ADD CONSTRAINT 添加多重字段索引。關於多重字段索引的詳細信息,請參閱 CONSTRAINT 子句主題。
- 使用 DROP COLUMN 刪除字段。只要指定欲刪除的字段名即可。
- 使用 DROP CONSTRAINT 刪除多重字段索引。只要在 CONSTRAINT 保留字后面指定索引名即可。
注意
- 不能同時添加或刪除一個以上的字段或索引。
- 你可以使用 CREATE INDEX 語句在一個表中增加一個單字段或多重字段,你還可以使用 ALTER TABLE 或 DROP 語句刪除一個由ALTER TABLE或CREATE INDEX建立的索引。
- 可以在單一字段上使用 NOT NULL,或在用於單一字段或多重字段(名為 CONSTRAINT) 的 CONSTRAINT 子句中使用 NOT NULL。但是,一個字段只能使用一次 NOT NULL 限制。嘗試多次應用此限制將導致運行錯誤。
重命名替換字段
CREATE TABLE t1(a INT, b VARCHAR(30), c FLOAT); ALTER TABLE t1 RENAME COLUMN a TO defg; # Rename multiple column ALTER TABLE t1 RENAME COLUMN defg TO ijkl, RENAME COLUMN b TO mno, RENAME COLUMN c TO pqr; # Mix different ALTER operations ALTER TABLE t1 CHANGE COLUMN ijkl a INT, RENAME COLUMN mno TO b, RENAME COLUMN pqr to c;
完結!