//持續更新中~
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 ...