如何使用psql列出PostgreSQL數據庫和表
在管理PostgreSQL數據庫服務器時,您可能要執行的最常見任務之一就是列出數據庫及其表。
PostgreSQL帶有一個稱為 psql
,它使您可以連接到服務器並對其進行查詢。 使用時 psql
您還可以利用其元命令。 這些命令對於腳本和命令行管理很有用。 所有元命令都以無引號的反斜杠開頭,也稱為反斜杠命令。
本教程說明了如何使用以下命令顯示PostgreSQL服務器中的數據庫和表 psql
。
列出數據庫
您可以使用來連接到PostgreSQL服務器 psql
以任何系統用戶的身份命令。 根據服務器配置,用戶可能需要輸入密碼才能連接到 psql
終奌站。 要訪問 psql
終端作為您當前登錄的用戶,只需鍵入 psql
。
安裝PostgreSQL軟件包後,將創建一個名為“ postgres”的管理用戶。 默認情況下,該用戶無需密碼即可連接到本地PostgreSQL服務器。
要訪問 psql
以“ postgres”用戶身份運行,運行:
sudo -u postgres psql
的 sudo
命令允許您以其他用戶身份運行命令。
從psql終端中執行 l
要麼 list
元命令列出所有數據庫:
l
輸出將包括數據庫數量,每個數據庫的名稱,其所有者,編碼和訪問特權:
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+---------+---------+-----------------------
odoo | odoo | UTF8 | C | C.UTF-8 |
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
PostgreSQL服務器具有默認創建的三個數據庫,即template0,template1和postgres。 前兩個是創建新數據庫時使用的模板。
如果要獲取有關數據庫大小的信息,請使用默認表空間和描述 l+
要麼 list+
。 僅噹噹前用戶可以連接時,才會顯示數據庫大小。
要獲取所有數據庫的列表而不訪問psql shell,請使用 -c
切換如下圖:
sudo -u postgres psql -c "l"
列出數據庫的另一種方法是使用以下SQL語句:
SELECT datname FROM pg_database;
不像 l
上面查詢的meta命令僅顯示數據庫名稱:
datname
-----------
postgres
odoo
template1
template0
(4 rows)
列表表
要首先列出特定數據庫的所有表,您需要使用 c
要麼 connect
元命令。 使用psql終端登錄的用戶必須能夠連接到數據庫。
例如,要連接到名為“ odoo”的數據庫,請輸入:
c odoo
切換數據庫後,請使用 dt
元命令列出所有數據庫表:
輸出將包括表的數量,每個表的名稱及其模式,類型和所有者:
List of relations
Schema | Name | Type | Owner
--------+-----------------------------------------------------+-------+-------
public | base_import_import | table | odoo
public | base_import_mapping | table | odoo
public | base_import_tests_models_char | table | odoo
...
public | web_editor_converter_test_sub | table | odoo
public | web_tour_tour | table | odoo
public | wizard_ir_model_menu_create | table | odoo
(107 rows)
如果數據庫為空,則輸出將如下所示:
No relations found.
要獲取有關表大小和描述的信息,請使用 dt+
。
結論#
您已經了解了如何使用列出PostgreSQL數據庫和表 psql
命令。
如有任何疑問,請隨時發表評論。
PostgreSQL