整理 MySQL 開發與運維必備的核心知識點,涵蓋常用指令、字元集、資料型別、正規化規範、查詢語法、備份還原、鎖機制、權限管理,適合速查與面試複習。
SHOW PROCESSLIST; -- 正在執行的執行緒 SHOW VARIABLES; -- 系統變數 SELECT DATABASE(); -- 目前資料庫 SELECT NOW(), USER(), VERSION();
-- 複製表結構 CREATE TABLE new_tbl LIKE old_tbl; -- 複製結構+資料 CREATE TABLE new_tbl AS SELECT * FROM old_tbl;
SHOW VARIABLES LIKE 'character_set_%'; -- 關鍵變數 character_set_client -- 客戶端送出編碼 character_set_results -- 伺服器回傳編碼 character_set_connection-- 連線層編碼 -- 統一設定 SET NAMES GBK; -- 等同於同時設定以上三者
| 類型 | 儲存/範圍 | 備註 |
|---|---|---|
| TINYINT | 1 位元組 | 常用 0/1 表布林值 |
| INT | 4 位元組 | INT(M) M 為顯示寬度,搭配 ZEROFILL 前導補零 |
| BIGINT | 8 位元組 | |
| CHAR(M) | 固定長度,最多 255 字元 | 速度快、佔空間 |
| VARCHAR(M) | 變長,最多 65535 字元(受編碼影響) | 需 1-2 位元組記錄長度,UTF8 單字最多 21844 字 |
| TEXT/BLOB | 大物件 | 不建議索引全文 |
實務:每表一實體、單欄 ID 主鍵、外鍵關聯。
WHERE:掃描前過濾原始資料,不可用彙總函數、不可用別名。HAVING:分組後過濾,可用彙總函數、可用別名。# 導出單表 mysqldump -uユーザー -pパスワード DB 表 > file.sql # 導出多表 mysqldump -uユーザー -pパスワード DB 表1 表2 > file.sql # 導出整庫 mysqldump -uユーザー -pパスワード DB > file.sql # 導出含建庫語句 mysqldump -uユーザー -pパスワード -B DB > file.sql # 還原(已登入 MySQL) SOURCE file.sql; # 還原(未登入) mysql -uユーザー -pパスワード DB < file.sql
LOCK TABLES tbl_name [AS alias]; UNLOCK TABLES;
MyISAM 支援表鎖,InnoDB 支援列鎖。
-- 建立使用者
CREATE USER 'user'@'host' IDENTIFIED BY 'pwd';
-- 授權
GRANT SELECT, INSERT ON db.tbl TO 'user'@'host';
GRANT ALL ON *.* TO 'user'@'host' WITH GRANT OPTION; -- 含授權權限
-- 修改密碼
SET PASSWORD FOR 'user'@'host' = PASSWORD('newpwd');
-- 撤銷
REVOKE SELECT ON db.tbl FROM 'user'@'host';
-- 刪除使用者
DROP USER 'user'@'host';
-- 查看權限
SHOW GRANTS FOR 'user'@'host';
權限層級:全域 → 資料庫 → 資料表 → 欄位。