Skip to content

创建数据库

语法格式

sql
CREATE DATABASE [IF NOT EXISTS] database_name 
[ CHARACTER SET ColId [, Sconst] ]
[ TIME ZONE ]
[ DISABLE [, ENABLE] ENCRYPT ]
[ ENCRYPT BY Sconst ]

参数说明

  • IF NOT EXISTS:创建数据库时若同名数据库存在则忽略错误。该关键字无法验证已有同名数据库与当前创建库结构是否一致。
  • database_name:数据库名。
  • ColId[,Sconst]:字符集名称。字符集的查询在“sys_charsets”系统表中。
  • TIME ZONE:时区,其形式为’gmt+hh:mm’或’gmt-hh:mm’,表示当前时区与格林威治时间的时差。
  • DISABLE[,ENABLE] ENCRYPT:是否加密。
  • Sconst:指定加密机名。

示例

  • 示例1
    创建一个名为dbtest的数据库,其字符集是GBK,时区是东8区。

    sql
    SQL> CREATE DATABASE dbtest CHARACTER SET 'GBK' TIME ZONE 'GMT+08:00';
  • 示例2
    创建数据库时存在同名数据库,但原数据库和创建库字符类型不同。

    SQL
    SQL> CREATE DATABASE db_fea CHAR SET 'GB18030';
    
    SQL> SELECT db_name,char_set from dba_databases WHERE db_name='DB_FEA';
    
    DB_NAME | CHAR_SET | 
    ------------------------------------------------------------------------------
    DB_FEA| GB18030|
    
    -- 创建一个与原数据库字符类型不同的数据库,此处会返回警告
    SQL> CREATE DATABASE IF NOT EXISTS db_fea CHAR SET 'gbk_chinese_ci';
    Warnning: [E2007] 数据库已存在
    
    -- 不会对原数据库产生影响
    SQL> SELECT db_name,char_set from dba_databases WHERE db_name='DB_FEA';
    
    DB_NAME | CHAR_SET | 
    ------------------------------------------------------------------------------
    DB_FEA| GB18030|