greenplum 常用操作
注:greenplum只能在master主节点进行登陆查询
一、常用操作
1、连接数据库, 默认的用户和数据库是postgres
psql -U user -d dbname
2、切换数据库,相当于MySQL的use dbname
\c dbname
3、列举数据库,相当于mysql的show databases
\l
4、列举表,相当于mysql的show tables
\dt
5、查看表结构,相当于desc tblname,show columns from tbname
\d tblname
6、查看索引
\di
7、查看函数
\df
8、创建数据库
create database [数据库名];
9、删除数据库:
drop database [数据库名];
10、重命名一个表:
alter table [表名A] rename to [表名B];
11、删除一个表:
drop table [表名];
12、在已有的表里添加字段:
alter table [表名] add column [字段名] [类型];
13、删除表中的字段:
alter table [表名] drop column [字段名];
14、重命名一个字段:
alter table [表名] rename column [字段名A] to [字段名B];
15、给一个字段设置缺省值:
alter table [表名] alter column [字段名] set default [新的默认值];
16、去除缺省值:
alter table [表名] alter column [字段名] drop default;
17、在表中插入数据:
insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......);
18、修改表中的某行某列的数据:
update [表名] set [目标字段名]=[目标值] where [该行特征];
19、删除表中某行数据:
delete from [表名] where [该行特征];
delete from [表名];--删空整个表
20、创建表:
create table ([字段名1] [类型1] <references 关联表名(关联的字段名)>;,[字段名2] [类型2],......<,primary key (字段名m,字段名n,...)>;);
21、显示 PostgreSQL 的使用和发行条款
\copyright
22、显示或设定用户端字元编码
\encoding [字元编码名称]
23、SQL 命令语法上的说明,用 * 显示全部命令
\h [名称]
24、提示用户设定内部变数
\prompt [文本] 名称
25、修改用户密码
\password [USERNAME]
26、退出 psql
\q
二、运维操作
1、查看分区
select * from pg_partitions;
2、查看表的分区键
select d.nspname||'.'||a.relname as table_name,string_agg(b.attname,',') as column_name from pg_catalog.pg_class a inner join pg_catalog.pg_attribute b on a.oid=b.attrelid inner join pg_catalog.gp_distribution_policy c on a.oid=c.localoid inner join pg_catalog.pg_namespace d on a.relnamespace=d.oid where a.relkind='r' and b.attnum=any(c.attrnums) and a.relname not like '%prt%' group by table_name order by table_name desc;
3、删除分区表(分区表名称:class_one_prt_class_b,删除不需要输入前缀)
alter table class_one drop partition class_b;
4、修改分布键(查寻分布键同上查询表结构)
alter table tab01 set distributed by(name);
5、随机分布
alter table tab01 set distributed randomly; alter table tab01 set with(reorganize=true);
6、创建行存储表
create table t_digoal (id int, info text, crt_time timestamp) distributed by (id) partition by range(crt_time) (start (date '2016-08-01') inclusive end (date '2016-12-01') exclusive every (interval '1 day'));
7、创建列存储表
create table t_digoal_col(id int, info text, crt_time timestamp) with (appendonly=true, ORIENTATION=column) distributed by (id);
8、查询表倾斜(值越大说明越需要调整分布键)
select * from gp_toolkit.gp_skew_coefficien;

9、查询各个节点存储表记录的个数
select gp_segment_id,count(1) from table_name group by 1;


浙公网安备 33010602011771号