GBase 8a MPP Cluster DDL之建库建表语法

本文档详细介绍了GBase数据库的基本操作,包括创建、修改、删除数据库及表的语法,提供了丰富的示例帮助理解如何使用CREATE DATABASE、CREATE TABLE、ALTER TABLE等命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DATABASE


CREATE DATABASE

CREATE DATABASE [IF NOT EXISTS] database_name
       CREATE DATABASE 是以给定的名称创建一个数据库。用户需要获得创建数据库的权限,才可以使用 CREATE DATABASE。
       示例 1:创建数据库。
gbase> CREATE DATABASE test1;
Query OK, 1 row affected
 

DROP DATABASE
 

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

TABLE

       在本节中用到的术语如下。
       复制表:创建表使用 REPLICATED 关键字,这样创建的表为复制表。复制表将会存储于 GBase 8a MPP Cluster 的各个数据节点上,每个数据节点都会保存完整数据。
       随机分布表:不需要使用关键字。数据以随机分配方式,均匀存储到集群各个数据节点。
       哈希分布表:创建表时使用 DISTRIBUTED BY column_name 指定创建表中的物理列 column_name 是哈希列,这样创建的表为哈希分布表。数据按照指定的 Hash 字段进行哈希分布。
       临时表:创建表时使用 TEMPORARY 关键字,这样创建的表为临时表,临时表仅存在于当前 session 中。
       预租磁盘:预租磁盘空间可以预先批量分配磁盘块,这样尽量保证了列的 DC 数据文件磁盘块连续。在顺序读取列 DC 数据时,性能会有明显提升。
       表类型: GBase 8a MPP Cluster 数据库主要有以下 4 种表类型。
       复制表
       随机分布表
       哈希分布表
       临时表

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]
[COMMENT comment_value]
key_options:
       KEY key_name ('column_name') [key_dc_size = dc_value USING HASH
GLOBAL]
table_options:
       [REPLICATED | DISTRIBUTED BY ('column_name') ]
       [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 '学号'。
       key_options:指定表中的 hash 列。同时可以使用 key_dc_size 参数指定创建分段 Hash INDEX。
       dc_value 值如下表所示:

最小值 最大值 备注
0 2147483646 默认为0(即在整列上创建HASH)


       table_options:默认为随机分布表。
       REPLICATED:指定是否是复制表。
       在创建一个表时,用户可以使用关键词 REPLICATED 来指定是否创建复制表。如果指定了关键词 REPLICATED,那么创建的复制表在 GBase 8a MPP Cluster 的各个节点上存放的是完整数据。
       注意: 复制表表名尾部不允许是_n{number}编号,例如, mytable_n1,mytable_n12 是不允许使用的。
       DISTRIBUTED BY column_name:指定创建表中的物理列 column_name 是哈希列,这样创建的表,称为哈希分布表。哈希列的值可以为空,但必须是INT 或者 VARCHAR 类型或DECIMAL 类型(执行 OGG Kafka 数据同步时,哈希列的值同样不能为空) 。
       key_dc_size = dc_value USING HASH GLOBAL:配合 DISTRIBUTED BY使用,指定分段 HASH 列,同时创建多个分段 HASH 列。
       COMMENT:指定表的备注说明。可以用 SHOW CREATE TABLE table_name和 SHOW FULL COLUMNS FROM table_name 语句来显示备注信息。
       示例 1: 创建一张随机分布表。
gbase> CREATE TABLE t1(a int, b int) ;
Query OK, 1 row affected
       示例 2: 创建一张复制表。
gbase> CREATE TABLE t2(a int, b int) REPLICATED;
Query OK, 1 row affected
gbase> SHOW CREATE TABLE t2;
+-------+-----------------------------------------------------------------+
| Table | Create Table |
+-------+-----------------------------------------------------------------+
| t2 | CREATE TABLE "t2" (
"a" int(11) DEFAULT NULL,
"b" int(11) DEFAULT NULL
) ENGINE=EXPRESS REPLICATED DEFAULT CHARSET=utf8 TABLESPACE='sys_tablespace'|
+-------+-----------------------------------------------------------------+
1 row in set
gbase> DESC t2;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| a | int(11) | YES | | NULL | |
| b | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
2 rows in set
       示例 3:创建带有列注释信息的表。
gbase> CREATE TABLE t1 (f_username varchar(10) comment 'name' ) ;
Query OK, 0 rows affected
gbase> DESC t1;
+------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| f_username | varchar(10) | YES | | NULL | |
+------------+-------------+------+-----+---------+-------+
1 row in set
gbase> SHOW CREATE TABLE t1;
+-------+--------------------------------------------------------+
| Table | Create Table |
+-------+--------------------------------------------------------+
| t1 | CREATE TABLE "t1" (
"f_username" varchar(10) DEFAULT NULL COMMENT 'name'
) ENGINE=EXPRESS DEFAULT CHARSET=utf8 TABLESPACE='sys_tablespace'|
+-------+--------------------------------------------------------+
1 row in set
 

CREATE TABLE...AS SELECT...
 

语法格式:
       CREATE TABLE table_name [(column_definition,...)] [REPLICATED] [DISTRIBUTED BY] [AS] SELECT ...
       功能:
       根据列定义以及投影列创建表结构,并且将 SELECT 中查询的数据复制到所创建的表中。
       参数说明如下:
       REPLICATED:指定创建复制表选项。
       DISTRIBUTED BY:指定创建表中的物理列 column_name 是哈希列。
       AS:指定 SELECT 语句,可选关键字。
       其他参数说明请参见‚4.1.2.1 CREATE TABLE‛参数说明部分的内容。
    &nbs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值