【PG_PSQL】PSQL使用測試

xysoul_雲龍發表於2019-01-06
--psql功能及應用
--建立使用者,role預設沒有登入許可權
create user mydbuser with encrypted password 'mydbuser';
--or
create role mydbuser with encrypted password 'mydbuser';
alter role mydbuser with login;	
--建立表空間
mkdir -p /pgdata/10/data/pg_tbs/tbs_mydb
create tablespace tbs_mydb owner mydbuser location '/pgdata/10/data/pg_tbs/tbs_mydb';
--建立資料庫
create database mydb with owner=mydbuser template=template0 encoding='UTF8' tablespace=tbs_mydb;
--賦權
grant all on database mydb to mydbuser with grant option;
grant all on tablespace tbs_mydb to mydbuser;
--檢視角色資訊
\du
SELECT * FROM pg_roles;
--刪除角色
revoke all on database mydb from test;
drop role test;
--連線
psql mydb mydbuser
--列出資料庫資訊 pg_database
\l
--表空間列表  pg_tablespace
\db
--檢視錶資訊 pg_class
create table test_1(id int4,name text,create_time timestamp without time zone default clock_timestamp());
alter table test_1 add primary key (id);
\d test_1
\dt+ test_1
insert into test_1(id,name) select n,n ||'_francs' from generate_series(1,300000) n;
insert into test_1 values(100001,'100001_francs');
--索引大小
\di+ test_1_pkey
--獲取元命令
psql -E mydb mydbuser
--大資料量,copy(只能超級使用者)比\copy效能高
psql mydb postgres
copy table_copy from '/home/postgres/test_copy_in.txt';
copy table_copy to '/home/postgres/table_copy_in.txt';
--csv 格式
copy table_copy to '/home/postgres/table_copy_in.csv' with csv header;
--A 取消格式化輸出,-t只顯示資料
 psql -At -c "select oid,relname,relfilenode from pg_class limit 2" mydb mydbuser
--執行相關指令碼
psql mydb mydbuser -f xx.sql
--檢視活動會話
select pid,usename,datname,query,client_addr from pg_stat_activity where pid<>pg_backend_pid() and state='active' order by query;
--檢視等待事件
select pid,usename,datname,query,client_addr,wait_event_type,wait_event from pg_stat_activity where pid<>pg_backend_pid() and wait_event is not null order by wait_event_type;
--檢視資料庫連線數
select datname,usename,client_addr,count(*) from pg_stat_activity where pid<>pg_backend_pid group by 1,2,3 order by 1,2,4 desc;
--編輯 .psqlrc
\set active_session 'select pid,usename,datname,query,client_addr from pg_stat_activity where pid<>pg_backend_pid() and state=\'active\' order by query';
--執行:active_session 即可
--反覆執行當前sql
\watch [seconds]
--檢視當前時間
select now();
--psql 檢視
psql --help
\?


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29487349/viewspace-2374626/,如需轉載,請註明出處,否則將追究法律責任。

相關文章