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连接到⽤户组来使⽤其权限
greenplum数据库⽤户组⼀般没有登录的权限
使⽤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;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论