psql执行sql的方式及一些基本命令

执行SQL语句的方式

1.交互方式
psql mydatabase
mydatabase=# SELECT * FROM table;
2. 非交互方式 (单行命令)
psql mydatabase –c “SELECT * FROM table;”
3. 非交互方式 (多行命令)
psql mydatabase –f /home/lab1/sql/createdb.sql
 每个SQL语句的结束需要使用分号(;) 来表示

psql基本使用命令

\? (psql查询命令帮助)
 \h (SQL命令语法帮助)
 \dt (显示表)
 \dtS ( 显示系统表)
 \dg or \du (显示角色)
 \l (显示数据库)
 \c db_name (连接到这个数据库)
 \q (退出psql)

 

Greenplum管理提示
 查看表的分布键:
gpskew -t table_name –c

 

 

试图

将频繁使用的查询定义为视图
 视图在Greenplum数据库中不是实体
 视图相关SQL命令:
– CREATE VIEW
– DROP VIEW
 PSQL提示:
– 显示所有的视图:\dv
– 查看一个视图的定义:\d+ view_name
 实例:
CREATE VIEW topten
AS SELECT name, rank, gender, year
FROM names, rank
WHERE rank < ’11’ AND names.id=rank.id;
SELECT * FROM topten ORDER BY year, rank;

 

稳定和不稳定的函数

 

支持仅在Master上运行的函数命令(没有FROM
语句):
– SELECT setval(‘myseq’, 201);
– SELECT foo();
 不支持函数命令运行在segment级别且函数中包
含SQL或更改数据库的命令:
– SELECT * FROM foo();
 不支持函数用于更新或删除命令且Mirrors是启用
的:
– UPDATE mytable SET id = nextval(myseq);

 

 

 

 

角色(数据库用户)
 一个用户账号就是一个可以登录的角色
 一个新定义角色的默认属性包括:
– NOSUPERUSER
– NOCREATEDB
– NOCREATEROLE
– INHERIT
– NOLOGIN (必须明确将LOGIN属性赋予用户级别的角色)
 使用CREATE ROLE添加一个新角色
 使用ALTER ROLE 对已有角色进行权限属性修改
 实例:
CREATE ROLE john WITH LOGIN;
ALTER ROLE john WITH CREATEDB;
CREATE USER john;

 

 

角色成员(用户组)
 一个角色可以是其它角色的成员
 成员可继承用户组的对象权限
 允许在同一个地方设置对象权限
 角色权限不继承,可使用SET ROLE连接到用户组来使用其权限
 用户组一般没有登录的权限
 使用GRANT命令来授予成员资格
 使用REVOKE命令将成员从用户组删除
 实例:
CREATE ROLE admin CREATEROLE CREATEDB;
GRANT admin TO john, sally;
REVOKE admin FROM bob;
SET ROLE admin;

 

 

 

创建资源队列
 SQL命令
– CREATE RESOURCE QUEUE
– ALTER RESOURCE QUEUE
– DROP RESOURCE QUEUE
 资源队列的限制条件
– 活跃查询限制
例如:CREATE RESOURCE QUEUE adhoc ACTIVE THRESHOLD 10
IGNORE THRESHOLD 1000.0;
– 使用资源限制
例如:CREATE RESOURCE QUEUE batch1 COST THRESHOLD
1000000.0 NOOVERCOMMIT;
CREATE RESOURCE QUEUE batch1 COST THRESHOLD 1e+6;

 

    原文作者:sql
    原文地址: https://www.cnblogs.com/wyl89/p/8616935.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞