Documentation Home
MySQL 8.0 参考手册  / 第 13 章 SQL 语句  / 13.1 数据定义语句  /  13.1.10 CREATE DATABASE 语句

13.1.10 CREATE DATABASE 语句

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_option] ...

create_option: [DEFAULT] {
    CHARACTER SET [=] charset_name
  | COLLATE [=] collation_name
}

CREATE DATABASE使用给定的名称创建一个数据库。要使用此语句,您需要 CREATE数据库的权限。 CREATE SCHEMA是的同义词CREATE DATABASE。

如果数据库存在而您没有指定 ,则会发生错误 IF NOT EXISTS。

CREATE DATABASELOCK TABLES在具有活动语句 的会话中不允许。

每个create_option指定一个数据库特征。数据库特征存储在 db.opt数据库目录中的文件中。该 CHARACTER SET选项指定默认数据库字符集。该COLLATE选项指定默认数据库排序规则。有关字符集和排序规则名称的信息,请参阅第 10 章,字符集、排序规则、Unicode。

要查看可用的字符集和排序规则,请分别使用 SHOW CHARACTER SET和 SHOW COLLATION语句。请参阅第 13.7.5.4 节,“SHOW CHARACTER SET 语句”和 第 13.7.5.5 节,“SHOW COLLATION 语句”。

MySQL 中的数据库被实现为包含与数据库中的表相对应的文件的目录。由于数据库在最初创建时并没有表,所以该 CREATE DATABASE语句只在MySQL数据目录和 db.opt文件下创建了一个目录。允许的数据库名称的规则在第 9.2 节“模式对象名称”中给出。如果数据库名称包含特殊字符,则数据库目录的名称包含这些字符的编码版本,如第 9.2.4 节“标识符到文件名的映射”中所述。

如果您在数据目录下手动创建目录(例如,使用mkdir),服务器会将其视为数据库目录并显示在 SHOW DATABASES.

创建数据库时,让服务器管理目录和其中的文件。直接操作数据库目录和文件可能会导致不一致和意外结果。

MySQL 对数据库的数量没有限制。底层文件系统可能对目录数量有限制。

您还可以使用mysqladmin程序来创建数据库。请参阅第 4.5.2 节,“mysqladmin — 一个 MySQL 服务器管理程序”。