MySQL DDL 核心操作系統整理:建表、增刪改欄位、修改表名/字符集/欄位名、查看結構/建表語句、刪除表。
CREATE TABLE users (
id INT,
name VARCHAR(64),
sex BIT(1),
birthday DATE,
entry_date DATE,
job VARCHAR(32),
salary FLOAT,
resume TEXT
);
| 操作 | 語法 | 範例 |
|---|---|---|
| 新增欄位 | ALTER TABLE 表名 ADD 欄位名 類型 | ALTER TABLE users ADD image BLOB; |
| 修改欄位類型/長度 | ALTER TABLE 表名 MODIFY 欄位名 新類型 | ALTER TABLE users MODIFY sex CHAR(2); |
| 刪除欄位 | ALTER TABLE 表名 DROP 欄位名 | ALTER TABLE users DROP image; |
| 修改欄位名+類型 | ALTER TABLE 表名 CHANGE COLUMN 舊名 新名 類型 | ALTER TABLE users CHANGE COLUMN sex sexy VARCHAR(2); |
| 操作 | 語法 | 範例 |
|---|---|---|
| 重命名表 | RENAME TABLE 舊表名 TO 新表名 | RENAME TABLE users TO user; |
| 修改表字符集 | ALTER TABLE 表名 CHARACTER SET 字符集 | ALTER TABLE user CHARACTER SET gbk; |
-- 表結構(DESC/DESCRIBE 同義)
DESCRIBE users;
-- 或
SHOW COLUMNS FROM users;
-- 完整建表語句
SHOW CREATE TABLE users;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(64) | YES | | NULL | |
| sex | bit(1) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| entry_date | date | YES | | NULL | |
| job | varchar(32) | YES | | NULL | |
| salary | float | YES | | NULL | |
| resume | text | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+
DROP TABLE test9;
MODIFY 僅改類型,**不改名**;CHANGE 必須同時給新名與類型RENAME TABLE 原子操作,可同步重命名多表:RENAME TABLE a TO b, c TO d;ALTER TABLE ... CHARACTER SET 僅影響**新增欄位**,現有欄位需 CONVERT TO CHARACTER SETpt-online-schema-change 或 gh-ostDDL 雖非高頻,但一旦出錯影響面廣,變更前必備份、變更中監控、變更後驗證。