語法
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]
選擇邏輯(同表級)
- 指定 CHARACTER SET X 和 COLLATE Y → 採用 X + Y。
- 僅指定 CHARACTER SET X → 採用 X + X 的預設校對。
- 均未指定 → 繼承 服務器字符集與校對。
關鍵特性
- MySQL
CREATE DATABASE ... DEFAULT CHARACTER SET 語法與標準 SQL CREATE SCHEMA ... CHARACTER SET 類似,支援同一實例下不同數據庫使用不同字符集/校對。
- 表建立時未指定字符集/校對,則以所屬數據庫的字符集/校對為預設值,除此之外無其他用途。
- 系統變量
character_set_database、collation_database 反映當前預設數據庫的字符集/校對;切換預設數據庫時自動更新。無預設數據庫時等同於服務器級變量。
範例
CREATE DATABASE db_name DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;