當前位置:首頁 » 數據倉庫 » pg資料庫查詢視圖
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

pg資料庫查詢視圖

發布時間: 2022-05-02 14:42:42

❶ 在postgresql中如何從資料庫中檢索出所有的表名

1、查看當前資料庫中所有的模式。

❷ PG里如何查看錶,索引,表空間,資料庫大小

--查詢一個索引大小 select pg_size_pretty(pg_relation_size('indexname))--查看一張表及此它上的索引總大小 select pg_size_pretty(pg_total_relation_size('tablename')); --查看所有 schema裡面索引大小,大到小的順序排列: select indexrelname,pg_size_pretty( pg_relation_size(relid)) from pg_stat_user_indexes where schemaname = 'schemaname' order by pg_relation_size(relid) desc;--查看所有 schema裡面表的大小,從大到小順序排列: select relname, pg_size_pretty(pg_relation_size(relid)) from pg_stat_user_tables where schemaname = 'schemaname' order by pg_relation_size(relid) desc; --查看資料庫大小: select pg_database.datname,pg_size_pretty(pg_database_size(pg_database.datname)) AS size from pg_database;--查看錶空間大小

❸ postgresql查看資料庫怎麼查看指定的模式 數據表

可以使用pgAdminIII, 連接到資料庫服務之後,展開資料庫,就可以看到"模式",再展開模式,就可以看到此模式下的數據數據表,函數等對象了。

❹ 如何查PostgreSQL 資料庫中所有的表

1、通過命令行查詢
d
資料庫
——
得到所有表的名字
d
表名
——
得到表結構
2、通過SQL語句查詢
"select
*
from
pg_tables"
——
得到當前db中所有表的信息(這里pg_tables是系統視圖)
"select
tablename
from
pg_tables
where
schemaname='public'"
——
得到所有用戶自定義表的名字(這里"tablename"欄位是表的名字,"schemaname"是schema的名字。用戶自定義的表,如果未經特殊處理,默認都是放在名為public的schema下)

❺ postgresql資料庫怎麼查詢所有的序列名

1、在查詢的時候一般使用*查詢代表查詢所有欄位信息,但表太大就不建議使用這種方式。

❻ linux 怎麼查詢postgres資料庫

postgres下一些查詢有時候是不同於其他資料庫的。
查詢版本:psql --version
進入資料庫後,使用下面的方法進行查詢。
(1)顯示SQL語句執行時間
\timing on 退出資料庫失效
(2)顯示postgres中所有的表總數(包含資料庫自帶的)
select count(*) from pg_tables;
安裝好資料庫系統自帶為58個。
(3)顯示用戶生成的資料庫列表
\d
(4)顯示某個表列屬性
\d tablename
(5)刪除表中所有數據
delete from tablename --寫入日誌
Truncate Table tablename --不寫入日誌
TRUNCATE TABLE
刪除表中的所有行,而不記錄單個行刪除操作。
語法
TRUNCATE TABLE name
參數
name
是要截斷的表的名稱或要刪除其全部行的表的名稱。
注釋
TRUNCATE TABLE 在功能上與不帶 WHERE 子句的 DELETE 語句相同:二者均刪除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系統和事務日誌資源少。
DELETE 語句每次刪除一行,並在事務日誌中為所刪除的每行記錄一項。TRUNCATE TABLE 通過釋放存儲表數據所用的數據頁來刪除數據,並且只在事務日誌中記錄頁的釋放。
TRUNCATE TABLE 刪除表中的所有行,但表結構及其列、約束、索引等保持不變。新行標識所用的計數值重置為該列的種子。如果想保留標識計數值,請改用 DELETE。
如果要刪除表定義及其數據,請使用 DROP TABLE 語句。
對於由 FOREIGN KEY 約束引用的表,不能使用 TRUNCATE TABLE,而應使用不帶 WHERE 子句的 DELETE 語句。由於 TRUNCATE TABLE 不記錄在日誌中,所以它不能激活觸發器。
TRUNCATE TABLE 不能用於參與了索引視圖的表。
示例
下例刪除 authors 表中的所有數據。
TRUNCATE TABLE authors
(6)顯示當前用戶
\c
(7)顯示當前資料庫所有用戶
\
(8)創建用戶
create user xxx with password 'xxxxxx';
(9)更改用戶密碼
alter user xxx with password 'yyyy';
(10)更改用戶連接
\c database username
(11)更改表名
更改表名稱
alter table smallint rename to integer;

(12)更改列名
更改表列名
alter table integer rename column id to id1;

(13)顯示日期
show datestyle;
(14)設置日期格式
set datestyle=MDY;
(15)列印詳細出錯信息
postgres=# \set VERBOSITY verbose
postgres=#
postgres=#
postgres=# create table (id );
ERROR: syntax error at or near "(" at character 14
STATEMENT: create table (id );
ERROR: 42601: syntax error at or near "("
LINE 1: create table (id );
^
LOCATION: scanner_yyerror, scan.l:1044

(16)更改列屬性
postgres=# alter table a1 alter column id2 set DATA TYPE int;
(17)查看幫助信息
\h alter table
(18)列顯示
\x
(19)創建函數
CREATE OR REPLACE FUNCTION f_value_single()
returns void AS $_$
DECLARE
BEGIN
for i in 1..2000000 loop
insert into abc values(1,'a','a');
end loop;
return;
END;
$_$ language plpgsql;

將表名作為入參
create or replace function count(varchar)
returns bigint
as

selectcount(∗)fromquoteident($1);

language 'sql';

(20)關閉資料庫3種模式
SIGTERM
不再允許新的連接,但是允許所有活躍的會話正常完成他們的工作,只有在所有會話都結束任務後才關閉。這是智能關閉。

SIGINT
不再允許新的連接,向所有活躍伺服器發送 SIGTERM(讓它們立刻退出),然後等待所有子進程退出並關閉資料庫。這是快速關閉。

SIGQUIT
令 postgres 向所有子進程發送 SIGQUIT 並且立即退出(所有子進程也會立即退出),而不會妥善地關閉資料庫系統。這是立即關閉。這樣做會導致下次啟動時的恢復(通過重放 WAL 日誌)。我們推薦只在緊急的時候使用這個方法。

SIGKILL
此選項盡量不要使用,這樣會阻止伺服器清理共享內存和信號燈資源,那樣的話你只能在啟動伺服器之前自己手工做這件事。另外,SIGKILL 直接把 postgres 殺掉,而不會等它把信號中繼給它的子進程,因此我們還需要手工殺掉每個獨立子進程。

❼ postgresql 查看有哪些表

1. 查詢表名稱

在psql狀態下查詢表名稱:dt

SQL方式查看錶名稱:

SELECTtablenameFROMpg_tables;

SELECT viewname FROM pg_views
WHERE schemaname ='public'

PostgreSQL獲取資料庫中所有view名視圖

SELECT viewname FROM pg_views

WHERE schemaname ='public'

2. 查詢表結構

在psql狀態下查詢表結構 dtablename

SQL方式查看錶結構

SELECT a.attnum,

a.attname AS field,

t.typname AS type,

a.attlen AS length,

a.atttypmod AS lengthvar,

a.attnotnull AS notnull,

b.description AS comment

FROM pg_class c,

pg_attribute a

LEFT OUTER JOIN pg_description b ON a.attrelid=b.objoid AND a.attnum = b.objsubid,
pg_type t

WHERE c.relname = 'udoc_saldiscount'

and a.attnum > 0

and a.attrelid = c.oid

and a.atttypid = t.oid

ORDER BY a.attnum;

(7)pg資料庫查詢視圖擴展閱讀:

PostgreSQL存儲系統是由以下幾個子模塊所構成的:

1)頁面管理子模塊:對PostgreSQL緩沖區頁面的組織結構進行定義以及提供頁面操作的方法。

2)緩沖區管理子模塊:管理PostgreSQL的緩沖區,包括本地緩沖區和共享緩沖區。

3)存儲設備管理子模塊:資料庫記錄是存儲在存儲介質上的,存儲設備管理子模塊將屏蔽不同物理存儲設備(塊設備,流設備)介面函數的差異,向上層緩沖區管理子模塊提供統一的訪問介面函數。

4)文件管理子模塊:一般的操作系統對一個進程允許打開的文件數是有限制的,而PostgreSQL伺服器有些時候需要打開的文件數是很多的,因此PostgreSQL文件管理子模塊自身為了突破這個瓶頸,封裝了文件的讀寫操作。

❽ 如何查postgresql 資料庫中表對應的庫

1、通過命令行查詢
\d 資料庫 —— 得到所有表的名字
\d 表名 —— 得到表結構
2、通過SQL語句查詢
"select * from pg_tables" —— 得到當前db中所有表的信息(這里pg_tables是系統視圖)
"select tablename from pg_tables where schemaname='public'" —— 得到所有用戶自定義表的名字(這里"tablename"欄位是表的名字,"schemaname"是schema的名字。用戶自定義的表,如果未經特殊處理,默認都是放在名為public的schema下)