postgresql?常用SQL語句小結(jié)
1、查詢鏈接數(shù)
SELECT sum(numbackends) FROM pg_stat_database;
2、查看死鎖狀態(tài)
select pid, ? ? ? ?usename, ? ? ? ?pg_blocking_pids(pid) as blocked_by, ? ? ? ?query as blocked_query from pg_stat_activity where cardinality(pg_blocking_pids(pid)) > 0;
3、刪除死鎖進(jìn)程
SELECT pg_cancel_backend(__pid__); SELECT pg_terminate_backend(__pid__);
4、備份數(shù)據(jù)庫
# sql文件 pg_dump dangerousdb > db.sql # tar文件 pg_dump -U postgres -F c dangerousdb > dangerousdb.tar # gz文件 pg_dump -U postgres dangerousdb | gzip > dangerousdb.gz
5、還原數(shù)據(jù)庫
# 已經(jīng)存在數(shù)據(jù)庫 pg_restore -U postgres -Ft -d dbcooper < dbcooper.tar # 創(chuàng)建新數(shù)據(jù)庫 pg_restore -U postgres -Ft -C -d dbcooper < dbcooper.tar #? ?
6、插入數(shù)據(jù)
插入單條數(shù)據(jù)
INSERT INTO TABLE_1 ( column_1, column_2, column_3 ) values( column_1, column_2, column_3 )
插入多條數(shù)據(jù)
INSERT INTO TABLE_1 ( column_1, column_2, column_3 ) values( column_1, column_2, column_3 ),( column_1, column_2, column_3 )...
從一張表查詢到的數(shù)據(jù)插入到另一張表
INSERT INTO TABLE_1 ( column_1, column_2, column_3 ) SELECT column_1, column_2, column_3 FROM TABLE_2 where TABLE_2條件;
7 、查詢pg中單張表的大?。ú话饕?/h2>
select
? ? pg_size_pretty(pg_relation_size('schema.table_name'));
select
? ? pg_size_pretty(pg_relation_size('schema.table_name'));8、查詢數(shù)據(jù)庫中所有表的大小
select ? ? relname, ? ? pg_size_pretty(pg_relation_size(relid)) from ? ? pg_stat_user_tables where ? ? schemaname = 'public' order by ? ? pg_relation_size(relid) desc;
9、按順序查看索引
select ? ? indexrelname, ? ? pg_size_pretty(pg_relation_size(relid)) from ? ? pg_stat_user_indexes where ? ? schemaname = 'public' order by ? ? pg_relation_size(relid) desc;
10 、查詢數(shù)據(jù)庫的大小
select ? ? pg_database.datname, ? ? pg_size_pretty (pg_database_size(pg_database.datname)) as size from ? ? pg_database;
11、查詢被鎖定的表
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;
12 、查詢一個(gè)Schema下面的所有表的總大小(單位MB,包括索引和數(shù)據(jù))
select ? ? schemaname , ? ? round(sum(pg_total_relation_size(schemaname || '.' || tablename))/ 1024 / 1024) "Size_MB" from ? ? pg_tables where ? ? schemaname = '<schemaname>' group by ? ? 1;
13 、查詢所有表的大小并排序(包含索引)
select
? ? table_schema || '.' || table_name as table_full_name,
? ? pg_size_pretty(pg_total_relation_size('"' || table_schema || '"."' || table_name || '"')) as size
from
? ? information_schema.tables
order by
? ? pg_total_relation_size('"' || table_schema || '"."' || table_name || '"') desc
limit 20;14 、查詢表大小按大小排序并分離data與index
select
? ? table_name,
? ? pg_size_pretty(table_size) as table_size,
? ? pg_size_pretty(indexes_size) as indexes_size,
? ? pg_size_pretty(total_size) as total_size
from
? ? (
? ? select
? ? ? ? table_name,
? ? ? ? pg_table_size(table_name) as table_size,
? ? ? ? pg_indexes_size(table_name) as indexes_size,
? ? ? ? pg_total_relation_size(table_name) as total_size
? ? from
? ? ? ? (
? ? ? ? select
? ? ? ? ? ? ('"' || table_schema || '"."' || table_name || '"') as table_name
? ? ? ? from
? ? ? ? ? ? information_schema.tables) as all_tables
? ? order by
? ? ? ? total_size desc) as pretty_sizes;或者
select
? ? table_name,
? ? pg_size_pretty(table_size) as table_size,
? ? pg_size_pretty(indexes_size) as indexes_size,
? ? pg_size_pretty(total_size) as total_size
from
? ? (
? ? select
? ? ? ? table_name,
? ? ? ? pg_table_size(table_name) as table_size,
? ? ? ? pg_indexes_size(table_name) as indexes_size,
? ? ? ? pg_total_relation_size(table_name) as total_size
? ? from
? ? ? ? (
? ? ? ? select
? ? ? ? ? ? ('' || table_schema || '.' || table_name || '') as table_name
? ? ? ? from
? ? ? ? ? ? information_schema.tables) as all_tables
? ? order by
? ? ? ? total_size desc) as pretty_sizes;到此這篇關(guān)于postgresql 常用SQL語句小結(jié)的文章就介紹到這了,更多相關(guān)postgresql 常用SQL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
postgresql合并string_agg函數(shù)的實(shí)例
這篇文章主要介紹了postgresql合并string_agg函數(shù)的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
如何查看PostgreSQL數(shù)據(jù)庫的版本(3種方法)
這篇文章主要給大家介紹了關(guān)于如何查看PostgreSQL數(shù)據(jù)庫的版本,查看PostgreSQL 數(shù)據(jù)庫的版本號(hào),可用方法很多,文中介紹了三種方法,對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-06-06
CentOS PostgreSQL 12 主從復(fù)制(主從切換)操作
這篇文章主要介紹了CentOS PostgreSQL 12 主從復(fù)制(主從切換)操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
PostgreSql觸發(fā)器創(chuàng)建、使用以及刪除示例詳解
在PostgreSQL中觸發(fā)器函數(shù)是一個(gè)沒有參數(shù)并且返回trigger類型的函數(shù),這篇文章主要給大家介紹了關(guān)于PostgreSql觸發(fā)器創(chuàng)建、使用以及刪除的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03
psql 執(zhí)行文件 permission denied的解決
這篇文章主要介紹了psql 執(zhí)行文件 permission denied的解決,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
使用python-slim鏡像遇到無法使用PostgreSQL的問題及解決方法
這篇文章主要介紹了使用python-slim鏡像遇到無法使用PostgreSQL的問題及解決方法,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-08-08
PostgreSQL教程(七):函數(shù)和操作符詳解(3)
這篇文章主要介紹了PostgreSQL教程(七):函數(shù)和操作符詳解(3),本文講解了序列操作函數(shù)、條件表達(dá)式、數(shù)組函數(shù)和操作符、系統(tǒng)信息函數(shù)、系統(tǒng)管理函數(shù)等內(nèi)容,需要的朋友可以參考下2015-05-05

