天天看點

PostgreSQL 教程

PostgreSQL 教程

PostgreSQL 是一個免費的對象-關系資料庫伺服器(ORDBMS),在靈活的BSD許可證下發行。

PostgreSQL 開發者把它念作 post-gress-Q-L。

PostgreSQL 的 Slogan 是 "世界上最先進的開源關系型資料庫"。

參考内容:PostgreSQL 10.1 手冊

資料庫(Database)是按照資料結構來組織、存儲和管理資料的倉庫。

每個資料庫都有一個或多個不同的 API 用于建立,通路,管理,搜尋和複制所儲存的資料。

我們也可以将資料存儲在檔案中,但是在檔案中讀寫資料速度相對較慢。

是以,現在我們使用關系型資料庫管理系統(RDBMS)來存儲和管理的大資料量。所謂的關系型資料庫,是建立在關系模型基礎上的資料庫,借助于集合代數等數學概念和方法來處理資料庫中的資料。

ORDBMS(對象關系資料庫系統)是面向對象技術與傳統的關系資料庫相結合的産物,查詢處理是 ORDBMS 的重要組成部分,它的性能優劣将直接影響到DBMS 的性能。

ORDBMS在原來關系資料庫的基礎上,增加了一些新的特性。

RDBMS 是關系資料庫管理系統,是建立實體之間的聯系,最後得到的是關系表。

OODBMS 面向對象資料庫管理系統,将所有實體都看着對象,并将這些對象類進行封裝,對象之間的通信通過消息 OODBMS 對象關系資料庫在實質上還是關系資料庫 。

在我們開始學習 PostgreSQL 資料庫前,讓我們先了解下 ORDBMS 的一些術語:

資料庫: 資料庫是一些關聯表的集合。

資料表: 表是資料的矩陣。在一個資料庫中的表看起來像一個簡單的電子表格。

列: 一列(資料元素) 包含了相同的資料, 例如郵政編碼的資料。

行:一行(=元組,或記錄)是一組相關的資料,例如一條使用者訂閱的資料。

備援:存儲兩倍資料,備援降低了性能,但提高了資料的安全性。

主鍵:主鍵是唯一的。一個資料表中隻能包含一個主鍵。你可以使用主鍵來查詢資料。

外鍵:外鍵用于關聯兩個表。

複合鍵:複合鍵(組合鍵)将多個列作為一個索引鍵,一般用于複合索引。

索引:使用索引可快速通路資料庫表中的特定資訊。索引是對資料庫表中一列或多列的值進行排序的一種結構。類似于書籍的目錄。

參照完整性: 參照的完整性要求關系中不允許引用不存在的實體。與實體完整性是關系模型必須滿足的完整性限制條件,目的是保證資料的一緻性。

函數:通過函數,可以在資料庫伺服器端執行指令程式。

索引:使用者可以自定義索引方法,或使用内置的 B 樹,哈希表與 GiST 索引。

觸發器:觸發器是由SQL語句查詢所觸發的事件。如:一個INSERT語句可能觸發一個檢查資料完整性的觸發器。觸發器通常由INSERT或UPDATE語句觸發。

多版本并發控制:PostgreSQL使用多版本并發控制(MVCC,Multiversion concurrency control)系統進行并發控制,該系統向每個使用者提供了一個資料庫的"快照",使用者在事務内所作的每個修改,對于其他的使用者都不可見,直到該事務成功送出。

規則:規則(RULE)允許一個查詢能被重寫,通常用來實作對視圖(VIEW)的操作,如插入(INSERT)、更新(UPDATE)、删除(DELETE)。

資料類型:包括文本、任意精度的數值數組、JSON 資料、枚舉類型、XML 資料

等。

全文檢索:通過 Tsearch2 或 OpenFTS,8.3版本中内嵌 Tsearch2。

NoSQL:JSON,JSONB,XML,HStore 原生支援,至 NoSQL 資料庫的外部資料包裝器。

資料倉庫:能平滑遷移至同屬 PostgreSQL 生态的 GreenPlum,DeepGreen,HAWK 等,使用 FDW 進行 ETL。

PostgreSQL 10.1 手冊 線上手冊:http://www.runoob.com/manual/PostgreSQL/

離線手冊 - PDF 版本: https://pan.baidu.com/s/1h1J14i8tzJUY3p9yyeW0mA, 提取碼: xs7r。

離線手冊 - CHM 版本: https://pan.baidu.com/s/1h1J14i8tzJUY3p9yyeW0mA, 提取碼: tq4z。

檢視最新版:https://github.com/postgres-cn/pgdoc-cn/releases