列出 PostgreSQL INFORMATION_SCHEMA 表中的所有表
-
在 PostgreSQL 中檢索
INFORMATION_SCHEMA內的表的基本SELECT查詢 -
PostgreSQL 中
INFORMATION_SCHEMA的SELECT查詢修改 -
PostgreSQL 中
INFORMATION_SCHEMA列表(工作更新)的PSQL語句 -
在 PostgreSQL 的資料庫中返回表的
\z -
\z修改以獲取 PostgreSQL 中的所有表
讓我們從一個簡單的問題開始。INFORMATION_SCHEMA 到底是什麼?
INFORMATION_SCHEMA 為我們提供了有關我們資料庫中定義的物件的資訊。它包含一組 VIEWS,它們儲存 QUERY 資料庫物件。
下面的查詢就像一個 VIEW,因為它返回一個包含 YOUR_TABLE 行的邏輯 TABLE。
Select * from [your_table]
INFORMATION_SCHEMA 是預先存在的,這意味著資料庫使用者可以在需要時訪問此表和所有許可權,包括 DROP。
這個 SCHEMA 包含各種資料庫物件,因此如果你想訪問某個特定物件,最好寫下物件的名稱,例如 TABLES,以檢索所有表。
現在讓我們繼續看看我們如何使用它。
在 PostgreSQL 中檢索 INFORMATION_SCHEMA 內的表的基本 SELECT 查詢
要獲取此 SCHEMA 中的所有表,一個非常簡單的查詢是編寫類似這樣的內容。
select * from information_schema.tables
這將返回一個像這樣的表。
輸出:

在這裡,你可以看到資料庫中的所有表及其 TYPE。
然而,這個輸出有一個令人困惑的方面。如果你向下滾動 OUTPUT 一點,你會注意到這一點。
輸出:

在這裡,你將看到 TABLE_SCHEMA 設定為 INFORMATION_SCHEMA 的不同表。但是,我們不是叫 INFORMATION_SCHEMA.TABLES,那這是什麼?
讓我們解釋一下。TABLE_SCHEMA 告訴我們 SCHEMA 包含該表。
當我們呼叫 INFORMATION_SCHEMA.TABLES 時,它會返回由其文件中的資料庫規則定義的所有物件。因此,它還包括 PG_CATALOG 和 PUBLIC 表。
但是將 TABLE_SCHEMA 設定為 INFORMATION_SCHEMA 的表傾向於遵循稱為 SQL STANDARD 的東西,這意味著它們可以在其他不同的 DBMS 系統上檢視。你可以通過在 Google 上搜尋 ISO/IEC 9075 來檢視 SQL 標準。
相比之下,PG_CATALOG 只有 PostgreSQL 特定的表;因此,它們包含在該域中。
附帶說明一下,INFORMATION_SCHEMA 可能也傾向於將這些 SYSTEM 表輸出為符合 SQL STANDARD 的後設資料。
PostgreSQL 中 INFORMATION_SCHEMA 的 SELECT 查詢修改
為了分別從上述查詢返回的表範圍中獲取 INFORMATION_SCHEMA 表,我們使用:
select * from information_schema.tables where table_schema = 'information_schema'
或者,如果你想顯示不同的表格集,你可以將 TABLE_SCHEMA 更改為 PUBLIC 或 PG_CATALOG。
在 PSQL 中執行相同的查詢會返回:
輸出:

PostgreSQL 中 INFORMATION_SCHEMA 列表(工作更新)的 PSQL 語句
要在 PSQL 控制檯中檢視 INFORMATION_SCHEMA,你可以發出以下語句:
postgres=# \dt information_schema.*
這將返回 INFORMATION_SCHEMA 中的所有物件。DT 用作列出表格的簡寫形式。
在 PostgreSQL 的資料庫中返回表的 \z
另一個非常常用的方法可能包括\z。這被錯誤地寫為'/z',這可能會導致錯誤。
宣告如下。
postgres-# \z
這主要返回使用者製作的表格。此外,你可以使用:
postgres-# \dn information_schema
這告訴我們 SCHEMA 的 OWNER。
\z 修改以獲取 PostgreSQL 中的所有表
第一個解決方案的替代方法是使用:
postgres-# \dt *.*
這將像以前一樣返回所有表。
我們希望你瞭解了我們可以為我們的使用者顯示 INFORMATION_SCHEMA 表的不同方式。我們總是盡最大努力探索解決問題的可能方法。
今天我們已經介紹了 INFORMATION_SCHEMA 的顯示以及可能使用的不同命令和表格。
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub