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 9.0 中,不支援手動在資料目錄下建立目錄 (例如,使用 mkdir) 來建立資料庫目錄。
當您建立資料庫時,讓伺服器管理目錄和其中的檔案。直接操作資料庫目錄和檔案可能會導致不一致和非預期的結果。
MySQL 對資料庫數量沒有限制。底層的檔案系統可能會對目錄數量有上限。
您也可以使用 mysqladmin 程式來建立資料庫。請參閱 第 6.5.2 節「mysqladmin — MySQL 伺服器管理程式」。