一、資料庫管理
SHOW DATABASES; -- 列出所有資料庫
CREATE DATABASE db_name; -- 建立資料庫
USE db_name; -- 切換資料庫
DROP DATABASE db_name; -- 刪除資料庫
二、資料表管理
SHOW TABLES; -- 列出資料表
DESC tbl_name; -- 檢視表結構 (欄位、型別、鍵、預設值)
SHOW CREATE TABLE tbl_name\G; -- 完整建表語句 (含索引、引擎、字元集)
CREATE TABLE tbl_name (
col_name data_type [modifiers]
); -- 建表基本語法
DROP TABLE tbl_name; -- 刪除資料表
-- 結構修改 (ALTER TABLE)
ALTER TABLE tbl MODIFY col new_type; -- 修改欄位型別
ALTER TABLE tbl ADD col new_type; -- 新增欄位
ALTER TABLE tbl DROP col; -- 刪除欄位
ALTER TABLE tbl CHANGE old_col new_col type; -- 重命名+改型別
ALTER TABLE tbl MODIFY col type FIRST|AFTER other_col; -- 調整欄位順序
ALTER TABLE old_name RENAME new_name; -- 重命名表
-- 索引建立
CREATE INDEX idx_name ON tbl (col_list);
CREATE TABLE tbl (..., INDEX idx_name (col_list)); -- 建表時同步建索引
三、資料操作 (DML)
-- 插入
INSERT INTO tbl (col_list) VALUES (val_list);
INSERT INTO tbl SET col1=val1, col2=val2, ...;
-- 更新
UPDATE tbl SET col1=val1, col2=val2, ... [WHERE condition];
-- 刪除
DELETE FROM tbl [WHERE condition];
-- 查詢
SELECT col1, col2 FROM tbl1, tbl2 [WHERE condition];
四、進階查詢技巧
- JOIN:
INNER/LEFT/RIGHT JOIN tbl2 ON tbl1.col = tbl2.col
- 子查詢:
WHERE col IN (SELECT ...)、EXISTS (SELECT ...)
- 分頁:
LIMIT offset, count (offset 從 0 開始)
- 彙總:
GROUP BY col HAVING condition
- 排序:
ORDER BY col ASC|DESC
五、效能關鍵指令
EXPLAIN SELECT ...; -- 執行計劃分析
SHOW PROCESSLIST; -- 當前連線與查詢
SHOW STATUS LIKE 'Threads%'; -- 連線統計
SHOW VARIABLES LIKE 'buffer%'; -- 緩衝區參數
OPTIMIZE TABLE tbl; -- 整理碎片 (MyISAM/BDB)
ANALYZE TABLE tbl; -- 更新索引統計資訊
六、權限管理
GRANT SELECT,INSERT ON db.* TO 'user'@'host';
REVOKE ALL ON db.* FROM 'user'@'host';
SHOW GRANTS FOR 'user'@'host';
FLUSH PRIVILEGES;
七、備份與還原
mysqldump --single-transaction --opt db > backup.sql
mysql db < backup.sql