psql客戶端命令介紹

1 環(huán)境

postgresql-server版本 :13.2
psql版本:14.1
客戶端操作系統(tǒng):Windows 10

2 如何鏈接數(shù)據(jù)庫postgresql

打開powershell(Linux下打開Terminal),輸入.\psql.exe --help,即可查看如何鏈接數(shù)據(jù)庫postgresql。

> .\psql.exe --help
psql是PostgreSQL 的交互式客戶端工具。
使用方法:
  psql [選項]... [數(shù)據(jù)庫名稱 [用戶名稱]]
通用選項:
  -c, --command=命令       執(zhí)行單一命令(SQL或內部指令)然后結束
  -d, --dbname=DBNAME      指定要連接的數(shù)據(jù)庫 (默認:"jianglei02")
  -f, --file=文件名        從文件中執(zhí)行命令然后退出
  -l, --list               列出所有可用的數(shù)據(jù)庫,然后退出
  -v, --set=, --variable=NAME=VALUE
                           設置psql變量NAME為VALUE
                           (例如,-v ON_ERROR_STOP=1)
  -V, --version            輸出版本信息, 然后退出
  -X, --no-psqlrc          不讀取啟動文檔(~/.psqlrc)
  -1 ("one"), --single-transaction
                           作為一個單一事務來執(zhí)行命令文件(如果是非交互型的)
  -?, --help[=options]     顯示此幫助,然后退出
      --help=commands      列出反斜線命令,然后退出
      --help=variables     列出特殊變量,然后退出

輸入和輸出選項:
  -a, --echo-all           顯示所有來自于腳本的輸入
  -b, --echo-errors        回顯失敗的命令
  -e, --echo-queries       顯示發(fā)送給服務器的命令
  -E, --echo-hidden        顯示內部命令產生的查詢
  -L, --log-file=文件名    將會話日志寫入文件
  -n, --no-readline        禁用增強命令行編輯功能(readline)
  -o, --output=FILENAME    將查詢結果寫入文件(或 |管道)
  -q, --quiet              以沉默模式運行(不顯示消息,只有查詢結果)
  -s, --single-step        單步模式 (確認每個查詢)
  -S, --single-line        單行模式 (一行就是一條 SQL 命令)

輸出格式選項 :
  -A, --no-align           使用非對齊表格輸出模式
      --csv                CSV(逗號分隔值)表輸出模式
  -F, --field-separator=STRING
                           為字段設置分隔符,用于不整齊的輸出(默認:"|")
  -H, --html               HTML 表格輸出模式
  -P, --pset=變量[=參數(shù)]   設置將變量打印到參數(shù)的選項(查閱 \pset 命令)
  -R, --record-separator=STRING
                           為不整齊的輸出設置字錄的分隔符(默認:換行符號)
  -t, --tuples-only        只打印記錄i
  -T, --table-attr=文本    設定 HTML 表格標記屬性(例如,寬度,邊界)
  -x, --expanded           打開擴展表格輸出
  -z, --field-separator-zero
                           為不整齊的輸出設置字段分隔符為字節(jié)0
  -0, --record-separator-zero
                           為不整齊的輸出設置記錄分隔符為字節(jié)0

聯(lián)接選項:
  -h, --host=主機名        數(shù)據(jù)庫服務器主機或socket目錄(默認:"本地接口")
  -p, --port=端口          數(shù)據(jù)庫服務器的端口(默認:"5432")
  -U, --username=用戶名    指定數(shù)據(jù)庫用戶名(默認:"jianglei02")
  -w, --no-password        永遠不提示輸入口令
  -W, --password           強制口令提示 (自動)

更多信息,請在psql中輸入"\?"(用于內部指令)或者 "\help"(用于SQL命令),
或者參考PostgreSQL文檔中的psql章節(jié).

臭蟲報告至<pgsql-bugs@lists.postgresql.org>.
PostgreSQL 主頁: <https://www.postgresql.org/>

連接postgresql數(shù)據(jù)庫的示例:

> .\psql.exe -h {ip} -p 5432 -U {user1} -d db1
用戶 {user1} 的口令:
psql (14.1, 服務器 13.2 (Debian 13.2-1.pgdg100+1))
輸入 "help" 來獲取幫助信息.

db1=>

3 psql如何操作數(shù)據(jù)庫

在psql鏈接postgresql成功之后,輸入\?即可查看所有可以操作數(shù)據(jù)庫對象的psql命令。

db1=> \?
一般性
  \copyright             顯示PostgreSQL的使用和發(fā)行許可條款
  \crosstabview [COLUMNS] 執(zhí)行查詢并且以交叉表顯示結果
  \errverbose            以最冗長的形式顯示最近的錯誤消息
  \g [(OPTIONS)] [FILE]  執(zhí)行查詢(并將結果發(fā)送到文件或|管道);
                         不帶參數(shù)的\g等價于分號
  \gdesc                 描述查詢結果,而不執(zhí)行它
  \gexec                 執(zhí)行策略,然后執(zhí)行其結果中的每個值
  \gset [PREFIX]         執(zhí)行查詢并把結果存到psql變量中
  \gx [(OPTIONS)] [FILE] 就像\g,但強制擴展輸出模式
  \q                     退出 psql
  \watch [SEC]           每隔SEC秒執(zhí)行一次查詢

幫助
  \? [commands]          顯示反斜線命令的幫助
  \? options             顯示 psql 命令行選項的幫助
  \? variables           顯示特殊變量的幫助
  \h [NAME]              SQL命令語法上的說明,用*顯示全部命令的語法說明

查詢緩存區(qū)
  \e [FILE] [LINE]       使用外部編輯器編輯查詢緩存區(qū)(或文件)
  \ef [FUNCNAME [LINE]]  使用外部編輯器編輯函數(shù)定義
  \ev [VIEWNAME [LINE]]  用外部編輯器編輯視圖定義
  \p                     顯示查詢緩存區(qū)的內容
  \r                     重置(清除)查詢緩存區(qū)
  \w 文件                將查詢緩存區(qū)的內容寫入文件

輸入/輸出
  \copy ...              執(zhí)行 SQL COPY,將數(shù)據(jù)流發(fā)送到客戶端主機
  \echo [-n] [STRING]    將字符串寫到標準輸出(-n表示沒有換行符)
  \i 文件                從文件中執(zhí)行命令
  \ir FILE               與 \i類似, 但是相對于當前腳本的位置
  \o [文件]              將全部查詢結果寫入文件或 |管道
  \qecho [-n] [STRING]   將字符串寫入\o輸出流(-n表示無換行)
  \warn [-n] [STRING]    將字符串寫入標準錯誤(-n 表示無換行)

條件
  \if EXPR               開始條件塊
  \elif EXPR             當前條件塊內的備選方案
  \else                  當前條件塊內的最終備選方案
  \endif                 條件塊的結尾

資訊性
  (選項: S = 顯示系統(tǒng)對象, + = 其余的詳細信息)
  \d[S+]                 列出表,視圖和序列
  \d[S+]  名稱           描述表,視圖,序列,或索引
  \da[S]  [模式]         列出聚合函數(shù)
  \dA[+]  [模式]         列出訪問方法
  \dAc[+] [AMPTRN [TYPEPTRN]]  列出運算符
  \dAf[+] [AMPTRN [TYPEPTRN]]  列出運算符集合
  \dAo[+] [AMPTRN [OPFPTRN]]   列出運算符集合
  \dAp[+] [AMPTRN [OPFPTRN]]   列出運算符集合所支持的功能
  \db[+]  [模式]         列出表空間
  \dc[S+] [模式]         列表轉換
  \dC[+]  [模式]         列出類型強制轉換
  \dd[S]  [模式]         顯示沒有在別處顯示的對象描述
  \dD[S+] [模式]         列出共同值域
  \ddp    [模式]         列出默認權限
  \dE[S+] [模式]         列出引用表
  \des[+] [模式]         列出外部服務器
  \det[+] [模式]         列出引用表
  \deu[+] [模式]         列出用戶映射
  \dew[+] [模式]         列出外部數(shù)據(jù)封裝器
  \df[anptw][S+] [FUNCPTRN [TYPEPTRN ...]]
                         列出 [only agg/normal/procedure/trigger/window] 函數(shù)
  \dF[+]  [模式]         列出文本搜索配置
  \dFd[+] [模式]         列出文本搜索字典
  \dFp[+] [模式]         列出文本搜索解析器
  \dFt[+] [模式]         列出文本搜索模版
  \dg[S+] [模式]         列出角色
  \di[S+] [模式]         列出索引
  \dl                    列出大對象, 功能與\lo_list相同
  \dL[S+] [模式]         列出所有過程語言
  \dm[S+] [模式]         列出所有物化視圖
  \dn[S+] [模式]         列出所有模式
  \do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]
                         列出運算符
  \dO[S+] [模式]         列出所有校對規(guī)則
  \dp     [模式]         列出表,視圖和序列的訪問權限
  \dP[itn+] [PATTERN]    列出[僅表/索引]分區(qū)關系[n=nested]
  \drds [ROLEPTRN [DBPTRN]] list per-database role settings
  \dRp[+] [模式]         列出復制發(fā)布
  \dRs[+] [模式]         列出復制訂閱
  \ds[S+] [模式]         列出序列
  \dt[S+] [模式]         列出表
  \dT[S+] [模式]         列出數(shù)據(jù)類型
  \du[S+] [模式]         列出角色
  \dv[S+] [模式]         列出視圖
  \dx[+]  [模式]         列出擴展
  \dX     [PATTERN]      列出擴展統(tǒng)計信息
  \dy[+]  [PATTERN]      l列出所有事件觸發(fā)器
  \l[+]   [模式]         列出所有數(shù)據(jù)庫
  \sf[+]  FUNCNAME       顯示一個函數(shù)的定義
  \sv[+]  VIEWNAME       顯示一個視圖的定義
  \z      [模式]         和\dp的功能相同

格式化
  \a                     在非對齊模式和對齊模式之間切換
  \C [字符串]            設置表的標題,或如果沒有的標題就取消
  \f [字符串]            顯示或設定非對齊模式查詢輸出的字段分隔符
  \H                     切換HTML輸出模式 (目前是 關閉)
  \pset [NAME [VALUE]]   設置表輸出選項
                         (border|columns|csv_fieldsep|expanded|fieldsep|
                         fieldsep_zero|footer|format|linestyle|null|
                         numericlocale|pager|pager_min_lines|recordsep|
                         recordsep_zero|tableattr|title|tuples_only|
                         unicode_border_linestyle|unicode_column_linestyle|
                         unicode_header_linestyle
  \t [開|關]             只顯示記錄 (目前是關閉)
  \T [字符串]            設置HTML <表格>標簽屬性, 或者如果沒有的話取消設置
  \x [on|off|auto]       切換擴展輸出模式(目前是 關閉)

連接
  \c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}
                         連接到新數(shù)據(jù)庫(當前是"znbase8")
  \conninfo              顯示當前連接的相關信息
  \encoding [編碼名稱]   顯示或設定客戶端編碼
  \password [USERNAME]   安全地為用戶更改口令

操作系統(tǒng)
  \cd [目錄]             更改目前的工作目錄
  \setenv NAME [VALUE]   設置或清空環(huán)境變量
  \timing [開|關]        切換命令計時開關 (目前是關閉)
  \! [命令]              在 shell中執(zhí)行命令或啟動一個交互式shell

變量
  \prompt [文本] 名稱    提示用戶設定內部變量
  \set [名稱 [值數(shù)]]     設定內部變量,若無參數(shù)則列出全部變量
  \unset 名稱            清空(刪除)內部變量

大對象
  \lo_export LOBOID 文件
  \lo_import 文件 [注釋]
  \lo_list
  \lo_unlink LOBOID      大對象運算

4 查看postgresql的SQL命令使用方法

在psql鏈接postgresql成功之后,輸入\h即可查看所有操作數(shù)據(jù)庫對象的SQL命令;輸入\h sql_command可以查看具體SQL sql_command的使用方法。

db1=> \h
可用的說明:
  ABORT                            CREATE USER
  ALTER AGGREGATE                  CREATE USER MAPPING
  ALTER COLLATION                  CREATE VIEW
  ALTER CONVERSION                 DEALLOCATE
  ALTER DATABASE                   DECLARE
  ALTER DEFAULT PRIVILEGES         DELETE
  ALTER DOMAIN                     DISCARD
  ALTER EVENT TRIGGER              DO
  ALTER EXTENSION                  DROP ACCESS METHOD
  ALTER FOREIGN DATA WRAPPER       DROP AGGREGATE
  ALTER FOREIGN TABLE              DROP CAST
  ALTER FUNCTION                   DROP COLLATION
  ALTER GROUP                      DROP CONVERSION
  ALTER INDEX                      DROP DATABASE
  ALTER LANGUAGE                   DROP DOMAIN
  ALTER LARGE OBJECT               DROP EVENT TRIGGER
  ALTER MATERIALIZED VIEW          DROP EXTENSION
  ALTER OPERATOR                   DROP FOREIGN DATA WRAPPER
  ALTER OPERATOR CLASS             DROP FOREIGN TABLE
  ALTER OPERATOR FAMILY            DROP FUNCTION
  ALTER POLICY                     DROP GROUP
  ALTER PROCEDURE                  DROP INDEX
  ALTER PUBLICATION                DROP LANGUAGE
  ALTER ROLE                       DROP MATERIALIZED VIEW
  ALTER ROUTINE                    DROP OPERATOR
  ALTER RULE                       DROP OPERATOR CLASS
  ALTER SCHEMA                     DROP OPERATOR FAMILY
  ALTER SEQUENCE                   DROP OWNED
  ALTER SERVER                     DROP POLICY
  ALTER STATISTICS                 DROP PROCEDURE
  ALTER SUBSCRIPTION               DROP PUBLICATION
  ALTER SYSTEM                     DROP ROLE
  ALTER TABLE                      DROP ROUTINE
  ALTER TABLESPACE                 DROP RULE
  ALTER TEXT SEARCH CONFIGURATION  DROP SCHEMA
  ALTER TEXT SEARCH DICTIONARY     DROP SEQUENCE
  ALTER TEXT SEARCH PARSER         DROP SERVER
  ALTER TEXT SEARCH TEMPLATE       DROP STATISTICS
  ALTER TRIGGER                    DROP SUBSCRIPTION
  ALTER TYPE                       DROP TABLE
  ALTER USER                       DROP TABLESPACE
  ALTER USER MAPPING               DROP TEXT SEARCH CONFIGURATION
  ALTER VIEW                       DROP TEXT SEARCH DICTIONARY
  ANALYZE                          DROP TEXT SEARCH PARSER
  BEGIN                            DROP TEXT SEARCH TEMPLATE
  CALL                             DROP TRANSFORM
  CHECKPOINT                       DROP TRIGGER
  CLOSE                            DROP TYPE
  CLUSTER                          DROP USER
  COMMENT                          DROP USER MAPPING
  COMMIT                           DROP VIEW
  COMMIT PREPARED                  END
  COPY                             EXECUTE
  CREATE ACCESS METHOD             EXPLAIN
  CREATE AGGREGATE                 FETCH
  CREATE CAST                      GRANT
  CREATE COLLATION                 IMPORT FOREIGN SCHEMA
  CREATE CONVERSION                INSERT
  CREATE DATABASE                  LISTEN
  CREATE DOMAIN                    LOAD
  CREATE EVENT TRIGGER             LOCK
  CREATE EXTENSION                 MOVE
  CREATE FOREIGN DATA WRAPPER      NOTIFY
  CREATE FOREIGN TABLE             PREPARE
  CREATE FUNCTION                  PREPARE TRANSACTION
  CREATE GROUP                     REASSIGN OWNED
  CREATE INDEX                     REFRESH MATERIALIZED VIEW
  CREATE LANGUAGE                  REINDEX
  CREATE MATERIALIZED VIEW         RELEASE SAVEPOINT
  CREATE OPERATOR                  RESET
  CREATE OPERATOR CLASS            REVOKE
  CREATE OPERATOR FAMILY           ROLLBACK
  CREATE POLICY                    ROLLBACK PREPARED
  CREATE PROCEDURE                 ROLLBACK TO SAVEPOINT
  CREATE PUBLICATION               SAVEPOINT
  CREATE ROLE                      SECURITY LABEL
  CREATE RULE                      SELECT
  CREATE SCHEMA                    SELECT INTO
  CREATE SEQUENCE                  SET
  CREATE SERVER                    SET CONSTRAINTS
  CREATE STATISTICS                SET ROLE
  CREATE SUBSCRIPTION              SET SESSION AUTHORIZATION
  CREATE TABLE                     SET TRANSACTION
  CREATE TABLE AS                  SHOW
  CREATE TABLESPACE                START TRANSACTION
  CREATE TEXT SEARCH CONFIGURATION TABLE
  CREATE TEXT SEARCH DICTIONARY    TRUNCATE
  CREATE TEXT SEARCH PARSER        UNLISTEN
  CREATE TEXT SEARCH TEMPLATE      UPDATE
  CREATE TRANSFORM                 VACUUM
  CREATE TRIGGER                   VALUES
  CREATE TYPE                      WITH

db1=>
db1=> \h create type
命令:       CREATE TYPE
描述:       建立新的數(shù)據(jù)類型
語法:
CREATE TYPE 名稱 AS
    ( [ 屬性_名稱 數(shù)據(jù)_類型 [ COLLATE 校對規(guī)則 ] [, ... ] ] )

CREATE TYPE 名稱 AS ENUM
    ( [ '標簽' [, ... ] ] )

CREATE TYPE 名稱 AS RANGE (
    SUBTYPE = 子類型
    [ , SUBTYPE_OPCLASS = subtype_operator_class(子類型_操作符_類) ]
    [ , COLLATION = 校對規(guī)則 ]
    [ , CANONICAL = 標準_函數(shù) ]
    [ , SUBTYPE_DIFF = subtype_diff_function(子類型_區(qū)分_函數(shù)) ]
    [ , MULTIRANGE_TYPE_NAME = multirange_type_name ]
)

CREATE TYPE 名稱 (
    INPUT = 輸入_函數(shù),
    OUTPUT = 輸出_函數(shù)
    [ , RECEIVE = 接收_函數(shù) ]
    [ , SEND = 發(fā)送_函數(shù) ]
    [ , TYPMOD_IN = 類型修改器數(shù)組輸入函數(shù)名稱 ]
    [ , TYPMOD_OUT = 類型修改器輸出函數(shù)名稱 ]
    [ , ANALYZE = 分析_函數(shù) ]
    [ , SUBSCRIPT = subscript_function ]
    [ , INTERNALLENGTH = { 內部長度 | VARIABLE } ]
    [ , PASSEDBYVALUE ]
    [ , ALIGNMENT = 順序排列(alignment) ]
    [ , STORAGE = 存儲 ]
    [ , LIKE = LIKE類型(like_type) ]
    [ , CATEGORY = 類型 ]
    [ , PREFERRED = 優(yōu)先 ]
    [ , DEFAULT = 默認 ]
    [ , ELEMENT = 成員項 ]
    [ , DELIMITER = 分隔符 ]
    [ , COLLATABLE = 要校對的 ]
)

CREATE TYPE 名稱

URL: https://www.postgresql.org/docs/14/sql-createtype.html


db1=>
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容