青島OJ系統用的關系型數據庫是PostgreSQL,為此對PostgreSQL大致了解下。
今天的主要話題圍繞下面兩個方面:
- PostgreSQL安裝
- PostgreSQL使用
一、PostgreSQL安裝(以Ubuntu16.04為例)
1.安裝命令
apt install postgresql
2.修改 /etc/postgresql/9.5/main/postgresql.conf
將下面 listen_addresses = 'localhost'注釋去掉並改為 listen_addresses = '*' # - Connection Settings - #listen_addresses = 'localhost' # what IP address(es) to listen on; # comma-separated list of addresses; # defaults to 'localhost'; use '*' for all ... 將下面password_encryption = on 注釋打開 #password_encryption = on
3.切換用戶su - postgres
4.通過psql 命令進入postgresql客戶端
5.修改用戶密碼
ALTER USER postgres PASSWORD 'youcongtech';
6.vim /etc/postgresql/9.5/main/pg_hba.conf 修改 host all all 192.168.1.0/24 md5 中的ip,為:0.0.0.0/0
# TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 trust host all all 192.168.126.0/24 md5 # IPv6 local connections: host all all ::1/128 trust
windows安裝PostgreSQL:https://www.cnblogs.com/sharpest/p/6225028.html
二、PostgreSQL使用
PostgreSQL官方網站:https://www.postgresql.org/
PostgreSQL中文教程:https://www.yiibai.com/postgresql/
1.介紹PostgreSQL
PostgreSQL是一個功能強大的開源對象關系數據庫系統,它使用和擴展了SQL語言,並結合了許多安全存儲和擴展最復雜數據工作負載的功能。PostgreSQL的起源可以追溯到1986年,作為加州大學伯克利分校POSTGRES項目的一部分,並在核心平台上進行30多年的積極開發。
PostgreSQL憑借其經過驗證的架構,可靠性、數據完整性,強大的功能集,可擴展性以及軟件背后的開源社區的奉獻精神贏得了良好的聲譽,以始終如一地提供高性能和創新的解決方案。PostgreSQL在所有主要操作系統上運行,自2001年以來一直是符合ACID標准的,並且具有強大的附加功能,例如流行的PostGIS地址空間數據庫擴展器。毫無疑問,PostgerSQL已成為許多人和組織首選的開源關系數據庫。
為什么要使用PostgreSQL
PostgreSQL提供了許多功能,旨在幫助開發人員構建應用程序,管理員保護數據完整性並構建容錯環境,並幫助您管理數據,無論數據集有多大或多小。除了免費和開源之外,PostgeSQL還具有高度可擴展性。例如,您可以定義自己的數據類型,構建自定義函數,甚至可以編寫來自不同編程語言的代碼,而無需重新編譯數據庫。
PostgreSQL試圖符合SQL標准,在這種標准中,這種一致性不會與傳統特性相矛盾,或者可能導致糟糕的架構決策。支持SQL標准所需的許多功能,但有時語法或功能略有不同。隨着時間的推移,可以預期進一步向一致性邁進。從2018年10月發布的版本11開始,PostgreSQL符合SQL:2011核心一致性的179個強制性功能中的至少160個,在撰寫本文時,沒有任何關系數據庫符合此標准的完全符合性。
下面是PostgreSQL中各種功能的無窮無盡的功能,每個主要版本都添加更多功能:
數據類型
基元:整數,數字,字符串,布爾值
結構化:日期/時間,數組,范圍,UUID
文檔:JSON / JSONB,XML,鍵值(Hstore)
幾何:點,線,圓,多邊形
自定義:復合,自定義類型
數據的完整性
獨一無二,不是空的
主鍵
外鍵
排除約束
顯式鎖定,咨詢鎖定
並發性,性能
索引:B樹,多列,表達式,部分
高級索引:GiST,SP-Gist,KNN Gist,GIN,BRIN,覆蓋索引,布隆過濾器
復雜的查詢計划器/優化器,僅索引掃描,多列統計
交易,嵌套交易(通過保存點)
多版本並發控制(MVCC)
讀取查詢的並行化和構建B樹索引
表分區
SQL標准中定義的所有事務隔離級別,包括Serializable
即時(JIT)表達式匯編
可靠性,災難恢復
預寫日志(WAL)
復制:異步,同步,邏輯
時間點恢復(PITR),主動備用
表空間
安全
身份驗證:GSSAPI,SSPI,LDAP,SCRAM-SHA-256,證書等
強大的訪問控制系統
列和行級安全性
可擴展性
存儲的功能和程序
程序語言:PL / PGSQL,Perl,Python(以及更多)
外部數據包裝器:使用標准SQL接口連接到其他數據庫或流
許多提供附加功能的擴展,包括PostGIS
國際化,文本搜索
支持國際字符集,例如通過ICU校對
全文檢索
您可以在PostgreSQL 文檔中發現更多功能。此外,PostgreSQL具有高度可擴展性:許多功能(如索引)都定義了API,因此您可以使用PostgreSQL構建以解決您的挑戰。
事實證明,PostgreSQL在可管理的大量數據和可容納的並發用戶數量方面具有高度可擴展性。生產環境中有活躍的PostgreSQL集群可管理數TB的數據,以及管理PB級的專用系統。