1、创建数据库:
create database 库名;
2、删除数据库:
drop database 库名;
3、创建表:
create table 表名(
id integer,
name text,
price numeric {精确度较高的小数型,同mysql的decimal}
);
3-1、GP建表指定列级约束
create table 表名(
id integer primary key, {主键约束}
name text not null, {非空约束}
price numeric check(price>0), {检查约束}
type integer unique {唯一约束}
);
【注】:主键、唯一键、随机分布不能共存
3-2、声明表的分布策略
GP的分布键作用是保证数据能够均匀分布在不同的存储节点上,充分利用并行计算带来的高性能。GP的分布策略包括HASH分布和随机分布。
HASH分布的关键字是:distributed by(列名)
随机分布的关键字是:distributed by randonly
在创建表或者修改表定义的时候,必须使用distributed by来执行分布键,从而使数据均匀的存储在不同的segment上。
如果指定的分布键(列名)不是主键,则无法创建(指定的列必须是主键)。
(1)、声明hash分布
create table 表名(
id integer primary key, {主键约束}
name text not null, {非空约束}
price numeric check(price>0), {检查约束}
type integer unique {唯一约束}
)distributed by(id);
(2)、声明随机分布
create table 表名(
id integer primary key, {主键约束,这里就不能在声明主键约束}
name text not null, {非空约束}
price numeric check(price>0), {检查约束}
type integer unique {唯一约束,这里就不能在声明唯一约束}
)distributed by randonly; {指定随机分布}
(3)全局分布 ,每个节点复制
CREATE TABLE products (xxxxx ) DISTRIBUTED REPLICATED
【注】:主键、唯一键、随机分布不能共存
否则报错:ERROR:Primary key and distributed randonly are incompatible{不兼容的}
【说明】:几何数据类型和自定义的数据类型不适合作为GP的分布键。如果没有适合的列可以保证数据的均匀分布,则使用随机分布