手機版
你好,游客 登錄 注冊
背景:
閱讀新聞

如何使用 psql 列出 PostgreSQL 數據庫和表

[日期:2019-08-07] 來源:Linux公社  作者:醉落紅塵 [字體: ]

在管理PostgreSQL數據庫服務器時,您可能要執行的最常見任務之一就是列出數據庫及其表。

PostgreSQL附帶了一個名為psql的交互式工具,允許您連接到服務器并對其運行查詢。在使用psql時,還可以利用它的元命令。這些命令對于腳本編寫和命令行管理非常有用。所有元命令都以非引號反斜杠開頭,也稱為反斜杠命令。

本教程解釋如何使用psql在PostgreSQL服務器中顯示數據庫和表。

列出數據庫

您可以使用該 psql 命令以任何系統用戶身份連接到 PostgreSQL 服務器。根據服務器配置,用戶可能需要輸入其密碼才能連接到 psql 終端。要以您當前登錄的用戶身份訪問 psql 終端,只需鍵入即可 psql 。

安裝 PostgreSQL 軟件包后,將創建名為 “postgres” 的管理用戶。默認情況下,此用戶可以在沒有密碼的情況下連接到本地 PostgreSQL 服務器。

要以 “postgres” 用戶身份訪問終端 psql ,請運行:

sudo -u postgres psql

該 sudo 命令允許您以其他用戶身份運行命令。

從 psql 終端執行 \l 或 \list meta-command 列出所有數據庫:

\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元命令不同,上面的查詢將僅顯示數據庫的名稱:

  datname  
-----------
 postgres
 odoo
 template1
 template0
(4 rows)

列出表

要首先列出特定數據庫的所有表,您需要使用 \c 或者 \connect meta-command 連接到它。您登錄 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+。

結論

您已經學習了如何使用該 psql 命令列出 PostgreSQL 數據庫和表。

Linux公社的RSS地址http://www.nluszu.live/rssFeed.aspx

本文永久更新鏈接地址http://www.nluszu.live/Linux/2019-08/159896.htm

linux
本文評論   查看全部評論 (0)
表情: 表情 姓名: 字數

       

評論聲明
  • 尊重網上道德,遵守中華人民共和國的各項有關法律法規
  • 承擔一切因您的行為而直接或間接導致的民事或刑事法律責任
  • 本站管理人員有權保留或刪除其管轄留言中的任意內容
  • 本站有權在網站內轉載或引用您的評論
  • 參與本評論即表明您已經閱讀并接受上述條款
彩票投注骗局