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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM