此语句用于创建数据库。数据库存储为操作系统文件。
CREATE DATABASE db-file-name
[ [ TRANSACTION ] { LOG OFF | LOG ON } [ log-file-name-string ]
[ MIRROR mirror-file-name-string ] ]
[ CASE { RESPECT | IGNORE } ]
[ PAGE SIZE page-size ]
[ COLLATION collation-label ]
[ ENCRYPTED { ON | OFF | key-spec } ]
[ BLANK PADDING { ON | OFF } ]
[ ASE [ COMPATIBLE ] ]
[ JAVA { ON | OFF | JDK { '1.1.8' | '1.3' } } ]
[ JCONNECT { ON | OFF } ]
[ PASSWORD CASE { RESPECT | IGNORE } ]
[ CHECKSUM { ON | OFF } ]
]
page-size :
1024 | 2048 | 4096 | 8192 | 16384 | 32768
collation-label : string
key-spec:
[ ON ] KEY key [ ALGORITHM { 'AES' | 'AES_FIPS' } ]
文件名 文件名(db-file-name-string、log-file-name-string 和 mirror-file-name-string)是包含操作系统文件名的字符串。作为字符串,它们必须用单引号引起来。
如果指定路径,则任何后跟 n 或 x 的反斜杠字符 (\) 都必须是两个。将它们转义可阻止按照 SQL 中的字符串规则将它们解释为换行符 (\n) 或十六进制数 (\x)。
更安全的做法是始终对反斜线字符进行转义。例如,
CREATE DATABASE 'c:\\sybase\\my_db.db' LOG ON 'e:\\logdrive\\my_db.log'
如果指定相对路径或者未指定路径,数据库文件将在相对于服务器工作目录的位置上创建。如果没有指定日志文件的路径,则日志文件在数据库文件所在的同一目录中创建。
如果未提供文件扩展名,则创建的文件带不同的扩展名:对数据库带 .db,对事务日志带 .log,对镜像日志带 .mlg。
TRANSACTION LOG 子句 事务日志是数据库服务器用来记录所有数据库更改的文件。在备份和恢复(请参见事务日志)以及数据复制中,事务日志起着重要的作用。
MIRROR 子句 事务日志镜像是与事务日志完全相同的一个副本,通常在单独的设备上进行维护,以便更好地保护您的数据。缺省情况下,Adaptive Server Anywhere 不使用镜像事务日志。如果确实希望使用事务日志镜像,可以通过此选项提供一个文件名。
CASE 子句 对于用 CASE RESPECT 创建的数据库而言,在比较和字符串操作中,所有的值都区分大小写。
提供此选项是为了与 ISO/ANSI SQL 标准兼容。此选项的缺省值是 CASE IGNORE,即所有的比较都不区分大小写。数据库中的用户 ID 和其它标识符不区分大小写,即使是在区分大小写的数据库中。
PAGE SIZE 子句 数据库的页面大小可以是 1024、2048、4096、8192、16384 或 32768 个字节。缺省的页面大小是 2048 个字节。大型数据库通常可从较大的页面大小中获益,但也将负担与较大的页面大小相关的额外开销。
有关详细信息,请参见信息实用程序选项。
例如,
CREATE DATABASE 'c:\\sybase\\my_db.db' PAGE SIZE 4096
页面大小限制页面大小不能超出当前服务器所使用的页面大小。服务器页面大小可从启动的第一个数据库集中获取,或者在服务器命令行上使用 -gp 选项来设置。 |
COLLATION 子句 用于数据库中所有字符串比较的归类序列。
如果您要创建自定义归类,请使用归类实用程序创建一个包含归类的文件。在修改归类并将其插入到相应脚本中之后,就可以创建数据库并指定新归类了。您必须更改自定义归类文件中的归类标签。否则,您将无法使用新归类创建数据库,因为新归类与现有归类冲突。
有关自定义归类序列的详细信息,请参见国际语言和字符集。
有关归类实用程序的信息,请参见归类实用程序。
如果未指定归类,则使用缺省归类。对于下部 128 个字符,使用常规的 ASCII(二进制)顺序,且受区分大小写设置 (-c) 的约束。对于上部 128 个字符(也称为扩充字符),是下部 128 个字符中某个字母的带重音符形式的任何字符会与不带重音符号形式的字符排在相同的位置。扩充字符是否为带重音符号的字母是根据代码页 850(多语言代码页)确定的
有关可用的归类序列标签的列表,请参见了解归类。
ENCRYPTED 子句 加密后,存储在物理数据库文件中的数据将无法阅读。有两个级别的加密:
简单加密等效于模糊处理。虽然这些数据无法阅读,但了解加密技术的人可能会破解数据。简单加密是通过指定不带 KEY 子句的 ENCRYPTED 子句来实现的。
通过使用 128 位 AES 算法和安全密钥,可以实现高度加密。数据无法阅读,而且如果没有密钥,基本上无法破解数据。要创建高度加密的数据库,请指定带 KEY 选项的 ENCRYPTED 子句。像大多数口令一样,最好选择不容易猜出来的 KEY 值。建议选择满足以下条件的 KEY 值:长度至少为 16 个字符,包含大小写混合以及包含数字、字母和特殊字符。
| 注意 保护您的密钥!请务必将密钥的副本保存在一个安全的位置。丢失了密钥将导致数据库完全无法访问,而无法访问的数据库是无法进行恢复的。 |
每当希望启动数据库时,都需要此密钥。
对于数据库加密密钥,以下密钥无效:
以空格、单引号或双引号开头的密钥
以空格结尾的密钥
包含分号的密钥
ALGORITHM 子句允许您选择 AES(缺省)或 FIPS 认可的算法的 AES_FIPS。在 Windows CE 上,仅支持 AES 算法。
有关高度数据库加密的详细信息,请参见高度加密。
BLANK PADDING 子句 如果指定了 BLANK PADDING ON,比较时将忽略尾随空白。例如,在用 BLANK PADDING ON 创建的数据库中,以下两个字符串
'Smith' 'Smith '
被视作相等。
此选项是为了与 ISO/ANSI SQL 标准兼容而提供的,该标准在比较时忽略尾随空白。缺省是比较空白(即 BLANK PADDING OFF)。
ASE COMPATIBLE 子句 不会创建 SYS.SYSCOLUMNS 和 SYS.SYSINDEXES 视图。缺省情况下,创建这些视图是为了与 Watcom SQL(该软件的版本 4 和更早版本)中可用的系统表兼容。这些视图与 Sybase Adaptive Server Enterprise 兼容性视图 dbo.syscolumns 和 dbo.sysindexes 冲突。
JCONNECT 子句 如果您希望使用 Sybase jConnect JDBC 驱动程序来访问系统目录信息,则需要安装 jConnect 支持。如果希望排除 jConnect 系统对象,请指定 JCONNECT OFF。只要不访问系统信息,您就仍然可以使用 JDBC。
JAVA 子句 缺省行为是 JAVA OFF。
要在数据库中使用 Java,必须将 Sybase 运行时 Java 类的条目安装到系统表中。通过显示指定 JAVA JDK '1.1.8' 或 JAVA JDK '1.3' 可安装 JDK 命名版本的条目。对于 JDK 1.1.8,上述类保存在 SQL Anywhere 目录下的 java\1.1\classes.zip 中。对于 JDK 1.3,这些类保存在 java\1.3\rt.jar 中。缺省类是 JDK 1.3 类。
需要有可单独授权的选件数据库中的 Java 是单独授权的组件,在安装它之前必须进行订购。要订购此组件,请参见单独授予许可的组件。 |
PASSWORD CASE 子句 您可以指定数据库中的口令是否区分大小写。口令的大小写设置不必与数据库的字符串比较的大小写设置相同。如果未指定口令的大小写,口令将采用数据库的大小写设置。口令中使用的扩展字符区分大小写,而与口令的区分大小写设置无关。
CHECKSUM 子句 校验和用于确定是否在磁盘上已修改了数据库页。在您创建启用校验和的数据库时,在将每一页写入磁盘前为其计算校验和。下次从磁盘中读取该页时,就会重新计算该页的校验和,并将其与该页上存储的校验和进行比较。如果校验和不同,说明页面在磁盘中已被修改,并发生错误。使用校验和创建的数据库也可使用校验和进行校验。可以通过执行以下语句检查创建数据库时是否启用了校验和。
SELECT db_property ( 'Checksum' )
有关详细信息,请参见使用 dbvalid 命令行实用程序校验数据库、sa_validate 系统过程或 VALIDATE CHECKSUM 语句。
创建具有所提供的名称和属性的数据库文件。
执行此语句所需的权限是在服务器命令行上用 -gu 选项来设置的。缺省设置为要求具有 DBA 权限。
运行服务器时所使用的帐户必须对创建文件的目录具有写权限。
在 Windows CE 上不受支持。
创建操作系统文件。
SQL/92 供应商扩展。
SQL/99 供应商扩展。
Sybase Adaptive Server Enterprise 提供了 CREATE DATABASE 语句,但带有不同的选项。
下面的语句在 C:\ 目录中创建名为 mydb.db 的数据库文件。
CREATE DATABASE 'C:\\mydb' TRANSACTION LOG ON CASE IGNORE PAGE SIZE 1024 COLLATION '437' ENCRYPTED OFF BLANK PADDING OFF JAVA JDK '1.3' JCONNECT OFF
下面的语句创建一个不含 Sybase 运行时 Java 类的数据库。除了涉及 Java 类或对象的操作,所有的数据库操作都将正常执行。
CREATE DATABASE 'C:\\nojava' JAVA OFF
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。