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 [選項(xiàng)]... [數(shù)據(jù)庫名稱 [用戶名稱]]
通用選項(xiàng):
-c, --command=命令 執(zhí)行單一命令(SQL或內(nèi)部指令)然后結(jié)束
-d, --dbname=DBNAME 指定要連接的數(shù)據(jù)庫 (默認(rèn):"jianglei02")
-f, --file=文件名 從文件中執(zhí)行命令然后退出
-l, --list 列出所有可用的數(shù)據(jù)庫,然后退出
-v, --set=, --variable=NAME=VALUE
設(shè)置psql變量NAME為VALUE
(例如硼讽,-v ON_ERROR_STOP=1)
-V, --version 輸出版本信息, 然后退出
-X, --no-psqlrc 不讀取啟動(dòng)文檔(~/.psqlrc)
-1 ("one"), --single-transaction
作為一個(gè)單一事務(wù)來執(zhí)行命令文件(如果是非交互型的)
-?, --help[=options] 顯示此幫助鸳惯,然后退出
--help=commands 列出反斜線命令鸦做,然后退出
--help=variables 列出特殊變量,然后退出
輸入和輸出選項(xiàng):
-a, --echo-all 顯示所有來自于腳本的輸入
-b, --echo-errors 回顯失敗的命令
-e, --echo-queries 顯示發(fā)送給服務(wù)器的命令
-E, --echo-hidden 顯示內(nèi)部命令產(chǎn)生的查詢
-L, --log-file=文件名 將會(huì)話日志寫入文件
-n, --no-readline 禁用增強(qiáng)命令行編輯功能(readline)
-o, --output=FILENAME 將查詢結(jié)果寫入文件(或 |管道)
-q, --quiet 以沉默模式運(yùn)行(不顯示消息贝或,只有查詢結(jié)果)
-s, --single-step 單步模式 (確認(rèn)每個(gè)查詢)
-S, --single-line 單行模式 (一行就是一條 SQL 命令)
輸出格式選項(xiàng) :
-A, --no-align 使用非對(duì)齊表格輸出模式
--csv CSV(逗號(hào)分隔值)表輸出模式
-F, --field-separator=STRING
為字段設(shè)置分隔符,用于不整齊的輸出(默認(rèn):"|")
-H, --html HTML 表格輸出模式
-P, --pset=變量[=參數(shù)] 設(shè)置將變量打印到參數(shù)的選項(xiàng)(查閱 \pset 命令)
-R, --record-separator=STRING
為不整齊的輸出設(shè)置字錄的分隔符(默認(rèn):換行符號(hào))
-t, --tuples-only 只打印記錄i
-T, --table-attr=文本 設(shè)定 HTML 表格標(biāo)記屬性(例如,寬度,邊界)
-x, --expanded 打開擴(kuò)展表格輸出
-z, --field-separator-zero
為不整齊的輸出設(shè)置字段分隔符為字節(jié)0
-0, --record-separator-zero
為不整齊的輸出設(shè)置記錄分隔符為字節(jié)0
聯(lián)接選項(xiàng):
-h, --host=主機(jī)名 數(shù)據(jù)庫服務(wù)器主機(jī)或socket目錄(默認(rèn):"本地接口")
-p, --port=端口 數(shù)據(jù)庫服務(wù)器的端口(默認(rèn):"5432")
-U, --username=用戶名 指定數(shù)據(jù)庫用戶名(默認(rèn):"jianglei02")
-w, --no-password 永遠(yuǎn)不提示輸入口令
-W, --password 強(qiáng)制口令提示 (自動(dòng))
更多信息吼过,請(qǐng)?jiān)趐sql中輸入"\?"(用于內(nèi)部指令)或者 "\help"(用于SQL命令),
或者參考PostgreSQL文檔中的psql章節(jié).
臭蟲報(bào)告至<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, 服務(wù)器 13.2 (Debian 13.2-1.pgdg100+1))
輸入 "help" 來獲取幫助信息.
db1=>
3 psql如何操作數(shù)據(jù)庫
在psql鏈接postgresql成功之后傀缩,輸入\?
即可查看所有可以操作數(shù)據(jù)庫對(duì)象的psql命令。
db1=> \?
一般性
\copyright 顯示PostgreSQL的使用和發(fā)行許可條款
\crosstabview [COLUMNS] 執(zhí)行查詢并且以交叉表顯示結(jié)果
\errverbose 以最冗長(zhǎng)的形式顯示最近的錯(cuò)誤消息
\g [(OPTIONS)] [FILE] 執(zhí)行查詢(并將結(jié)果發(fā)送到文件或|管道);
不帶參數(shù)的\g等價(jià)于分號(hào)
\gdesc 描述查詢結(jié)果农猬,而不執(zhí)行它
\gexec 執(zhí)行策略赡艰,然后執(zhí)行其結(jié)果中的每個(gè)值
\gset [PREFIX] 執(zhí)行查詢并把結(jié)果存到psql變量中
\gx [(OPTIONS)] [FILE] 就像\g,但強(qiáng)制擴(kuò)展輸出模式
\q 退出 psql
\watch [SEC] 每隔SEC秒執(zhí)行一次查詢
幫助
\? [commands] 顯示反斜線命令的幫助
\? options 顯示 psql 命令行選項(xiàng)的幫助
\? variables 顯示特殊變量的幫助
\h [NAME] SQL命令語法上的說明,用*顯示全部命令的語法說明
查詢緩存區(qū)
\e [FILE] [LINE] 使用外部編輯器編輯查詢緩存區(qū)(或文件)
\ef [FUNCNAME [LINE]] 使用外部編輯器編輯函數(shù)定義
\ev [VIEWNAME [LINE]] 用外部編輯器編輯視圖定義
\p 顯示查詢緩存區(qū)的內(nèi)容
\r 重置(清除)查詢緩存區(qū)
\w 文件 將查詢緩存區(qū)的內(nèi)容寫入文件
輸入/輸出
\copy ... 執(zhí)行 SQL COPY斤葱,將數(shù)據(jù)流發(fā)送到客戶端主機(jī)
\echo [-n] [STRING] 將字符串寫到標(biāo)準(zhǔn)輸出(-n表示沒有換行符)
\i 文件 從文件中執(zhí)行命令
\ir FILE 與 \i類似, 但是相對(duì)于當(dāng)前腳本的位置
\o [文件] 將全部查詢結(jié)果寫入文件或 |管道
\qecho [-n] [STRING] 將字符串寫入\o輸出流(-n表示無換行)
\warn [-n] [STRING] 將字符串寫入標(biāo)準(zhǔn)錯(cuò)誤(-n 表示無換行)
條件
\if EXPR 開始條件塊
\elif EXPR 當(dāng)前條件塊內(nèi)的備選方案
\else 當(dāng)前條件塊內(nèi)的最終備選方案
\endif 條件塊的結(jié)尾
資訊性
(選項(xiàng): S = 顯示系統(tǒng)對(duì)象, + = 其余的詳細(xì)信息)
\d[S+] 列出表,視圖和序列
\d[S+] 名稱 描述表慷垮,視圖揖闸,序列,或索引
\da[S] [模式] 列出聚合函數(shù)
\dA[+] [模式] 列出訪問方法
\dAc[+] [AMPTRN [TYPEPTRN]] 列出運(yùn)算符
\dAf[+] [AMPTRN [TYPEPTRN]] 列出運(yùn)算符集合
\dAo[+] [AMPTRN [OPFPTRN]] 列出運(yùn)算符集合
\dAp[+] [AMPTRN [OPFPTRN]] 列出運(yùn)算符集合所支持的功能
\db[+] [模式] 列出表空間
\dc[S+] [模式] 列表轉(zhuǎn)換
\dC[+] [模式] 列出類型強(qiáng)制轉(zhuǎn)換
\dd[S] [模式] 顯示沒有在別處顯示的對(duì)象描述
\dD[S+] [模式] 列出共同值域
\ddp [模式] 列出默認(rèn)權(quán)限
\dE[S+] [模式] 列出引用表
\des[+] [模式] 列出外部服務(wù)器
\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 列出大對(duì)象料身, 功能與\lo_list相同
\dL[S+] [模式] 列出所有過程語言
\dm[S+] [模式] 列出所有物化視圖
\dn[S+] [模式] 列出所有模式
\do[S+] [OPPTRN [TYPEPTRN [TYPEPTRN]]]
列出運(yùn)算符
\dO[S+] [模式] 列出所有校對(duì)規(guī)則
\dp [模式] 列出表汤纸,視圖和序列的訪問權(quán)限
\dP[itn+] [PATTERN] 列出[僅表/索引]分區(qū)關(guān)系[n=nested]
\drds [ROLEPTRN [DBPTRN]] list per-database role settings
\dRp[+] [模式] 列出復(fù)制發(fā)布
\dRs[+] [模式] 列出復(fù)制訂閱
\ds[S+] [模式] 列出序列
\dt[S+] [模式] 列出表
\dT[S+] [模式] 列出數(shù)據(jù)類型
\du[S+] [模式] 列出角色
\dv[S+] [模式] 列出視圖
\dx[+] [模式] 列出擴(kuò)展
\dX [PATTERN] 列出擴(kuò)展統(tǒng)計(jì)信息
\dy[+] [PATTERN] l列出所有事件觸發(fā)器
\l[+] [模式] 列出所有數(shù)據(jù)庫
\sf[+] FUNCNAME 顯示一個(gè)函數(shù)的定義
\sv[+] VIEWNAME 顯示一個(gè)視圖的定義
\z [模式] 和\dp的功能相同
格式化
\a 在非對(duì)齊模式和對(duì)齊模式之間切換
\C [字符串] 設(shè)置表的標(biāo)題,或如果沒有的標(biāo)題就取消
\f [字符串] 顯示或設(shè)定非對(duì)齊模式查詢輸出的字段分隔符
\H 切換HTML輸出模式 (目前是 關(guān)閉)
\pset [NAME [VALUE]] 設(shè)置表輸出選項(xiàng)
(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 [開|關(guān)] 只顯示記錄 (目前是關(guān)閉)
\T [字符串] 設(shè)置HTML <表格>標(biāo)簽屬性, 或者如果沒有的話取消設(shè)置
\x [on|off|auto] 切換擴(kuò)展輸出模式(目前是 關(guān)閉)
連接
\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}
連接到新數(shù)據(jù)庫(當(dāng)前是"znbase8")
\conninfo 顯示當(dāng)前連接的相關(guān)信息
\encoding [編碼名稱] 顯示或設(shè)定客戶端編碼
\password [USERNAME] 安全地為用戶更改口令
操作系統(tǒng)
\cd [目錄] 更改目前的工作目錄
\setenv NAME [VALUE] 設(shè)置或清空環(huán)境變量
\timing [開|關(guān)] 切換命令計(jì)時(shí)開關(guān) (目前是關(guān)閉)
\! [命令] 在 shell中執(zhí)行命令或啟動(dòng)一個(gè)交互式shell
變量
\prompt [文本] 名稱 提示用戶設(shè)定內(nèi)部變量
\set [名稱 [值數(shù)]] 設(shè)定內(nèi)部變量芹血,若無參數(shù)則列出全部變量
\unset 名稱 清空(刪除)內(nèi)部變量
大對(duì)象
\lo_export LOBOID 文件
\lo_import 文件 [注釋]
\lo_list
\lo_unlink LOBOID 大對(duì)象運(yùn)算
4 查看postgresql的SQL命令使用方法
在psql鏈接postgresql成功之后贮泞,輸入\h
即可查看所有操作數(shù)據(jù)庫對(duì)象的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 校對(duì)規(guī)則 ] [, ... ] ] )
CREATE TYPE 名稱 AS ENUM
( [ '標(biāo)簽' [, ... ] ] )
CREATE TYPE 名稱 AS RANGE (
SUBTYPE = 子類型
[ , SUBTYPE_OPCLASS = subtype_operator_class(子類型_操作符_類) ]
[ , COLLATION = 校對(duì)規(guī)則 ]
[ , CANONICAL = 標(biāo)準(zhǔn)_函數(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 = { 內(nèi)部長(zhǎng)度 | VARIABLE } ]
[ , PASSEDBYVALUE ]
[ , ALIGNMENT = 順序排列(alignment) ]
[ , STORAGE = 存儲(chǔ) ]
[ , LIKE = LIKE類型(like_type) ]
[ , CATEGORY = 類型 ]
[ , PREFERRED = 優(yōu)先 ]
[ , DEFAULT = 默認(rèn) ]
[ , ELEMENT = 成員項(xiàng) ]
[ , DELIMITER = 分隔符 ]
[ , COLLATABLE = 要校對(duì)的 ]
)
CREATE TYPE 名稱
URL: https://www.postgresql.org/docs/14/sql-createtype.html
db1=>