CREATE TABLE table_name (
col1 data_type,
col2 data_type,
...
colN data_type
);
範例:
CREATE TABLE t_dept (
deptno INT,
dname VARCHAR(20),
loc VARCHAR(20)
);
注意:表名避開關鍵字,建議 t_ 或 tab_ 前綴;最後一欄無逗號;先 USE db_name; 選庫。
DESCRIBE table_name; 或 DESC table_name;:簡要結構SHOW CREATE TABLE table_name \G:完整建表語句(\G 直向顯示易讀)DROP TABLE table_name;
ALTER TABLE old_name RENAME [TO] new_name;
-- 尾端新增
ALTER TABLE t ADD col TYPE;
-- 首欄新增
ALTER TABLE t ADD col TYPE FIRST;
-- 指定欄位後新增
ALTER TABLE t ADD col TYPE AFTER existing_col;
ALTER TABLE t DROP col;
| 操作 | 語法 | 關鍵字 |
|---|---|---|
| 修改型別 | ALTER TABLE t MODIFY col NEW_TYPE; | MODIFY |
| 修改名稱 | ALTER TABLE t CHANGE old_col new_col OLD_TYPE; | CHANGE |
| 同時修改名稱與型別 | ALTER TABLE t CHANGE old_col new_col NEW_TYPE; | CHANGE |
| 調整順序 | ALTER TABLE t MODIFY col TYPE FIRST|AFTER other_col; | MODIFY |
NOT NULL:非空DEFAULT:預設值UNIQUE KEY (UK):唯一PRIMARY KEY (PK):主鍵(唯一+非空)AUTO_INCREMENT:自增(MySQL 專有)FOREIGN KEY (FK):外鍵CREATE TABLE t (col TYPE NOT NULL);
CREATE TABLE t (col TYPE DEFAULT 'value');
-- 匿名
CREATE TABLE t (col TYPE UNIQUE);
-- 命名
CREATE TABLE t (
col TYPE,
CONSTRAINT uk_col UNIQUE (col)
);
-- 單欄
CREATE TABLE t (col TYPE PRIMARY KEY);
-- 命名單欄
CREATE TABLE t (col TYPE, CONSTRAINT pk_col PRIMARY KEY (col));
-- 多欄複合主鍵
CREATE TABLE t (
col1 TYPE, col2 TYPE,
CONSTRAINT pk_composite PRIMARY KEY (col1, col2)
);
CREATE TABLE t (
id INT PRIMARY KEY AUTO_INCREMENT
);
-- 預設從 1 開始,每筆 +1
CREATE TABLE t_child (
id INT,
parent_id INT,
CONSTRAINT fk_parent FOREIGN KEY (parent_id)
REFERENCES t_parent (id)
);
-- 子表 FK 參照父表 PK,FK 可為 NULL
uk_欄位名pk_欄位名fk_參照表_參照欄位