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

MySQL資料庫級字符集與校對規則配置完整指南

     編輯:MySQL 資料庫相關知識

語法與指定方式

CREATE DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]

ALTER DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]

範例

CREATE DATABASE db_name
DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;

MySQL選擇邏輯(優先級遞減)

  1. 指定CHARACTER SET X且COLLATE Y → 採用X和Y
  2. 指定CHARACTER SET X無COLLATE → 採用X及X的預設校對規則
  3. 未指定 → 採用伺服器字符集與校對規則

與標準SQL相容性

CREATE DATABASE ... DEFAULT CHARACTER SET ...語法類似標準SQLCREATE SCHEMA ... CHARACTER SET ...,支援同一MySQL伺服器建立不同字符集/校對規則的資料庫。

表級繼承與系統變數

  • CREATE TABLE未指定字符集/校對規則 → 繼承資料庫級設定
  • 系統變數character_set_database、collation_database反映當前預設資料庫設定
  • 切換預設資料庫時自動更新上述變數
  • 無預設資料庫時,等同伺服器級變數character_set_server、collation_server

實務建議

  • 建庫時顯式指定DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
  • 避免同實例不同資料庫使用不同字符集,簡化運維與遷移
  • 修改既有資料庫字符集僅影響後續建表,現有表不變
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved