前置操作
mysql -u root -p db_name
SHOW TABLES;
DESC table_name;
新增欄位
ALTER TABLE table1 ADD transactor VARCHAR(10) NOT NULL;
ALTER TABLE table1 ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY;
修改欄位類型/屬性
ALTER TABLE table_name CHANGE col_name col_name new_definition [NULL|NOT NULL];
ALTER TABLE table_name MODIFY col_name new_definition [NULL|NOT NULL];
修改欄位名稱
ALTER TABLE table_name CHANGE old_name new_name col_definition [NULL|NOT NULL];
刪除欄位
ALTER TABLE mytable DROP col_name;
調整欄位順序
-- 移至指定欄位之後
ALTER TABLE employees MODIFY user_name VARCHAR(100) AFTER password;
-- 移至第一列
ALTER TABLE employees MODIFY user_name VARCHAR(100) FIRST;
擴展:索引與外鍵操作
- 加主鍵:
ADD PRIMARY KEY (id)
- 加索引:
ADD INDEX idx_name (col1, col2)
- 加唯一:
ADD UNIQUE uk_name (col)
- 刪索引:
DROP INDEX idx_name
- 外鍵級聯:
FOREIGN KEY (rid) REFERENCES t(id) ON DELETE CASCADE ON UPDATE CASCADE
重命名表
RENAME TABLE old_name TO new_name;
ALTER TABLE old_name RENAME new_name;