《PostgreSQL即學(xué)即用(第2版)》([美] Regina Obe)電子書網(wǎng)盤下載免費(fèi)在線閱讀
創(chuàng)新互聯(lián)公司是一家專業(yè)提供巧家企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為巧家眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
資源鏈接:
鏈接:
提取碼:rst3
書名:PostgreSQL即學(xué)即用(第2版)
作者:[美] Regina Obe
譯者:丁奇鵬
豆瓣評分:8.4
出版社:人民郵電出版社
出版年份:2015-12
頁數(shù):224
內(nèi)容簡介:本書將幫助你理解和使用PostgreSQL 這一開源數(shù)據(jù)庫系統(tǒng)。你不僅會學(xué)到版本9.2、9.3 和9.4中的企業(yè)級特性,還會發(fā)現(xiàn)PostgreSQL 不只是個數(shù)據(jù)庫系統(tǒng),也是一個出色的應(yīng)用平臺。本書通過示例展示了如何實(shí)現(xiàn)在其他數(shù)據(jù)庫中難以或無法完成的任務(wù)。這一版內(nèi)容覆蓋了LATERAL 查詢、增強(qiáng)的JSON 支持、物化視圖和其他關(guān)鍵話題。
作者簡介:Regina Obe
是數(shù)據(jù)庫咨詢公司Paragon的負(fù)責(zé)人之一,在編程語言和數(shù)據(jù)庫系統(tǒng)方面有15年以上的專業(yè)經(jīng)驗(yàn)。她是PostGIS指導(dǎo)委員會成員,也是PostGIS核心開發(fā)團(tuán)隊(duì)的成員。PostGIS in Action一書的合著者。
Leo Hsu
也是Paragon公司的負(fù)責(zé)人之一,曾為大大小小的組織開發(fā)過數(shù)據(jù)庫,有15年以上的專業(yè)經(jīng)驗(yàn)。PostGIS in Action一書的合著者。
PostgreSQL的主要優(yōu)點(diǎn):
1、對事務(wù)的支持與MySQL相比,經(jīng)歷了更為徹底的測試。對于一個嚴(yán)肅的商業(yè)應(yīng)用來說,事務(wù)的支持是不可或缺的。
2、MySQL對于無事務(wù)的MyISAM表。采用表鎖定,一個長時間運(yùn)行的查詢很可能會長時間地阻礙對表的更新。而PostgreSQL不存在這樣的問題。
3、PostgreSQL支持存儲過程,而目前MySQL不支持,對于一個嚴(yán)肅的商業(yè)應(yīng)用來說,作為數(shù)據(jù)庫本身,有眾多的商業(yè)邏輯的存在,此時使用存儲過程可以在較少地增加數(shù)據(jù)庫服務(wù)器的負(fù)擔(dān)的前提下,對這樣的商業(yè)邏輯進(jìn)行封裝,并可以利用數(shù)據(jù)庫服務(wù)器本身的內(nèi)在機(jī)制對存儲過程的執(zhí)行進(jìn)行優(yōu)化。此外存儲過程的存在也避免了在網(wǎng)絡(luò)上大量的原始的SQL語句的傳輸,這樣的優(yōu)勢是顯而易見的。
4、對視圖的支持,視圖的存在同樣可以最大限度地利用數(shù)據(jù)庫服務(wù)器內(nèi)在的優(yōu)化機(jī)制。而且對于視圖權(quán)限的合理使用,事實(shí)上可以提供行級別的權(quán)限,這是MySQL的權(quán)限系統(tǒng)所無法實(shí)現(xiàn)的。
5、對觸發(fā)器的支持,觸發(fā)器的存在不可避免的會影響數(shù)據(jù)庫運(yùn)行的效率,但是與此同時,觸發(fā)器的存在也有利于對商業(yè)邏輯的封裝,可以減少應(yīng)用程序中對同一商業(yè)邏輯的重復(fù)控制。合理地使用觸發(fā)器也有利于保證數(shù)據(jù)的完整性。
6、對約束的支持。約束的作用更多地表現(xiàn)在對數(shù)據(jù)完整性的保證上,合理地使用約束,也可以減少編程的工作量。
postgresql用于超大型商業(yè)網(wǎng)站是完全OK的,至于Oracle的PCK是什么不清楚,估計(jì)是存儲過程吧。
postgresql支持很多種語言寫存儲過程,c,pgsql,perl,python,tcl等,
但你如果要問的是存儲過程是不是和oracle的存儲過程語法一樣,那肯定是不一樣的
有個數(shù)據(jù)庫叫EnterpriseDB,就是為了讓postgresql各種語法更像oracle而出來的,你也可以去研究一下
PostgreSQL 和 MySQL 是將數(shù)據(jù)組織成表的關(guān)系數(shù)據(jù)庫。這些表可以根據(jù)每個表共有的數(shù)據(jù)鏈接或關(guān)聯(lián)。關(guān)系數(shù)據(jù)庫使您的企業(yè)能夠更好地了解可用數(shù)據(jù)之間的關(guān)系,并幫助獲得新的見解以做出更好的決策或發(fā)現(xiàn)新的機(jī)會。
PostgreSQL 和 MySQL 都依賴于 SQL(結(jié)構(gòu)化查詢語言),這是與管理系統(tǒng)交互的標(biāo)準(zhǔn)語言。SQL 允許使用具有簡單結(jié)構(gòu)的幾行源代碼連接表,大多數(shù)非技術(shù)員工可以快速學(xué)習(xí)。
使用 SQL,分析師不需要知道訂單表在磁盤上的位置、如何執(zhí)行查找以查找特定訂單或如何連接訂單表和客戶表。數(shù)據(jù)庫編譯查詢并計(jì)算出正確的數(shù)據(jù)點(diǎn)。
MySQL 和 PostgreSQL 都支持 JavaScript Object Notation (JSON) 存儲和傳輸數(shù)據(jù),盡管 PostgreSQL 也支持 JSONB,這是 JSON 的二進(jìn)制版本,它消除了鍵的重復(fù)和無關(guān)的空格。
除了傳統(tǒng)的支持機(jī)制外,這兩個數(shù)據(jù)庫都提供強(qiáng)大的社區(qū)支持。
PostgreSQL,也稱為 Postgres,是一種開源關(guān)系數(shù)據(jù)庫,因其可靠性、靈活性和對開放技術(shù)標(biāo)準(zhǔn)的支持而享有盛譽(yù)。PostgreSQL 支持非關(guān)系和關(guān)系數(shù)據(jù)類型。它被稱為當(dāng)今可用的最兼容、最穩(wěn)定和最成熟的關(guān)系數(shù)據(jù)庫之一,并且可以輕松處理復(fù)雜的查詢。
PostgreSQL 的特性包括:
PostgreSQL 這是一個“一刀切”的解決方案,適用于許多尋求經(jīng)濟(jì)高效的方法來改進(jìn)其數(shù)據(jù)庫管理系統(tǒng) (DBMS) 的企業(yè)。它具有足夠的可擴(kuò)展性和多功能性,可以通過強(qiáng)大的擴(kuò)展生態(tài)系統(tǒng)快速支持各種專業(yè)用例,涵蓋時間序列數(shù)據(jù)類型和地理空間分析等工作。作為開源數(shù)據(jù)庫解決方案構(gòu)建的 PostgreSQL 完全不受許可限制、供應(yīng)商鎖定的可能性或過度部署的風(fēng)險。PostgreSQL 通過對象關(guān)系數(shù)據(jù)庫管理系統(tǒng) (ORDBMS) 進(jìn)行管理。
PostgreSQL 負(fù)責(zé)管理業(yè)務(wù)活動的在線事務(wù)處理 (OLTP)協(xié)議的企業(yè)數(shù)據(jù)庫管理員提供了理想的解決方案,包括電子商務(wù)、客戶關(guān)系管理系統(tǒng) (CRM) 和財(cái)務(wù)分類帳。它也是管理接收、創(chuàng)建和生成的數(shù)據(jù)分析的理想選擇。
這些是 PostgreSQL 的一些主要優(yōu)點(diǎn):
MySQL — 一種快速、可靠、可擴(kuò)展且易于使用的開源關(guān)系數(shù)據(jù)庫系統(tǒng) — 旨在處理關(guān)鍵任務(wù)、高負(fù)載的生產(chǎn)應(yīng)用程序。它是一種常見且易于啟動的數(shù)據(jù)庫,內(nèi)存、磁盤和 CPU 利用率較低,有關(guān)系數(shù)據(jù)庫管理系統(tǒng) (RDMS) 管理。MySQL Community Edition 是一個由活躍的在線社區(qū)支持的免費(fèi)下載版本。
MySQL 功能包括所有 SQL 標(biāo)準(zhǔn)命令以及事務(wù)和 ACID 合規(guī)性(代表原子性、一致性、隔離性和持久性)。
兩個最常見的關(guān)系數(shù)據(jù)庫是什么 MySQL 和 Oracle。MySQL 不是 SQL Server 的同義詞,SQL Server 是 Microsoft 許可產(chǎn)品,與 MAC OS X 缺乏兼容性。
MariaDB 經(jīng)常與 MySQL 混淆,它是 MySQL 的一個開源分支,速度更快,提供更多存儲引擎 (12),但功能有限。MySQL 和 MariaDB 使用的存儲引擎都是 InnoDB。InnoDB 提供標(biāo)準(zhǔn)的 ACID 兼容特性。與 MySQL 不同,MariaDB 不支持?jǐn)?shù)據(jù)屏蔽或動態(tài)列表。
MySQL 通常用作 Web 數(shù)據(jù)庫來存儲各種信息類型,從單個信息數(shù)據(jù)點(diǎn)到為組織提供的產(chǎn)品或服務(wù)的完整列表。它是LAMP(Linux 操作系統(tǒng)、Apache HTTP 服務(wù)器、MySQL RDBMS 和 PHP 編程語言)的基礎(chǔ)組件,這是一種有助于創(chuàng)建API、Web 應(yīng)用程序和網(wǎng)站的軟件堆棧模型。
MySQL Workbench 是一個單一的、集成的可視化 SQL 平臺,用于 MySQL 數(shù)據(jù)庫的創(chuàng)建、開發(fā)、設(shè)計(jì)和管理。
MySQL 為市場提供了許多好處,包括:
PostgreSQL 和 MySQL 之間有很多不同之處。特性、功能和優(yōu)勢方面的一些差異如下:
總之,PostgreSQL 和 MySQL 都有不同的用途,它們之間的選擇取決于企業(yè)目標(biāo)和資源。一般來說,PostgreSQL 是一個更強(qiáng)大、更高級的數(shù)據(jù)庫管理系統(tǒng),非常適合需要在大型環(huán)境中快速執(zhí)行復(fù)雜查詢的組織。但是,對于預(yù)算和空間更受限制的公司來說,MySQL 是一個理想的解決方案。
postgreSQL默認(rèn)不允許外部連接,需要進(jìn)行配置才行,postgreSQL版本是8.4.4。進(jìn)入%postgreSQL_path%\8\data目錄,打開pg_hba.conf文件,找到下面這段:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# IPv4 local connections:
host all all
127.0.0.1/32 md5
# IPv6 local connections:
#host all
all ::1/128 md5
在# IPv4 下一系列的host增加一行:
host
all all 192.168.80.1/24 md5
這行的意思是允許所有 192.168.80.***
這樣ip訪問本機(jī)postgreSQL服務(wù)。這里要說明一下,原有的
host all
all 127.0.0.1/32
md5
這一行不要刪除,我第一次配置時就因?yàn)橹苯有薷倪@行,然后導(dǎo)致postgreSQL服務(wù)無法啟動。而postgreSQL啟動失敗后,有很多postgres的進(jìn)程無法自動關(guān)閉,使用任務(wù)管理器是無法手動把它們?nèi)筷P(guān)閉的,因?yàn)閜ostgreSQL會自動開啟新的進(jìn)程,經(jīng)常你關(guān)了一個,它又打開了很多個。最后我是借用cports工具的“終止打開選中窗口的進(jìn)程”功能,才把postgreSQL全部給關(guān)閉的。
postgreSQL服務(wù)無法啟動,也有說解決方法如下:
修改本地鏈接屬性:
本地鏈接-屬性-Internet協(xié)議(TCP/IP)-屬性-常規(guī)
-高級-WINS-啟動
LMHOSTS查詢
已選上則點(diǎn)去前面的鉤(如果沒有則勾上)。確定,確定,關(guān)閉。
然后你就會發(fā)現(xiàn)postgres服務(wù)可以啟動了。
原因是Dr.com的工作方式修改了Winsock
LSP,致使postgres服務(wù)無法正常啟動。
postgres服務(wù)啟動后一直會開在那里,期間可以正常使用Dr.com(彈出對話框不要選擇重啟),但是啟動重啟之后PostgreSQL又不能使用了。
遇到這種情況請重復(fù)以上步驟,勾上或者去掉“啟動
LMHOSTS查詢”前的鉤,改變狀態(tài)就行。
然后就又可以了。
我遇到的問題不屬于這種情況,經(jīng)測試無效。
同時修改postgresql.conf文件,
listen_addresses =
'*'
我本機(jī)中默認(rèn)就是如上配置,也就是我在安裝的時候就設(shè)置了允許所有地址。
配置說明:
# TYPE DATABASE USER
CIDR-ADDRESS
METHOD
說明每一行有五個字段,
分別是:連接類型、可使用的數(shù)據(jù)庫名、使用者、DIDR地址、和驗(yàn)證方法等五項(xiàng)。
下面,我只介紹一些針對每個字段常用的選項(xiàng)。
字段一:TYPE。
可以選擇:local或host。
前者只能允許本地的用戶登陸Postgres數(shù)據(jù)庫;后者可以接受遠(yuǎn)程客戶登陸。所以,
我們應(yīng)該使用“host”。
字段二:DATWABSE。
連接用戶可以使用的數(shù)據(jù)庫名字??梢允筆ostgres的一個具體的
數(shù)據(jù)庫名,也可以使用“all”來允許用戶訪問所有數(shù)據(jù)庫。
字段三:USER??梢灾付硞€具體的用戶來連接Postgres數(shù)據(jù)庫(還要結(jié)合后面的地址字段),
也可以使用“all”來允許所有用戶連接數(shù)據(jù)庫。
字段四:DIDR-ADDRESS。
是IP地址與掩碼的另一種表示方法。
Postgres是通過這個字段來了解,允許那些IP或IP網(wǎng)段連接此服務(wù)器。
它的格式是:
IP地址/掩碼。
這個掩碼和子網(wǎng)掩碼是一個道理,只不過是用一個小于等于32的正數(shù)來表示,
表示的正是子網(wǎng)掩碼中高幾位為1,
比如,255.255.255.0
就是“24”,說明高24位是1。
192.168.0.1/32 相當(dāng)于
IP為192.168.0.1,子網(wǎng)掩碼為255.255.255.255的網(wǎng)段,
很顯然,這只表明192.168.0.1IP自己。
字段五:METHOD。
這是驗(yàn)證方法??蛇x的有:
reject:拒絕這個IP的用戶訪問;
md5:密碼以md5作為hash編碼;
password:密碼作為明文傳輸(好恐怖!);
krb5:密碼以krb5作為hash編碼。
下面舉一個例子,來說明如何進(jìn)行設(shè)置:
#
TYPE DATABASE USER CIDR-ADDRESS
METHOD
#允許IP為192.168.0.1的所有用戶登陸到Postgres服務(wù)器的所有數(shù)據(jù)庫,采用md5驗(yàn)證。
host all all
192.168.0.1/32
md5
#允許用戶testuser在192.168.0.XX的網(wǎng)段任意機(jī)器登陸Postgres服務(wù)器,
#只能使用數(shù)據(jù)庫testdb,采用md5驗(yàn)證。
host
testdb testuser 192.168.0.1/24 md5
2.
改監(jiān)聽地址
默認(rèn)下,POSTGRESQL只接受本地服務(wù),要接受遠(yuǎn)程服務(wù),需改postgresql.conf 文件listen_address =
*
3. 如果是在Linux上的PostgreSQL
要打開 “unix的tcpip套接子”。
編輯
$POSTGRES/data/postgresql.conf
文件,
將tcpip_socket=off改成tcpip_socket=on即可。
配置說明部分摘自文章:
網(wǎng)站名稱:包含postgresql編程的詞條
文章位置:http://www.rwnh.cn/article20/dscdojo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、面包屑導(dǎo)航、網(wǎng)站改版、動態(tài)網(wǎng)站、靜態(tài)網(wǎng)站、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)