1.createdb 數據庫名稱
產生數據庫
2.dropdb 數據庫名稱
刪除數據庫linux
3.CREATE USER 用戶名稱
建立用戶
4.drop User 用戶名稱
刪除用戶sql
5.SELECT usename FROM pg_user;
查看系統用戶信息
\du數據庫
7.SELECT version();
查看版本信息服務器
8.psql 數據庫名
打開psql交互工具session
9.mydb=> \i basics.sql
\i 命令從指定的文件中讀取命令。ide
10.COPY weather FROM '/home/user/weather.txt';
批量將文本文件中內容導入到weather表函數
11.SHOW search_path;
顯示搜索路徑工具
12.建立用戶
CREATE USER 用戶名 WITH PASSWORD '密碼'post
13.建立模式
CREATE SCHEMA myschema;編碼
14.刪除模式
DROP SCHEMA myschema;
15.查看搜索模式
SHOW search_path;
16.設置搜索模式
SET search_path TO myschema,public;
17.建立表空間
create tablespace 表空間名稱 location '文件路徑';
18.顯示默認表空間
show default_tablespace;
19.設置默認表空間
set default_tablespace=表空間名稱;
20.指定用戶登陸
psql MTPS -u
21.顯示當前系統時間、
now()
22.配置plpgsql語言
CREATE LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler
23.刪除規則
DROP RULE name ON relation [ CASCADE | RESTRICT ]
輸入
name
要刪除的現存的規則.
relation
該規則應用的關係名字(能夠有大綱修飾).
CASCADE
自動刪除依賴於此規則的對象。
RESTRICT
若是有任何依賴對象,則拒絕刪除此規則。這個是缺省。
24.日期格式函數
select 'P'||to_char(current_date,'YYYYMMDD')||'01'
25.產生組
Create Group 組名稱
26.修改用戶歸屬組
Alter Group 組名稱 add user 用戶名稱
26.爲組賦值權限
grant 操做 On 表名稱 to group 組名稱:
27.建立角色
Create Role 角色名稱
28.刪除角色
Drop Role 角色名稱
29.得到當前postgresql版本
SELECT version();
30.在linux中執行計劃任務
經過crontab執行
su root -c "psql -p 5433 -U developer MTPS -c'select test()'"
developer用戶的密碼存儲於環境變量PGPASSWORD中。
31.查詢表是否存在
select * from pg_statio_user_tables where relname='你的表名';
32.爲用戶複製SCHEMA權限
grant all on SCHEMA 做用域名稱 to 用戶名稱
33.整個數據庫導出
pg_dumpall -D -p 端口號 -h 服務器IP -U postgres(用戶名) > /home/xiaop/all.bak
34.數據庫備份恢復
psql -h 192.168.0.48 -p 5433 -U postgres
35.當前日期函數
current_date
36.返回第十條開始的5條記錄
select * from tabname limit 5 offset 10;
37.爲用戶賦模式權限
Grant on schema developer to UDataHouse
38.將字符轉換爲日期時間
select to_timestamp('2010-10-21 12:31:22', 'YYYY-MM-DD hh24:mi:ss')
39.數據庫備份
pg_dumpall -h 192.168.0.4 -p 5433 -U postgres >/DataBack/Postgresql2010012201.dmp
如8.1之後屢次輸入密碼
40.\dn
查看schema
41.刪除schema
drop schema _clustertest cascade;
42.導出表
./pg_dump -p 端口號 -U 用戶 -t 表名稱 -f 備份文件位置 數據庫 ;
43.字符串操做函數
select distinct(split_part(ip,'.',1)||'.'||split_part(ip,'.',2)) from t_t_userip order by (split_part(ip,'.',1)||'.'||split_part(ip,'.',2));
44.刪除表主鍵
alter table 表名 drop CONSTRAINT 主鍵名稱;
45.建立表空間
create tablespace 空間名稱 location '路徑'
46.查看錶結構
select * from information_schema.columns
./postgres -D /usr/local/src/data
or
./pg_ctl -D /usr/local/src/data -l logfile start
47.查看數據庫大小
SELECT pg_size_pretty(pg_database_size('MTPS')) As fulldbsize;
48.查看數據庫表大小
SELECT pg_size_pretty(pg_total_relation_size('developer.t_L_collectfile')) As fulltblsize,
pg_size_pretty(pg_relation_size('developer.t_L_collectfile')) As justthetblsize
49.設置執行超過指定秒數的sql語句輸出到日誌
log_min_duration_statement = 3
50.超過必定秒數sql自動執行執行計劃
shared_preload_libraries = 'auto_explain'
custom_variable_classes = 'auto_explain'
auto_explain.log_min_duration = 4s
51.數據庫備份
select pg_start_backup('backup baseline');
select pg_stop_backup();
recovery.conf
restore_command='cp /opt/buxlog/%f %p'
52.重建索引
REINDEX { INDEX | TABLE | DATABASE | SYSTEM } name [ FORCE ]
INDEX
從新創建聲明瞭的索引。
TABLE
從新創建聲明的表的全部索引。若是表有個從屬的"TOAST"表,那麼這個表也會從新索引。
DATABASE
重建當前數據庫裏的全部索引。 除非在獨立運行模式下,會忽略在共享系統表上的索引(見下文)。
SYSTEM
在當前數據庫上重建全部系統表上的索引。不會處理在用戶表上的索引。 另外,除了是在單主機模式下,共享的系統表也會被忽略(見下文)。
name
須要重建索引的索引,表或者數據庫的名稱。 表和索引名能夠有模式修飾。 目前,REINDEX DATABASE 和 REINDEX SYSTEM 只能重建當前數據庫的索引, 所以其參數必須匹配當前數據庫的名字。
FORCE
這是一個廢棄的選項,若是聲明,會被忽略。
54.數據字典查看錶結構
SELECT column_name, data_type from information_schema.columns where table_name = 'blog_sina_content_train';
52.查看被鎖定表
SELECT pg_class.relname AS table, pg_database.datname AS database, pid, mode, granted
FROM pg_locks, pg_class, pg_database
WHERE pg_locks.relation = pg_class.oid
AND pg_locks.database = pg_database.oid;
53.查看客戶端鏈接狀況
SELECT client_addr ,client_port,waiting,query_start,current_query FROM pg_stat_activity;
54.常看數據庫.conf配置
show all
55.修改數據庫postgresql.conf參數
修改postgresql.conf內容
pg_ctl reload
56.回滾日誌強制恢復
pg_resetxlog -f 數據庫文件路徑
idvalue | remark
----------+--------
33953557 | inser
57.當前日期屬於一年中第幾周
select EXTRACT(week from TIMESTAMP '2010-10-22');
58.顯示最近執行命令
\s
I. SQL 命令
ABORT — 退出當前事務
ALTER AGGREGATE — 修改一個彙集函數的定義
ALTER CONVERSION — 修改一個編碼轉換的定義
ALTER DATABASE — 修改一個數據庫
ALTER DOMAIN — 改變一個域的定義
ALTER FUNCTION — 修改一個函數的定義
ALTER GROUP — 修改一個用戶組
ALTER INDEX — 改變一個索引的定義
ALTER LANGUAGE — 修改一個過程語言的定義
ALTER OPERATOR — 改變一個操做符的定義
ALTER OPERATOR CLASS — 修改一個操做符表的定義
ALTER ROLE — 修改一個數據庫角色
ALTER SCHEMA — 修改一個模式的定義
ALTER SEQUENCE — 更改一個序列生成器的定義
ALTER TABLE — 修改表的定義
ALTER TABLESPACE — 改變一個表空間的定義
ALTER TRIGGER — 改變一個觸發器的定義
ALTER TYPE — 改變一個類型的定義
ALTER USER — 改變數據庫用戶賬號
ANALYZE — 收集與數據庫有關的統計
BEGIN — 開始一個事務塊
CHECKPOINT — 強制一個事務日誌檢查點
CLOSE — 關閉一個遊標
CLUSTER — 根據一個索引對某個表集簇
COMMENT — 定義或者改變一個對象的評註
COMMIT — 提交當前事務
COMMIT PREPARED — 提交一個早先爲兩階段提交準備好的事務
COPY — 在表和文件之間拷貝數據
CREATE AGGREGATE — 定義一個新的彙集函數
CREATE CAST — 定義一個用戶定義的轉換
CREATE CONSTRAINT TRIGGER — 定義一個新的約束觸發器
CREATE CONVERSION — 定義一個新的的編碼轉換
CREATE DATABASE — 建立新數據庫
CREATE DOMAIN — 定義一個新域
CREATE FUNCTION — 定義一個新函數
CREATE GROUP — 定義一個新的用戶組
CREATE INDEX — 定義一個新索引
CREATE LANGUAGE — 定義一種新的過程語言
CREATE OPERATOR — 定義一個新的操做符
CREATE OPERATOR CLASS — 定義一個新的操做符表
CREATE ROLE — define a new database role
CREATE RULE — 定義一個新的重寫規則
CREATE SCHEMA — 定義一個新的模式
CREATE SEQUENCE — 建立一個新的序列發生器
CREATE TABLE — 定義一個新表
CREATE TABLE AS — 從一條查詢的結果中定義一個新表
CREATE TABLESPACE — 定義一個新的表空間
CREATE TRIGGER — 定義一個新的觸發器
CREATE TYPE — 定義一個新的數據類型
CREATE USER — 建立一個新的數據庫用戶賬戶
CREATE VIEW — 定義一個視圖
DEALLOCATE — 刪除一個準備好的查詢
DECLARE — 定義一個遊標
DELETE — 刪除一個表中的行
DROP AGGREGATE — 刪除一個用戶定義的彙集函數
DROP CAST — 刪除一個用戶定義的類型轉換
DROP CONVERSION — 刪除一個用戶定義的編碼轉換
DROP DATABASE — 刪除一個數據庫
DROP DOMAIN — 刪除一個用戶定義的域
DROP FUNCTION — 刪除一個函數
DROP GROUP — 刪除一個用戶組
DROP INDEX — 刪除一個索引
DROP LANGUAGE — 刪除一個過程語言
DROP OPERATOR — 刪除一個操做符
DROP OPERATOR CLASS — 刪除一個操做符表
DROP ROLE — 刪除一個數據庫角色
DROP RULE — 刪除一個重寫規則
DROP SCHEMA — 刪除一個模式
DROP SEQUENCE — 刪除一個序列
DROP TABLE — 刪除一個表
DROP TABLESPACE — 刪除一個表空間
DROP TRIGGER — 刪除一個觸發器定義
DROP TYPE — 刪除一個用戶定義數據類型
DROP USER — 刪除一個數據庫用戶賬號
DROP VIEW — 刪除一個視圖
END — 提交當前的事務
EXECUTE — 執行一個準備好的查詢
EXPLAIN — 顯示語句執行規劃
FETCH — 用遊標從查詢中抓取行
GRANT — 定義訪問權限
INSERT — 在表中建立新行
LISTEN — 監聽一個通知
LOAD — 裝載或重載一個共享庫文件
LOCK — 明確地鎖定一個表
MOVE — 重定位一個遊標
NOTIFY — 生成一個通知
PREPARE — 建立一個準備好的查詢
PREPARE TRANSACTION — 爲當前事務作兩階段提交的準備
REINDEX — 重建索引
RELEASE SAVEPOINT — 刪除一個前面定義的保存點
RESET — 把一個運行時參數值恢復爲缺省值
REVOKE — 刪除訪問權限
ROLLBACK — 退出當前事務
ROLLBACK PREPARED — 取消一個早先爲兩階段提交準備好的事務
ROLLBACK TO — 回滾到一個保存點
SAVEPOINT — 在當前事務裏定義一個新的保存點
SELECT — 從表或視圖中取出若干行
SELECT INTO — 從一個查詢的結果中定義一個新表
SET — 改變運行時參數
SET CONSTRAINTS — 設置當前事務的約束檢查模式
SET ROLE — set the current user identifier of the current session
SET SESSION AUTHORIZATION — 爲當前會話設置會話用戶標識符和當前用戶標識符
SET TRANSACTION — 設置當前事務的特性
SHOW — 顯示運行時參數的數值
START TRANSACTION — 開始一個事務塊
TRUNCATE — 清空一個或者一堆表
UNLISTEN — 中止監聽通知信息
UPDATE — 更新一個表中的行
VACUUM — 垃圾收集以及可選地分析一個數據庫
II. 客戶端應用
clusterdb — 對一個PostgreSQL數據庫進行建簇
createdb — 建立一個新的 PostgreSQL 數據庫
createlang — 定義一種新的 PostgreSQL 過程語言
createuser — 定義一個新的 PostgreSQL 用戶賬戶
dropdb — 刪除一個現有 PostgreSQL 數據庫
droplang — 刪除一種 PostgreSQL 過程語言
dropuser — 刪除一個 PostgreSQL 用戶賬戶
ecpg — 嵌入的 SQL C 預處理器
pg_config — 檢索已安裝版本的 PostgreSQL 的信息
pg_dump — 將一個PostgreSQL數據庫抽出到一個腳本文件或者其它歸檔文件中
pg_dumpall — 抽出一個 PostgreSQL 數據庫集羣到腳本文件中
pg_restore — 從一個由 pg_dump 建立的備份文件中恢復 PostgreSQL 數據庫。
psql — PostgreSQL 交互終端
vacuumdb — 收集垃圾而且分析一個PostgreSQL 數據庫
III. PostgreSQL 服務器應用
initdb — 建立一個新的 PostgreSQL數據庫集羣
ipcclean — 從失效的PostgreSQL服務器中刪除共享內存和信號燈
pg_controldata — 顯示一個 PostgreSQL 集羣的控制信息
pg_ctl — 啓動,中止和重起 PostgreSQL
pg_resetxlog — 重置一個 PostgreSQL 數據庫集羣的預寫日誌以及其它控制內容
postgres — 以單用戶模式運行一個 PostgreSQL服務器
postmaster — PostgreSQL多用戶數據庫服務器
59.導出數據庫角色
/data/pgsql/bin/pg_dumpall -p 5432 -U postgres -r >/tmp/postgres_8.3_role.bak
60.修改sequence全部者
grant all on sequence名稱 to 全部者;
61.修改sequence初始值
Alter SEQUENCE sequencename START value;
62.查看sequence當前值
SELECT currval('sequencename');
63.查看sequence下一值
SELECT nextval('sequencename');
64.設置sequence當前值
alter SEQUENCE sequencename restart with startvalue;
SELECT nextval('sequencename');
65.查詢表結構
SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a
.atttypmod AS lengthvar,a.attnotnull AS notnull
FROM pg_class c,pg_attribute a,pg_type t
WHERE c.relname=表名稱and a.attnum > 0 and a.attrelid = c.oid and a
.atttypid = t.oid
66.將查詢結果直接輸出到文件
在psql中
\o 文件路徑
select datname,rolname from pg_database a left outer join pg_roles b on a.datdba=b.oid ;
\o
67.查詢數據庫全部則
select datname,rolname from pg_database a left outer join pg_roles b on a.datdba=b.oid ;
68.結束正在執行的事務
SELECT * from pg_stat_activity;
select pg_cancel_backend('procpid');
60.結束session
SELECT * from pg_stat_activity;
select pg_terminate_backend('procpid');
61.postgresql取消轉義字符功能
將postgresql.conf文件中的standard_conforming_strings設置爲on
62.查詢正在執行SQL
SELECT procpid, start, now() - start AS lap, current_query FROM (SELECT backendid, pg_stat_get_backend_pid(S.backendid) AS procpid, pg_stat_get_backend_activity_start(S.backendid) AS start, pg_stat_get_backend_activity(S.backendid) AS current_query FROM (SELECT pg_stat_get_backend_idset() AS backendid) AS S ) AS S WHERE current_query <> '' ORDER BY lap DESC;