介绍 GBase 8a 支持的 SQL 语法(上篇)

一 DDL 语句

介绍 GBase 8a 用于创建数据库对象的 DDL 语句

1.1DATABASE

1.1.1 CREATE DATABASE CREATE DATABASE [IF NOT EXISTS] database_name CREATE DATABASE 是以给定的名称创建一个数据库。用户需要获得创建 数据库的权限,才可以使用 CREATE DATABASE。

1.1.21DROP DATABASE

DROP DATABASE [IF EXISTS] database_name DROP DATABASE 删除指定的数据库以及它所包含的表。请小心使用此语 句!用户需要获得对数据库的 DROP 权限,才可以使用 DROP DATABASE。 使用关键字 IF EXISTS,以防止由于数据库不存在而报告错误。

1.2TABLE

在本节中用到的术语如下。  临时表:创建表时使用 TEMPORARY 关键字,这样创建的表为临时表, 临时表仅存在于当前 session 中。  预租磁盘:预租磁盘空间可以预先批量分配磁盘块,这样尽量保证了 列的 DC 数据文件磁盘块连续。在顺序读取列 DC 数据时,性能会有明 显提升。

1.2.1 CREATE TABLE

CREATE TABLE 以用户给定的名字在当前数据库创建一个表。用户必须有 创建表的权限。 CREATE [TEMPORARY] TABLE [IF NOT EXISTS] [database_name.]table_name (column_definition [ , column_definition], ... [, key_options]) [table_options] column_definition: column_name data_type [NOT NULL | NULL] [DEFAULT default_value] table_options:[COMMENT 'comment_value']

参数说明如下:  TEMPORARY:该参数为可选参数,创建临时表需要使用此关键字。 临时表的创建请参见“4.1.2.1.3 CREATE TEMPORARY TABLE”的内 容。  IF NOT EXISTS:该参数为可选参数,用户可以使用关键字 IF NOT EXISTS 创建表,如果表已经存在,系统将报告 WARNING 信息。  database_name:该参数为可选参数,指定数据库后,在此数据库下创 建表。如果没有显示指定 database_name 参数,创建的表隶属于 USE database_name 后的数据中的表。  table_name:表命名规则请参见“2.2 数据库、表、索引、列和别名”。 默认情况下,在当前数据库中创建表。如果没有指定当前数据库或表 已经存在,则报告错误信息。  column_name:指定表中的数据列。  data_type:指定数据列的数据类型。数据类型参见“1 数据类型”中 的内容。  NOT NULL | NULL:指定数据列的值,是否允许为 NULL。如果既没 有指定 NULL 也没有指定 NOT NULL,列被视为指定了 NULL。  default_value:指定数据列的默认值。默认值必须是一个常数,而不能 是一个函数或者一个表达式。举例来说,用户不能将一个数据列的默 认值设置为 NOW()或者 CURRENT_DATE()之类的函数。对于给定的 一个表,可以使用 SHOW CREATE TABLE 语句来查看哪些列有显式 DEFAULT 子句。

 comment_value:指定数据列的备注说明。例如:stu_no id COMMENT '学号'。

table_options: COMMENT:指定表的备注说明。可以用 SHOW CREATE TABLE table_name和 SHOW FULL COLUMNS FROM table_name语句来显示备注信息。

1.2.2 CREATE TABLE...AS SELECT... 语法格式: CREATE TABLE table_name_[(column_definition,...)] AS SELECT ... 功能: 根据列定义以及投影列创建表结构,并且将 SELECT 中查询的数据复制到 所创建的表中。 参数说明如下: AS:指定 SELECT 语句,可选关键字。 其他参数说明请参见“4.1.2.1 CREATE TABLE”参数说明部分的内容。

1.2.3 CREATE TABLE...LIKE... 语法格式: CREATE TABLE table_name1 LIKE table_name2; 功能: 复制 table_name2 的表结构来创建表 table_name1。

1.2.4 CREATE TEMPORARY TABLE ...

功能: 在创建一个表时,用户可以使用关键词 TEMPORARY。临时表被限制在当前连接中,当连接关闭时,临时表会自动地删除。这就意味着,两个不同的连 接可以使用同一个临时表名而不会发生冲突,也不会与同名现有的表冲突(现 有表将被隐藏,直到临时表被删除)。使用此种方法,一旦客户端与 GBase 8a server 断开连接,临时表将自动删除。注意事项: 临时表支持除 ALTER 之外的所有 DDL 及 DML 操作。  临时表不能被备份。  临时表支持在当前连接中使用查询结果导出语句导出表中数据。

1.3 ALTER TABLE

ALTER TABLE [database_name.]table_name alter_specification [, alter_specification] ... alter_specification: ADD [COLUMN] column_definition [FIRST | AFTER col_name ] | ADD [COLUMN] (column_definition,...) | CHANGE [COLUMN] old_col_name new_col_name column_definition | CHANGE [COLUMN] old_col_name new_col_name VARCHAR(length) | MODIFY [COLUMN] col_name column_definition FIRST | AFTER col_name | MODIFY [COLUMN] col_name VARCHAR(length) FIRST | AFTER col_name | RENAME [TO] new_table_name | DROP [COLUMN] col_name

| SHRINK SPACE 参数说明如下:  | ADD [COLUMN] (column_definition,...):用于增加新的数据列,如果 使用 FIRST,则新增加的列位于所有数据列的前面;如果使用 AFTER, 则新增加的列,位于指定数据列的后面。默认不使用 FIRST、AFTER, 则将增加的新列追加到末尾处。  CHANGE [COLUMN] old_col_name new_col_name column_definition: 修改列名称。除 varchar 类型以外,其他类型的列定义不支持修改。  CHANGE [COLUMN] old_col_name new_col_name VARCHAR(length): 当字段为 VARCHAR 类型时,使用 CHANGE 除修改列名称外还可以 增加字段的长度。具体使用方式及限制,参见“4.1.2.2.2 ALTER TABLE…CHANGE|MODIFY…VARCHAR(LENGTH)”章节。  MODIFY [COLUMN] col_name column_definition FIRST | AFTER col_name :修改表中存在列的位置。除 varchar 类型以外,其他类型的 列定义不支持修改。  MODIFY col_name VARCHAR(length) FIRST | AFTER col_name:当字 段为 varchar 类型时,使用 MODIFY 除修改列位置外还可以增加字段 的长度。具体使用方式及限制,参见“4.1.2.2.2 ALTER TABLE…CHANGE|MODIFY…VARCHAR(LENGTH)”章节。  RENAME [TO] new_table_name:修改表名称为 new_table_name。  D

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值