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

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

     編輯:MySQL 資料庫相關知識

語法與指定方式

CREATE TABLE tbl_name (column_list)
[DEFAULT CHARACTER SET charset_name [COLLATE collation_name]]

ALTER TABLE tbl_name
[DEFAULT CHARACTER SET charset_name] [COLLATE collation_name]

範例

CREATE TABLE t1 ( ... )
DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;

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

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

欄位級繼承規則

欄位定義未指定字符集/校對規則時,預設使用表級設定。表級字符集與校對規則為MySQL擴展,標準SQL無此概念。

實務建議

  • 資料庫層級統一規劃字符集(推薦utf8mb4)
  • 建表時顯式指定DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
  • 避免同資料庫不同表使用不同字符集,防止JOIN/比較時隱式轉換效能損耗
  • 修改既有表字符集需ALTER TABLE ... CONVERT TO CHARACTER SET ...重建表
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved