1、连接
	gsql -h 171.44.xxx.xxx -p 25108 -d dlp_user -U dlp  -W  1234@    登录
	
2、编码	
	show server_encoding;  查看当前数据库编码  
	
3、搜索路径	
	show search_path;  查看模式搜索路径,无论如何搜索路径前两个一定是pg_temp和pg_catalog
	set search_path to my_schema,public; 将my_schema,public两个模式加入搜索路径
	
4、模式
	select current_schema; 查看数据库当前模式 
	set current_schema=my_schema;  设置当前数据库模式。
	\dn          查看所有模式及其所有者 	
	create schema my_schema authorization dlpuser; 创建schema并指定owner
	 用户只能访问属于自己schema中的数据库对象,若要访问其他人的schema中数据库对象则必须具有该schema的usage权限。
	
5、用户	
	select * from pg_user;  查看当前数据库用户 
	create user joe with password '123456';
	
6、数据库
	select datname from pg_database; 查看数据库列表
	create database my_database template template0; 参考template0新建数据库(默认template1)
	
7、表	
	select * from pg_tables;  查看当前数据库拥有的表
	select * from dba_tab_partitions;  查看当前数据库拥有的分区表
	\d+ my_schema.t_emp;  查看表的属性
	select * from my_schema.t_emp_partition partition(p1);  查看分区表P1分区数据
	
	create table my_schema.t_emp(id int)  --可以set current_schema来指定schema.不指定schema默认使用public模式
		with(orientation=column,compression=middle) --指定列存和压缩级别
		distribute by hash(id);  --指定分布方式,也可以是replication\round robin(仅适用于外表)
			--未指定分布列,系统会自动选择一个类型符合要求的作为分布列。
	
8、视图	
	select * from dba_views; 查看所有视图
	select * from user_views; 查看当前用户下的视图
	\d+ my_schema.my_view;  查看视图的属性
	create or replace view my_view select * from t1;
	
9、索引	
	select relname from pg_class where relkind='i';  查看系统和用户定义的所有索引
	\di+ my_schema.my_index;  查看索引的属性
	create index my_index on my_schema.t_emp(id);   建立索引,可以多个字段,逗号分隔
	可以创建索引的列:
		1、经常查询的。
		2、主键列。 
		3、连接列。
		4、过滤列。
		5、排序列。
		6、分组列。
		7、去重列。
	如果使用索引比使用顺序查询更快,就会自动使用索引。 
	
10、序列
	序列sequence自增不重复,所以常用作主键。 
	create table t1(id serial);   serial为4字节序列整型,后台会自动创建并维护一个序列。 
 先创建序列再使用序列:
	create sequence seq [cache 100]; cache慎用,否则序列可能不连贯自增
	create table t2(id int default nextval('seq'));
	alter sequence seq owned by t2.id; 将字段和序列关联,删除字段或表序列也删除
	
	每一次新的序列值的产生都由GTM维护,GTM作为全局唯一节点,可能存在性能瓶颈。
	多节点下只有GTM上和最近更新序列值的节点上的序列值是最新的。	
	 
	 
	 
	 
	 
		

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐