创建数据库
语法格式
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}
:字符集名称。可以在数据库中执行SELECT*FROM sys_charsets
查看系统支持的字符集。ColId
:预定义的字符集标识符(如utf8
),无需引号。Sconst
:字符串常量(如'utf8'
),需单引号包裹。
TIME ZONE
:时区,其形式为GMT+HH:MM
或GMT-HH:MM
,表示当前时区与格林威治时间的时差。{DISABLE|ENABLE} ENCRYPT
:是否加密。ENCRYPT BY Sconst
:使用加密机加密并指定加密机名。
示例
示例1
创建一个名为dbtest的数据库,其字符集是GBK,时区是东8区,并使用名为TEST的加密机进行加密(加密机已创建)。sqlSQL> CREATE DATABASE dbtest CHARACTER SET 'GBK' TIME ZONE 'GMT+08:00' ENABLE ENCRYPT ENCRYPT BY 'TEST';
示例2
创建数据库时存在同名数据库,但原数据库和创建库字符类型不同。SQLSQL> 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|