版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 PostgreSQL數(shù)據(jù)庫一:PostgreSQL介紹1.PostgreSQL是以加州大學(xué)伯克利分校計算機(jī)系開發(fā)的 POSTGRES,現(xiàn)在已經(jīng)更名為POSTGRES,版本 4.2為基礎(chǔ)的對象關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(ORDBMS)。PostgreSQL支持大部分 SQL標(biāo)準(zhǔn)并且提供了許多其他現(xiàn)代特性:復(fù)雜查詢、外鍵、觸發(fā)器、視圖、事務(wù)完整性、MVCC。同樣,PostgreSQL 可以用許多方法擴(kuò)展,比如, 通過增加新的數(shù)據(jù)類型、函數(shù)、操作符、聚集函數(shù)、索引方法、過程語言。并且,因?yàn)樵S可證的靈活,任何人都可以以任何目的免費(fèi)使用、修改、和分發(fā) PostgreSQL,不管是私用、商用、還是學(xué)術(shù)研究使用
2、。2.PostgreSQL圖標(biāo)3. PostgreSQL優(yōu)點(diǎn)有目前世界上最豐富的數(shù)據(jù)類型的支持支持,其中有些數(shù)據(jù)類型可以說連商業(yè)數(shù)據(jù)庫都不具備,具體類型下文會說明.PostgreSQL擁有一支非?;钴S的開發(fā)隊(duì)伍,而且在許多黑客的努力下,PostgreSQL 的質(zhì)量日益提高PostgreSQL 對接口的支持也是非常豐富的,幾乎支持所有類型的數(shù)據(jù)庫客戶端接口。這一點(diǎn)也可以說是 PostgreSQL 一大優(yōu)點(diǎn)。4. PostgreSQL缺點(diǎn)首先,早期的 PostgreSQL 繼承了幾乎所有 Ingres, Postgres, Postgres95 的問題:過于學(xué)院味,因?yàn)槭紫人哪康氖菙?shù)據(jù)庫研究,因
3、此不論在穩(wěn)定性, 性能還是使用方方面面,長期以來一直沒有得到重視,直到 PostgreSQL 項(xiàng)目開始以后,情況才越來越好,PostgreSQL 已經(jīng)完全可以勝任任何中上規(guī)模范圍內(nèi)的應(yīng)用范圍的業(yè)務(wù)其次,PostgreSQL 的確還欠缺一些比較高端的數(shù)據(jù)庫管理系統(tǒng)需要的特性,比如數(shù)據(jù)庫集群,更優(yōu)良的管理工具和更加自動化的系統(tǒng)優(yōu)化功能 等提高數(shù)據(jù)庫性能的機(jī)制等。5. 目前官方最新版本:9.3.2二、windows下安裝過程1、開始安裝:推薦精選 2、 選擇程序安裝目錄: 注:安裝 PostgreSQL 的分區(qū)最好是 NTFS 格式的。PostgreSQL 首要任務(wù)是要保證數(shù)據(jù)的完整性,而 FAT
4、和 FAT32 文件系統(tǒng)不能提供這樣的可靠性保障,而且 FAT 文件系統(tǒng)缺乏安全性保障,無法保證原始數(shù)據(jù)在未經(jīng)授權(quán)的情況下被更改。此外,PostgreSQL 所使用的多分點(diǎn)功能完成表空間的這一特征在FAT文件系統(tǒng)下無法實(shí)現(xiàn)。然而,在某些系統(tǒng)中,只有一種 FAT 分區(qū),這種情況下,可以正常安裝 PostgreSQL,但不要進(jìn)行數(shù)據(jù)庫的初始化工作。安裝完成后,在 FAT 分區(qū)上手動執(zhí)行 initdb.exe 程序即可,但不能保證其安全性和可靠性,并且建立表空間也會失敗。 3、 選擇數(shù)據(jù)存放目錄: 推薦精選4、 輸入數(shù)據(jù)庫超級用戶和創(chuàng)建的OS用戶的密碼 注:數(shù)據(jù)庫超級用戶是一個非管理員賬戶,這是為了
5、減少黑客利用在 PostgreSQL 發(fā)現(xiàn)的缺陷對系統(tǒng)造成損害,因此需要對數(shù)據(jù)庫超級用戶設(shè)置密碼,如下圖所示,安裝程序自動建立的服務(wù)用戶的用戶名默認(rèn)為 postgres。 5、 設(shè)置服務(wù)監(jiān)聽端口,默認(rèn)為5432 推薦精選6、 選擇運(yùn)行時語言環(huán)境 注:選擇數(shù)據(jù)庫存儲區(qū)域的運(yùn)行時語言環(huán)境(字符編碼格式)。在選擇語言環(huán)境時,若選擇default locale可能會導(dǎo)致安裝不正確;同時,PostgreSQL 不支持 GBK 和 GB18030 作為字符集,如果選擇其它四個中文字符集:中文繁體 香港(ChineseTraditional, Hong Kong S.A.R.)、中文簡體 新加坡(Chine
6、seSimplified, Singapore)、中文繁體 臺灣(ChineseTraditional, Taiwan)和中文繁體 澳門(ChineseTraditional, Marco S.A.R.),會導(dǎo)致查詢結(jié)果和排序效果不正確。建議選擇C,即不使用區(qū)域。-我選擇了default localt,安裝正確;建議選擇default localt。 7、 安裝過程(2分鐘) 推薦精選8、 安裝完成注:多選框是安裝額外的驅(qū)動和工具,可以不點(diǎn)。在安裝目錄可以看到推薦精選其中:data存放數(shù)據(jù)文件、日志文件、控制文件、配置文件等。uninstall-postgresql.exe用于卸載已安裝的數(shù)據(jù)
7、庫管理系統(tǒng)。pg_env.bat里配置了數(shù)據(jù)庫的幾個環(huán)境變量. 3、 圖形化界面pgAdmin(大象) 對于每種數(shù)據(jù)庫管理系統(tǒng),都有相當(dāng)多的設(shè)計與管理工具(可視化界面管理工具),有的是數(shù)據(jù)庫廠商自己提供的(一般都至少有一個),有的是第三方公司開發(fā)的,你甚至可以自己寫一個簡單易用的管理工具。例如Oracle的Oracle SQL Developer(自己開發(fā)的)、PLSQL Developer(第三方公司開發(fā)的)、SQL Server Management Studio(自己開發(fā)的)、PostgreSQL就有好幾款流行的管理工具,例如:pgAdmin、navicat_pgsql、phppgsql
8、等。pgAdmin是一個針對PostgreSQL數(shù)據(jù)庫的設(shè)計和管理接口,可以在大多數(shù)操作系統(tǒng)上運(yùn)行。軟件用C+編寫,具有很優(yōu)秀的性能。pgadmin 是與 Postgres 分開發(fā)布的,可以從下載。目前裝個全功能的PostgreSQL數(shù)據(jù)庫,自帶該管理工具。打開pgAdmin,可以看到在第一部分安裝的本地數(shù)據(jù)庫的屬性,如下圖所示: 推薦精選成功連接服務(wù)器后,如下圖所示:圖中可以看出,新安裝的PostgreSQL數(shù)據(jù)庫管理系統(tǒng)帶有一個數(shù)據(jù)庫postgres;已建好兩個表空間:pg_default、pg_global。initdb.exe初始化的兩個默認(rèn)表空間pg_g
9、lobal、pg_default。數(shù)據(jù)庫默認(rèn)的表空間pg_default 是用來存儲系統(tǒng)目錄對象、用戶表、用戶表index、和臨時表、臨時表index、內(nèi)部臨時表的默認(rèn)空間,他是模板數(shù)據(jù)庫template0和template1的默認(rèn)表空間。initdb.exe初始化的兩個默認(rèn)表空間pg_global、pg_default。數(shù)據(jù)庫默認(rèn)的表空間pg_global是用來存儲共享系統(tǒng)目錄的默認(rèn)空間。推薦精選pg_default 為 PostgreSQL也可以理解成系統(tǒng)表空間,它對應(yīng)的物理位置為 $PGDATA/base目錄。在PostgreSQL(pg_catalog)下可以看到postgers數(shù)據(jù)庫
10、的一些數(shù)據(jù)字典和數(shù)據(jù)字典視圖。新建一個服務(wù)器連接,連接遠(yuǎn)程服務(wù)器上的PostgreSQL數(shù)據(jù)庫(假設(shè)已有遠(yuǎn)程服務(wù)器上已安裝好PostgreSQL數(shù)據(jù)庫管理系統(tǒng)): 4、 Pgsql 對于每種數(shù)據(jù)庫管理系統(tǒng),都會提供一個命令行管理接口,例如Oracle的sqlplus,SQL Server的isql和osql等。凡是用圖形管理界面可以實(shí)現(xiàn)的功能原則上都可以通過命令行界面命令實(shí)現(xiàn)。兩者各有優(yōu)缺點(diǎn),使用場合不同。在windows下當(dāng)然常用圖形管理界面,因?yàn)樵趫D像管理界面中往往都嵌有命令行工具,而在unix和linux下,當(dāng)然就常用命令行工具了,除了我們在類unix下主要使用字符界面的原因外,還因?yàn)榇?/p>
11、部分情況下我們只能通過telnet或ssh工具遠(yuǎn)程連接服務(wù)器進(jìn)行操作,此時也只能使用命令行了。從開始目錄打開SQL shell(pgsql)推薦精選輸入密碼得到如下圖界面: 5、 PostgreSQL常用數(shù)據(jù)類型一、數(shù)值類型1. 整數(shù)類型: 類型smallint、integer和bigint存儲各種范圍的全部是數(shù)字的數(shù),也就是沒有小數(shù)部分的數(shù)字。試圖存儲超出范圍以外的數(shù)值將導(dǎo)致一個錯誤。常用的類型是integer,因?yàn)樗峁┝嗽诜秶⒋鎯臻g和性能之間的最佳平衡。一般只有在磁盤空間緊張的時候才使用smallint。而只有在integer的范圍不夠的時候才使用bigint,因?yàn)榍罢?intege
12、r)絕對快得多。2. 任意精度數(shù)值: 類型numeric可以存儲最多1000位精度的數(shù)字并且準(zhǔn)確地進(jìn)行計算。因此非常適合用于貨幣金額和其它要求計算準(zhǔn)確的數(shù)量。不過,numeric類型上的算術(shù)運(yùn)算比整數(shù)類型或者浮點(diǎn)數(shù)類型要慢很多。 numeric字段的最大精度和最大比例都是可以配置的。要聲明一個類型為numeric的字段,你可以用下面的語法: NUMERIC(precision,scale) 比如數(shù)字23.5141的精度為6,而刻度為4。 在目前的PostgreSQL版本中,decimal和numeric是等效的。3. 浮點(diǎn)數(shù)類型: 數(shù)據(jù)類型real和double是不準(zhǔn)確的、犧牲精度的數(shù)字類型。
13、不準(zhǔn)確意味著一些數(shù)值不能準(zhǔn)確地轉(zhuǎn)換成內(nèi)部格式并且是以近似的形式存儲的,因此存儲后再把數(shù)據(jù)打印出來可能顯示一些缺失。推薦精選4. Serial(序號)類型: serial和bigserial類型不是真正的類型,只是為在表中設(shè)置唯一標(biāo)識做的概念上的便利。 CREATE TABLE tablename ( colname SERIAL ); 等價于 CREATE SEQUENCE tablename_colname_seq; CREATE TABLE tablename( colname integer DEFAULT nextval(tablename_colname_seq) NOT NULL
14、); 這樣,我們就創(chuàng)建了一個整數(shù)字段并且把它的缺省數(shù)值安排為從一個序列發(fā)生器取值。應(yīng)用了一個NOT NULL約束以確保空值不會被插入。在大多數(shù)情況下你可能還希望附加一個UNIQUE或者PRIMARY KEY約束避免意外地插入重復(fù)的數(shù)值,但這個不是自動發(fā)生的。因此,如果你希望一個序列字段有一個唯一約束或者一個主鍵,那么你現(xiàn)在必須聲明,就像其它數(shù)據(jù)類型一樣。 還需要另外說明的是,一個serial類型創(chuàng)建的序列在其所屬字段被刪除時,該序列也將被自動刪除,但是其它情況下是不會被刪除的。因此,如果你想用同一個序列發(fā)生器同時給幾個字段提供數(shù)據(jù),那么就應(yīng)該以獨(dú)立對象的方式創(chuàng)建該序列發(fā)生器。2、 字符類型SQ
15、L 定義了兩種基本的字符類型,varchar(n)和char(n),這里的n是一個正整數(shù)。兩種類型都可以存儲最多n個字符長的字串,試圖存儲更長的字串到這些類型的字段里會產(chǎn)生一個錯誤,除非超出長度的字符都是空白,這種情況下該字串將被截斷為最大長度。如果沒有長度聲明,char等于char(1),而varchar則可以接受任何長度的字串。這里需要注意的是,如果是將數(shù)值轉(zhuǎn)換成char(n)或者varchar(n),那么超長的數(shù)值將被截斷成n個字符,而不會拋出錯誤。最后需要提示的是,這三種類型之間沒有性能差別,只不過是在使用char類型時增加了存儲尺寸。雖然在某些其它的數(shù)據(jù)庫系統(tǒng)里,char(n)有一定
16、的性能優(yōu)勢,但在PostgreSQL里沒有。在大多數(shù)情況下,應(yīng)該使用text或者varchar。3、 日期/時間類型1. 日期/時間輸入: 任何日期或者時間的文本輸入均需要由單引號包圍,就象一個文本字符串一樣。推薦精選日期格式時間格式時間戳類型的有效輸入由一個日期和時間的聯(lián)接組成,后面跟著一個可選的時區(qū)。因此,1999-01-08 04:05:06和1999-01-08 04:05:06 -8:00都是有效的數(shù)值。2,示例在插入數(shù)據(jù)之前先查看datestyle系統(tǒng)變量的值:推薦精選Sql: 輸出窗口5、 布爾類型:PostgreSQL支持標(biāo)準(zhǔn)的SQL boolean數(shù)據(jù)類型。boolean只能
17、有兩個狀態(tài)之一:真(True)或 假(False)。該類型占用1個字節(jié)。推薦精選真值的有效文本值是:TRUE ,t ,true, y ,yes ,1而對于假而言,你可以使用下面這些:FALSE ,f ,false ,n ,no ,06、 位串類型:位串就是一串1和0的字串。它們可以用于存儲和視覺化位掩碼。我們有兩種類型的SQL位類型:bit(n)和bit varying(n); 這里的n是一個正整數(shù)。bit類型的數(shù)據(jù)必須準(zhǔn)確匹配長度n; 試圖存儲短些或者長一些的數(shù)據(jù)都是錯誤的。類型bit varying數(shù)據(jù)是最長n的變長類型;更長的串會被拒絕。寫一個沒有長度的bit等效于bit(1),沒有長度
18、的bit varying相當(dāng)于沒有長度限制。 針對該類型,最后需要提醒的是,如果我們明確地把一個位串值轉(zhuǎn)換成bit(n),那么它的右邊將被截斷或者在右邊補(bǔ)齊零,直到剛好n位,而不會拋出任何錯誤。類似地,如果我們明確地把一個位串?dāng)?shù)值轉(zhuǎn)換成bit varying(n),如果它超過n位,那么它的右邊將被截斷。 見如下具體使用方式:這句sql執(zhí)行時就會報錯,因?yàn)?a的數(shù)據(jù)的長度是3,如果所插數(shù)據(jù)長度不為三則報錯.推薦精選注:(:)為轉(zhuǎn)換符7、 數(shù)組類型:1. 數(shù)組類型聲明: 創(chuàng)建字段含有數(shù)組類型的表。 插入數(shù)組數(shù)據(jù)2查詢數(shù)組數(shù)據(jù)和其他語言一樣,PostgreSQL中數(shù)組也是通過下標(biāo)數(shù)字(寫在方括弧內(nèi))
19、的方式進(jìn)行訪問,只是PostgreSQL中數(shù)組元素的下標(biāo)是從1開始n結(jié)束。PostgreSQL中還提供了訪問數(shù)組范圍的功能,即ARRAY腳標(biāo)下界:腳標(biāo)上界。推薦精選3. 修改數(shù)組數(shù)據(jù)代替全部數(shù)組值:更新數(shù)組中某一元素:更新數(shù)組某一范圍的元素:直接賦值擴(kuò)大數(shù)組:8、 復(fù)合類型PostgreSQL中復(fù)合類型有些類似于C語言中的結(jié)構(gòu)體,也可以被視為Oracle中的記錄類型,但是還是感覺復(fù)合類型這個命名比較貼切。它實(shí)際上只是一個字段名和它們的數(shù)據(jù)類型的列表。PostgreSQL允許像簡單數(shù)據(jù)類型那樣使用復(fù)合類型。比如,表字段可以聲明為一個復(fù)合類型。CREATE TYPE inventory_item
20、AS ( name text, 推薦精選supplier_id integer, price numeric );和聲明一個數(shù)據(jù)表相比,聲明類型時需要加AS關(guān)鍵字,同時在聲明TYPE時不能定義任何約束。下面我們看一下如何在表中指定復(fù)合類型的字段,如:CREATE TABLE on_hand ( item inventory_item, count integer);最后需要指出的是,在創(chuàng)建表的時候,PostgreSQL也會自動創(chuàng)建一個與該表對應(yīng)的復(fù)合類型,名字與表字相同,即表示該表的復(fù)合類型。復(fù)合類型值輸入: 我們可以使用文本常量的方式表示復(fù)合類型值,即在圓括號里包圍字段值并且用逗號分隔它們。
21、你也可以將任何字段值用雙引號括起,如果值本身包含逗號或者圓括號,那么就用雙引號括起,對于上面的inventory_item復(fù)合類型的輸入如下:(fuzzy dice,42,1.99)如果希望類型中的某個字段為NULL,只需在其對應(yīng)的位置不予輸入即可,如下面的輸入中price字段的值為NULL, (fuzzy dice,42,) 如果只是需要一個空字串,而非NULL,寫一對雙引號,如: (,42,)在更多的場合中PostgreSQL推薦使用ROW表達(dá)式來構(gòu)建復(fù)合類型值,使用該種方式相對簡單,無需考慮更多標(biāo)識字符問題,如: ROW(fuzzy dice, 42, 1.99) ROW(, 42, N
22、ULL) 注:對于ROW表達(dá)式,如果里面的字段數(shù)量超過1個,那么關(guān)鍵字ROW就可以省略,因此以上形式可以簡化為: (fuzzy dice, 42, 1.99) (, 42, NULL)訪問復(fù)合類型: 訪問復(fù)合類型中的字段和訪問數(shù)據(jù)表中的字段在形式上極為相似,只是為了對二者加以區(qū)分,PostgreSQL設(shè)定在訪問復(fù)合類型中的字段時,類型部分需要用圓括號括起,以避免混淆,如: SELECT (item).name FROM on_hand WHERE (item).price 9.99; 如果在查詢中也需要用到表名,那么表名和類型名都需要被圓括號括起,如: SELECT (on_hand.item
23、).name FROM on_hand WHERE (on_hand.item).price 9.99;修改復(fù)合類型: 見如下幾個示例: -直接插入復(fù)合類型的數(shù)據(jù),這里是通過ROW表達(dá)式來完成的。 INSERT INTO on_hand(item) VALUES(ROW(fuzzy dice,42,1.99); -在更新操作中,也是可以通過ROW表達(dá)式來完成。 UPDATE on_hand SET item = ROW(fuzzy dice,42,1.99) WHERE count = 0; -在更新復(fù)合類型中的一個字段時,我們不能在SET后面出現(xiàn)的字段名周圍加圓括號, 但是在等號右邊的表達(dá)式里引用同一個字段時卻需要圓括號。 推薦精選UPDATE on_hand SET item.price = (item).price + 1 WHERE count = 0; -可以在插入中,直接插入復(fù)合類型中字段。 INSERT INTO on_hand (item.supplier_id, item.price) VALUES(100, 2.2);九 postgreSQL jdbc詳解當(dāng)前postgreSQL9.3 jdbc 有三種版本 這是當(dāng)前版本的驅(qū)動程序。除非你
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國機(jī)械電子智能鎖市場發(fā)展前景調(diào)研及投資戰(zhàn)略分析報告
- 2024-2030年中國服裝展示道具行業(yè)運(yùn)行態(tài)勢及發(fā)展?jié)摿︻A(yù)測報告
- 2024-2030年中國有機(jī)棉行業(yè)運(yùn)營狀況及未來發(fā)展趨勢預(yù)測報告
- 2024-2030年中國智能家居設(shè)備行業(yè)運(yùn)營狀況及投資前景預(yù)測報告
- 2024-2030年中國無機(jī)物類吸附劑項(xiàng)目可行性研究報告
- 2024-2030年中國整張幻燈片成像行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 電子病歷系統(tǒng)建設(shè)方案與計劃
- 工程項(xiàng)目焊接施工方案評估
- 2025-2025年度小學(xué)心理健康教育工作計劃
- (部編)六年級下冊語文教學(xué)計劃
- 當(dāng)代大學(xué)生國家安全教育學(xué)習(xí)通課后章節(jié)答案期末考試題庫2023年
- 外立面泛光照明施工方案
- 住院患者非計劃拔管危險因素評估量表
- 斯坦福大學(xué)人生設(shè)計課
- 人教版PEP英語四年級上冊全冊雙減同步分層作業(yè)設(shè)計含答案
- 配網(wǎng)規(guī)劃工作思路
- 項(xiàng)目復(fù)盤報告PPT通用模板
- DB13-T 3034-2023 建筑消防設(shè)施檢測服務(wù)規(guī)范
- 心理統(tǒng)計學(xué)考研歷年真題及答案
- 電影世界中的文學(xué)經(jīng)典知到章節(jié)答案智慧樹2023年無
- 中藥學(xué)(廣西中醫(yī)藥大學(xué))知到章節(jié)答案智慧樹2023年
評論
0/150
提交評論