首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 精粹筆記:核心指令、資料型別、建表規範與備份還原速查表

     編輯:MySQL 資料庫相關知識

整理 MySQL 開發與運維必備的核心知識點,涵蓋常用指令、字元集、資料型別、正規化規範、查詢語法、備份還原、鎖機制、權限管理,適合速查與面試複習。

1. 常用檢視指令

SHOW PROCESSLIST;          -- 正在執行的執行緒
SHOW VARIABLES;            -- 系統變數
SELECT DATABASE();         -- 目前資料庫
SELECT NOW(), USER(), VERSION();

2. 資料庫與表操作

-- 複製表結構
CREATE TABLE new_tbl LIKE old_tbl;
-- 複製結構+資料
CREATE TABLE new_tbl AS SELECT * FROM old_tbl;

3. 字元集編碼

SHOW VARIABLES LIKE 'character_set_%';
-- 關鍵變數
character_set_client    -- 客戶端送出編碼
character_set_results   -- 伺服器回傳編碼
character_set_connection-- 連線層編碼
-- 統一設定
SET NAMES GBK;  -- 等同於同時設定以上三者

4. 資料型別精要

類型儲存/範圍備註
TINYINT1 位元組常用 0/1 表布林值
INT4 位元組INT(M) M 為顯示寬度,搭配 ZEROFILL 前導補零
BIGINT8 位元組
CHAR(M)固定長度,最多 255 字元速度快、佔空間
VARCHAR(M)變長,最多 65535 字元(受編碼影響)需 1-2 位元組記錄長度,UTF8 單字最多 21844 字
TEXT/BLOB大物件不建議索引全文

5. 建表正規化規範

  • 1NF:欄位不可再分(原子性)。
  • 2NF:滿足 1NF 且無部分相依(消除複合主鍵部分相依,改用單欄主鍵)。
  • 3NF:滿足 2NF 且無傳遞相依(非鍵欄位不相依於其他非鍵欄位)。

實務:每表一實體、單欄 ID 主鍵、外鍵關聯。

6. SELECT 進階:HAVING vs WHERE

  • WHERE:掃描前過濾原始資料,不可用彙總函數、不可用別名。
  • HAVING:分組後過濾,可用彙總函數、可用別名。
  • 執行順序:WHERE → GROUP BY → HAVING。

7. 備份與還原

# 導出單表
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

8. 表鎖

LOCK TABLES tbl_name [AS alias];
UNLOCK TABLES;

MyISAM 支援表鎖,InnoDB 支援列鎖。

9. 使用者與權限管理

-- 建立使用者
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';

權限層級:全域 → 資料庫 → 資料表 → 欄位。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved