• 首页
  • css3教程
  • html5教程
  • jQuery手册
  • vue手册
  • php手册
  • MySQL手册
  • apache手册
  • redis手册
  • CREATE DATABASE语句

    CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] 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 ENCRYPTIONMySQL 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服务器的客户端”。