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 SETSHOW 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 服务器管理程序”