PostgreSQL使用大全

2021-10-04 02:29:53 字數 3351 閱讀 1627

//持續更新中~

1.初始postgresql資料庫集群

initdb -d $datapath:使用該命令會建立乙個資料庫集群,用於管理多個資料庫,同時當初始化資料庫集群時,會建立共享的表,同時會建立template1和postgres兩個資料庫。

對於template1資料庫,是資料庫的模板,當我們新建立資料庫時會從template1資料拷貝所有的資料去建立,所以如果我們往template1資料庫新增表或其他,新建立的資料庫也會相應拷貝新新增的表或其他。

2.建立資料庫

預設建立資料庫使用template1作為模板

create database $dbname template $templatename;

3.刪除資料庫

drop database $dbname

4.啟動資料庫服務端

pg_ctl -d $datapath -l $logfile start

5.通過命令列連線資料庫

pgsql $database

1.建立角色

create role name;

2.刪除角色

drop role name;

3.檢視所有角色

select rolname from pg_roles;

1.建立表

create table [if not exists] table_name

對於data_type,參見資料型別

對於column_constraint,參見約束

2.刪除表

drop table table_name

3.新加列

alter table table_name add column column_name data_type;

4.刪除列

alter table table_name drop column column_name;

5.增加約束

alter table table_name add check (column_name <> 『』);

alter table table_name add constraint column_name unique (column_name);

alter table table_name a foreign key (column_name) references foregin_group;

6.刪除約束

alter table table_name drop constraint column_name;

名字別名

描述bigint

int8

有符號的8位元組整數

bigserial

serial8

自動增長的8位元組整數

bit [ (n) ]

定長位串

bit varying [ (n) ]

varbit [ (n) ]

變長位串

boolean

bool

邏輯布林值(真/假)

box平面上的普通方框

bytea

二進位制資料(「位元組陣列」)

character [ (n) ]

char [ (n) ]

定長字串

character varying [ (n) ]

varchar [ (n) ]

變長字串

cidr

ipv4或ipv6網路位址

circle

平面上的圓

date

日曆日期(年、月、日)

double precision

float8

雙精度浮點數(8位元組)

inet

ipv4或ipv6主機位址

integer

int, int4

有符號4位元組整數

interval [ fields ] [ § ]

時間段json

文字 json 資料

jsonb

二進位制 json 資料,已分解

line

平面上的無限長的線

lseg

平面上的線段

macaddr

mac(media access control)位址

macaddr8

mac(media access control)位址(eui-64格式)

money

貨幣數量

numeric [ (p, s) ] decimal [ (p, s) ]

可選擇精度的精確數字

path

平面上的幾何路徑

pg_lsn

postgresql日誌序列號

point

平面上的幾何點

polygon

平面上的封閉幾何路徑

real

float4

單精度浮點數(4位元組)

smallint

int2

有符號2位元組整數

smallserial

serial2

自動增長的2位元組整數

serial

serial4 自動增長的4位元組整數

text

變長字串

time [ § ] [ without time zone ]

一天中的時間(無時區)

time [ § ] with time zone

timetz

一天中的時間,包括時區

timestamp [ § ] [ without time zone ]

日期和時間(無時區)

timestamp [ § ] with time zone

timestamptz

日期和時間,包括時區

tsquery

文字搜尋查詢

tsvector

文字搜尋文件

txid_snapshot

使用者級別事務id快照

uuid

通用唯一標識碼

xmlxml資料

型別描述

not null

指示某列不能儲存 null 值。

unique

確保某列的值都是唯一的。

primary key

not null 和 unique 的結合。確保某列(或兩個列多個列的結合)有唯一標識,有助於更容易更快速地找到表中的乙個特定的記錄。

foreign key

保證乙個表中的資料匹配另乙個表中的值的參照完整性。

check

保證列中的值符合指定的條件。

exclusion

排他約束,保證如果將任何兩行的指定列或表示式使用指定操作符進行比較,至少其中乙個操作符比較將會返回 false 或空值。

為何使用 PostgreSQL

五年以前,我寫了乙個 為何你應使用postgresql 的岾子,引起了廣泛的關注。一年以後,我增加了一些我漏寫的內容,這些內容我會在這篇文章的後半部分重述一下要點。但是在最近的4 5年,postgresql有了很多的改進和提高,也就有了更多的理由我們為何要使用它。現在這裡是乙個新的總結,為何你應使用...

PostgreSQL使用zhparser自定義分詞

zhparser是pg的乙個中文全文檢索外掛程式,它基於簡單中文分詞 scws 實現中文解析器。我們在使用zhparser時常常會遇到的乙個問題就是 我們想要分詞的詞語無法被識別。例如 bill select from ts parse zhparser 支付寶使用很方便 tokid token 1...

postgresql與typeorm使用經驗分享

在建立postgresql的表時,定義陣列等字段時,根據陣列中的元素的型別可以在相應型別後新增乙個就可以了。但是在定義陣列物件或者json時,則需要json或者jsonb eg bin bash psql u d eosql create table page page id varchar 36 ...