CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
[create_option] ...
create_option: [DEFAULT] {
CHARACTER SET [=] charset_name
| COLLATE [=] collation_name
| ENCRYPTION [=] {'Y' | 'N'}
}
CREATE DATABASE
會建立具有指定名稱的資料庫。若要使用此語句,您需要該資料庫的 CREATE
權限。CREATE SCHEMA
是 CREATE DATABASE
的同義詞。
如果資料庫已存在,且您未指定 IF NOT EXISTS
,則會發生錯誤。
在具有作用中 LOCK TABLES
語句的工作階段中,不允許使用 CREATE DATABASE
。
每個 create_option
都指定資料庫的特性。資料庫特性儲存在資料字典中。
CHARACTER SET
選項指定預設的資料庫字元集。COLLATE
選項指定預設的資料庫定序。如需字元集和定序名稱的資訊,請參閱第 12 章字元集、定序、Unicode。若要查看可用的字元集和定序,請分別使用
SHOW CHARACTER SET
和SHOW COLLATION
語句。請參閱第 15.7.7.4 節「SHOW CHARACTER SET 語句」,以及第 15.7.7.5 節「SHOW COLLATION 語句」。ENCRYPTION
選項定義預設的資料庫加密,該加密會由資料庫中建立的表格繼承。允許的值為'Y'
(啟用加密) 和'N'
(停用加密)。如果未指定ENCRYPTION
選項,則default_table_encryption
系統變數的值會定義預設的資料庫加密。如果啟用table_encryption_privilege_check
系統變數,則需要TABLE_ENCRYPTION_ADMIN
權限才能指定與default_table_encryption
設定不同的預設加密設定。如需更多資訊,請參閱為結構描述和一般表格空間定義預設加密。
MySQL 中的資料庫是以目錄形式實作,其中包含對應於資料庫中表格的檔案。由於資料庫在初始建立時沒有表格,CREATE DATABASE
語句只會在 MySQL 資料目錄下建立一個目錄。關於允許的資料庫名稱的規則,請參閱第 11.2 節「結構描述物件名稱」。如果資料庫名稱包含特殊字元,資料庫目錄的名稱會包含這些字元的編碼版本,如第 11.2.4 節「識別碼對應至檔案名稱」中所述。
MySQL 8.4 不支援透過在資料目錄下手動建立目錄 (例如,使用 mkdir) 來建立資料庫目錄。
當您建立資料庫時,請讓伺服器管理目錄和其中的檔案。直接操作資料庫目錄和檔案可能會導致不一致和非預期的結果。
MySQL 對於資料庫的數量沒有限制。底層檔案系統可能會對目錄數量有所限制。
您也可以使用 mysqladmin 程式來建立資料庫。請參閱第 6.5.2 節「mysqladmin — MySQL 伺服器管理程式」。