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 DATABASE
LOCK
TABLES
在具有活动语句
的会话中不允许。
每个create_option
指定一个数据库特征。数据库特征存储在
db.opt
数据库目录中的文件中。该
CHARACTER SET
选项指定默认数据库字符集。该COLLATE
选项指定默认数据库排序规则。有关字符集和排序规则名称的信息,请参阅第 10 章,字符集、排序规则、Unicode。
要查看可用的字符集和排序规则,请分别使用
SHOW CHARACTER SET
和
SHOW COLLATION
语句。请参阅第 13.7.5.3 节,“SHOW CHARACTER SET 语句”和
第 13.7.5.4 节,“SHOW COLLATION 语句”。
MySQL 中的数据库被实现为包含与数据库中的表相对应的文件的目录。由于数据库在最初创建时并没有表,所以该
CREATE DATABASE
语句只在MySQL数据目录和
db.opt
文件下创建了一个目录。允许的数据库名称的规则在第 9.2 节“模式对象名称”中给出。如果数据库名称包含特殊字符,则数据库目录的名称包含这些字符的编码版本,如第 9.2.4 节“标识符到文件名的映射”中所述。
如果您在数据目录下手动创建目录(例如,使用mkdir),服务器会将其视为数据库目录并显示在
SHOW DATABASES
.
创建数据库时,让服务器管理目录和其中的文件。直接操作数据库目录和文件可能会导致不一致和意外结果。
MySQL 对数据库的数量没有限制。底层文件系统可能对目录数量有限制。
您还可以使用mysqladmin程序来创建数据库。请参阅第 4.5.2 节,“mysqladmin — 一个 MySQL 服务器管理程序”。