CREATE DATABASE语句
CREATE {DATABASE |SCHEMA } [IF NOTEXISTS ] db_name [create_specification] ... create_specification: [DEFAULT ]CHARACTER SET [=] charset_name | [DEFAULT ]COLLATE [=] collation_name |DEFAULT ENCRYPTION [=] {'Y' | 'N'}
CREATE DATABASE
创建具有给定名称的数据库。要使用此语句,您需要CREATE
数据库特权。CREATE SCHEMA
是的同义词CREATE DATABASE
。
如果数据库存在并且您未指定,则会发生错误IF NOT EXISTS
。
CREATE DATABASE
具有活动LOCK TABLES
语句的会话中不允许使用。
create_specification
选项指定数据库特征。数据库特征存储在数据字典中。
- 该
CHARACTER SET
子句指定默认的数据库字符集。该COLLATE
子句指定默认的数据库排序规则。字符集,归类和Unicode,讨论了字符集和归类名称。 DEFAULT ENCRYPTION
MySQL 8.0.16中引入的子句定义了默认的数据库加密,该默认加密由数据库中创建的表继承。如果DEFAULT ENCRYPTION
未指定该子句,则该default_table_encryption
设置定义默认的数据库加密。如果table_encryption_privilege_check
启用了变量,TABLE_ENCRYPTION_ADMIN
则需要特权来指定不同于该default_table_encryption
设置的默认加密设置。有关更多信息,请参见为架构和常规表空间定义加密默认值。
MySQL中的数据库被实现为包含与数据库表相对应的文件的目录。由于最初创建数据库时数据库中没有表,因此该CREATE DATABASE
语句仅在MySQL数据目录下创建一个目录。“架构对象名称”中给出了允许的数据库名称的规则。如果数据库名称包含特殊字符,则数据库目录的名称包含这些字符的编码版本,如“标识符与文件名的映射”中所述。
MySQL 8.0不支持通过在数据目录下手动创建目录来创建数据库目录(例如,使用mkdir)。
MySQL对数据库的数量没有限制。基础文件系统可能对目录数量有所限制。
您也可以使用mysqladmin程序创建数据库。请参见“mysqladmin-用于管理MySQL服务器的客户端”。