南大通用GBase8s 常用SQL语句(六十八)

  1. CREATE TABLE 语句

使用 CREATE TABLE 语句在当前数据库中创建新的永久表。

可以使用 CREATE TABLE 语句来创建关系数据库表或类型表(对象关系型表)。有关创建临时表的信息,请参阅 CREATE TEMP TABLE 语句 。有关如何创建不存储在数据库中的外部表对象的信息,请参阅 CREATE EXTERNAL TABLE 语句 。

语法

sybase 创建数据库 sybase建表语句_database

 

表定义

sybase 创建数据库 sybase建表语句_mysql_02

 

WITH 选项

sybase 创建数据库 sybase建表语句_database_03

 

元素

描述

限制

语法

table

在这里为新的表声明的名称

在数据库中的表、视图、和序列的名称中必须是唯一的

标识符

用法

当您创建表时,必须声明它的名称,定义它的结构和它的日志记录状态。可以如随后的章节所标识的那样可选地指定其他属性。该语法图显示了需要的或可选的规范的序列。CREATE TABLE 语句的语法段,和一些它们的组件都标识在一下的五个列表中。

下列关键字和子句定义新的列的属性:

表 1. 定义列的名称、数据类型、缺省值和安全标签

规范

主题

该关键字或子句定义的内容

列定义

列定义

列的名称和属性,包括数据类型、约束、缺省值

DEFAULT

DEFAULT 子句

列的缺省值

COLUMN SECURED WITH

列定义

受保护的表的 LBAC 标签

以下关键字和子句在新表上定义约束:

表 2. 在表的一列或多列上定义约束

规范

主题

该关键字或子句定义的内容

单列约束

单列约束格式

单列上的数据库完整性约束、参照完整性约束或其它约束

约束定义

约束定义

表上约束的名称、属性和启用或禁用的状态

NULL

使用 NULL 约束

列允许 NULL 值

NOT NULL

使用 NOT NULL 约束

列不允许 NULL 值

UNIQUE or DISTINCT

使用 UNIQUE 或 DISTINCT 约束

列不允许重复的值

CHECK

CHECK 子句

检查其它列的约束

PRIMARY KEY

使用 PRIMARY KEY 约束

表中的每一行包含一个非 NULL 的唯一值

FOREIGN KEY

使用 FOREIGN KEY 约束

建立表之间的依赖

REFERENCES

REFERENCES 子句

与其它列的参照完整性约束

多列约束

多列约束格式

列集合上的数据完整性约束

下列关键字和子句定义了该表的影子列和行级别审计支持:

表 3. 定义影子列和行级别审计支持

规范

主题

该关键字或子句定义的内容

WITH keyword

Options 子句

影子列或行级别审计支持的关键字选项

WITH AUDIT

使用 WITH AUDIT 子句

行级别审计支持

WITH CRCOLS

使用 WITH CRCOLS 选项

影子列或行级别审计支持的关键字选项

WITH ERKEY

使用 WITH ERKEY 关键字

Enterprise Replication 定义主键的 3 个影子列

WITH REPLCHECK

使用 WITH REPLCHECK 关键字

在完整性检查中使用的影子列

WITH ROWIDS

使用 WITH ROWIDS 选项

已分片表中的隐藏列(不推荐使用)

WITH VERCOLS

使用 WITH VERCOLS 选项

辅助服务器上用于 UPDATE 操作的 2 个影子列

下列关键字和子句定义新表的存储选项:

表 4. 定义新表或其智能大对象列的存储

规范

主题

该关键字或子句定义的内容

Storage Options

存储选项

表物理存储位置和有关表如何存储的其它信息

IN dbspace, sbspace, blobspace, or extspace

使用 IN 子句

拥有新表(或表的一部分、或大对象)的存储对象

FRAGMENT BY or PARTITION BY

FRAGMENT BY 子句

分片表的分布存储方案

BY ROUND ROBIN

通过 ROUND ROBIN 分片

存储表分片的 dbspace 列表

BY EXPRESSION

表达式分片子句

基于表达式的分片分布

BY LIST

列表分片子句

基于列表的分片分布

BY RANGE . . . INTERVAL

Interval fragment 子句

基于 RANGE INTERVAL 的分片分布

PUT 子句

PUT 子句

BLOB 或 CLOB 列的存储位置、extent 大小以及其它 sbspace 属性

EXTENT SIZE

EXTENT SIZE 选项

表的第一个和后续的存储 extent 的大小

COMPRESSED

表的 COMPRESSED 选项

大量的行数据是否启用自动压缩

下列关键字和子句定义日志记录方式和其它表属性,或者向新表中插入指定查询返回的符合条件的行。

表 5. 日志记录选项、锁定粒度、访问方法、类型表属性、数据分布统计选项、插入来自查询结果的数据或表的 LBAC 安全策略。

规范

主题

该关键字或子句定义的内容

日志记录选项 (STANDARD 或 RAW)

日志记录选项

新表的日志记录特征

LOCK MODE (PAGE  ROW)

LOCK MODE 选项

新表的锁定粒度

USING Access-Method

USING 存取方法子句

如何访问新表

OF TYPE

OF TYPE 子句

在关系对象型数据库中新类型表的已命名 ROW 类型

UNDER

使用 UNDER 子句

在类型表层次结构中新子表的超表

SECURITY POLICY

SECURITY POLICY 子句

表的基于标签的访问控制策略

STATCHANGE, STATLEVEL

CREATE TABLE 语句的 Statistics 选项

更改数据分布统计信息的粒度和域

AS SELECT

AS SELECT 子句

创建并填充查询结果表

表名称和列名称的唯一性规则

当您创建新表是,每个列必须有与之相关的数据类型。列的名称在同一表的列的名称中必须是唯一的。( OF TYPE 选项指定现有已命名 ROW 类型,其字段为您正在创建的类型表提供列名称和列的数据类型。)

如果数据库没有被创建为 MODE ANSI ,则名称必须在相同的数据库中的表、视图、序列和同义词的名称中是唯一的。

在兼容 ANSI 的数据库中,组合 owner.table 必须在在相同的数据库中的表、同义词、视图、和序列对象的名称中是唯一的。具有不同所有者名称的表对象可以具有相同的标识符。

如果您包含了可选的 IF NOT EXISTS 关键字,则当指定名称的表已经存在于当前数据库中时,数据库不采取操作(而非向应用程序发送异常)。