




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
數(shù)據(jù)庫學習數(shù)據(jù)庫類型篇北京久其軟件股份有限公司2023年4月21日第1頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日數(shù)據(jù)庫地位□支撐當代計算機應用最基本的四大支柱:
◆操作系統(tǒng)◆網(wǎng)絡技術(shù)◆計算機語言◆數(shù)據(jù)庫
第2頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日數(shù)據(jù)庫地位數(shù)據(jù)庫技術(shù)產(chǎn)生于六十年代末,是數(shù)據(jù)管理的最新技術(shù),是計算機科學的重要分支數(shù)據(jù)庫技術(shù)是信息系統(tǒng)的核心和基礎,它的出現(xiàn)極大地促進了計算機應用向各行各業(yè)的滲透數(shù)據(jù)庫的建設規(guī)模、數(shù)據(jù)庫信息量的大小和使用頻度已成為衡量一個國家信息化程度的重要標志第3頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日數(shù)據(jù)庫系統(tǒng)概述數(shù)據(jù)庫是數(shù)據(jù)管理的最新技術(shù),是計算機科學的重要分支。常用術(shù)語數(shù)據(jù)數(shù)據(jù)庫數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫管理技術(shù)的產(chǎn)生和發(fā)展數(shù)據(jù)庫系統(tǒng)的特點第4頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日數(shù)據(jù)庫數(shù)據(jù)類型介紹◆Oracle的數(shù)據(jù)類型可以分為四類,分別是標量類型、復合類型、引用類型和LOB類型。標量類型沒有內(nèi)部組件;而復合類型包含了能夠被單獨操作的內(nèi)部組件;引用類型類似于3G語言中的指針,能夠引用一個值;LOB類型就是一個lob定位器,能夠指出大對象的存儲位置?!?、標量(Scalar)□2、復合(composite)□3、引用(reference)□4、LOB第5頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日1、標量(Scalar)□1.1數(shù)字型□1.2字符型□1.3行型□1.4日期型□1.5行標識型□1.6布爾型□1.7可信型第6頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日1.1數(shù)字型◆數(shù)字型可以存儲整數(shù)、定點和浮點,可以表示數(shù)值的大小,參與計算。1.1.1NUMBER1.1.2PLS_INTEGER1.1.3BINARY_INTEGER第7頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日1.1.1NUMBER□NUMBER
我們可以使用NUMBER數(shù)據(jù)類型來存儲定點和浮點數(shù)。它的取值范圍是1E-130至10E125。如果表達式的值超過這個范圍,我們就會得到溢出錯誤。我們可以為要存儲的數(shù)字指定精度,包括數(shù)字的全長和小數(shù)位。
NUMBER(p,s)P為Precision(p<=38),意為數(shù)值的最大位數(shù)(十進制)S為Scale,意為小數(shù)點后的最多位數(shù)。范圍(-84~127之間)如果S為負數(shù),表示精確到小數(shù)點前若干位P,S可以省略NUMBER表示使用默認值,即等同于NUMBER(5)第8頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日NUMBER子類型◆為了能和ANSI/ISO和IBM類型兼容或是想使用一個更加具有描述意義的名字,我們可以使用下面的MUNBER子類型:
1.DEC 2.DECIMAL 3.DOUBLEPRECISION 4.FLOAT 5.INTEGER 6.INT 7.NUMERIC 8.REAL 9.SMALLINT
使用DEC、DECIMAL和NUMERIC可以聲明最大精度為38位十進制的定點數(shù)字。而使用DOUBLEPERCISION和FLOAT可以聲明最大精度為126為二進制的浮點數(shù)字,大約相當于38位十進制數(shù)字?;蚴鞘褂肦EAL聲明最大精度為63位二進制的浮點數(shù)字,大約相當于18位二進制數(shù)字。INTEGER、INT、和SMALLINT可以聲明最大精度為38位十進制數(shù)字的整數(shù)。第9頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日1.1.2PLS_INTEGER□PLS_INTEGER
我們可以使用PLS_INTEGER數(shù)據(jù)類型來存儲有符號整數(shù)。它的取值范圍在-2^31至2^31之間。PLS_INTEGER所需要的存儲空間要比NUMBER少,運算的速度要高于NUMBER和BINARY_INTEGER。雖然PLS_INTEGER和BINARY_INTEGER取值范圍一樣,但它們不完全兼容。PLS_INTEGER在運算時如果有溢出,則會有異常拋出,而BINARY_INTEGER發(fā)生溢出時,如果結(jié)果是要賦給一個NUMBER類型的變量時,就不會有異常拋出。為了考慮兼容性,我們?nèi)钥梢栽谂f的應用程序中使用BINARY_INTEGER,按在新的應用程序中,PLS_INTEGER會帶來更好的性能。第10頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日1.1.3BINARY_INTEGER□BINARY_INTEGER
可以描述不存儲在數(shù)據(jù)庫中,但是需要用來計算的帶符號的整數(shù)值。以2的補碼二進制形式表述。循環(huán)計數(shù)器常使用此類型。
◆我們可以使用BINARY_INTEGER數(shù)據(jù)類型來存儲有符號整數(shù)。它的范圍是-2**31至2**31。跟PLS_INTEGER一樣,BINARY_INTEGER所需要的存儲空間也小于NUMBER。但是,大多數(shù)的BINARY_INTEGER操作比PLS_INTEGER操作慢。
第11頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日BINARY_INTEGER子類型BINARY_INTEGER子類型 所謂的基類型,就是子類型繼承于它。子類型在基類型的基礎上添加一些約束限制,也可能重新定義數(shù)值范圍。為了使用方便,PL/SQL預定義了下面的幾個BINARY_INTEGER的子類
1.NATURAL 2.NATURALN 3.POSITIVE 4.POSITIVEN 5.SIGNTYPE
子類型NATURAL和POSITIVE能讓我們將一個整型變量的取值范圍分別限制在非負數(shù)和正整數(shù)之內(nèi)。NATURALN和POSITIVEN不允許為整數(shù)類型變量賦空值。SIGNTYPE把正說的取值范圍限定在-1,0,1,在編程中很適合三態(tài)邏輯(tri-statelogic)第12頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日1.2字符型◆字符類型可以存放字符和數(shù)字混合的數(shù)據(jù),表現(xiàn)詞和文章,操作字符串□1.2.1CHAR□1.2.2VARCHAR2□1.2.3LONG□1.2.4NCHAR□1.2.5NVARCHAR2第13頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日1.2.1CHAR□定長類型CHAR
我們可以使用CHAR類型來存儲定長的字符數(shù)據(jù)。但該數(shù)據(jù)的內(nèi)部表現(xiàn)形式是取決于數(shù)據(jù)庫字符集的。CHAR類型有一個用于指定最大長度的可選參數(shù),長度范圍在1到32767字節(jié)之間,我們可以采用字節(jié)或字符的形式來設置該參數(shù)。具體語法如下:
CHAR[(maximum_size[CHAR|BYTE])]
Maximum_size不能是常量或者變量,只能是范圍在1至32767之間的整數(shù)文字。
CHAR(1)
1為字符串長度,缺省值為1, 作為變量最大長度32767個字符, 作為數(shù)據(jù)存儲在Oracle中最大為2000
◆長度固定,填充空格
◆性能稍好,適合固定長度的編號等第14頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日1.2.2VARCHAR2□變長類型VARCHAR2
我們可以使用VARCHAR2類型來存儲變長的字符數(shù)據(jù)。至于數(shù)據(jù)在數(shù)據(jù)空中的內(nèi)部表現(xiàn)形式要取決于數(shù)據(jù)區(qū)的字符集。 語法如下:
VARCHAR2(maximum_size[CHAR|BYTE])
我們不能使用常量或變量來指定maxinum_size值,maximum_size值的有效范圍在1到32767之間。 對于長度不同的VARCHAR2類型數(shù)據(jù),PL/SQL對它們的處理方式也不相同。 截止點:2000字節(jié)
<2000性能優(yōu)先,聲明時分配指定大小
>=2000效率優(yōu)先,動態(tài)分配空間◆VARCHAR2(n),最大4000第15頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日VARCAHR2子類型下面VARCHAR2的子類型的范圍與VARCHAR2完全相同,它們只是VARCHAR2的一個別名而已。
1.STRING 2.VARCHAR
我們可以使用這些子類型來與ANSI/ISO和IBM類型兼容。
注意:目前VARCHAR和VARCHAR2有著相同的意義,但是在以后的PL/SQL版本中,為了符合SQL標準,VARCHAR有可能會作為一個單獨的類型出現(xiàn)。所以最好使用VARCHAR2,而不是VARCHAR。第16頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日1.2.3Long□LONG
我們可以使用LONG類型來存儲變長的字符串。 在數(shù)據(jù)庫存儲中可以保存2GB數(shù)據(jù); 作為變量最大可表示32760字節(jié)的可變字符串
LONG類型和VARCHAR2很像。
注意:在SQL語句中,PL/SQL會將LONG類型的值綁定成VARCHAR2類型,而不是LONG。但是,如果被綁定的VARCHAR2值超過4000個字節(jié),Oracle會自動地將綁定類型轉(zhuǎn)換成LONG,但LONG并不能應用在SQL函數(shù)中,所以,這時我們就會得到一個錯誤消息。第17頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日1.2.4NCHAR本地字符:NCHAR和NVARCHAR2□NCHAR
國家字符集,于環(huán)境變量NLS制定的語言有關(guān) 我們用NCHAR類型來儲存定長國家特有字符數(shù)據(jù)。數(shù)據(jù)的內(nèi)部表現(xiàn)形式取決于數(shù)據(jù)庫創(chuàng)建時指定的國家特有字符集,字符集可能采用變長編碼(UTF-8)或定長編碼(AL16UTF16)。因為這種類型總是與多字節(jié)字符兼容,所以我們可以使用它支持任何Unicode字符數(shù)據(jù)。
NCHAR數(shù)據(jù)類型可以接受一個可選參數(shù)來讓我們指定字符的最大長度。語法如下:
NCHAR(maximum_size)第18頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日1.2.5NVARCHAR2□NVARCHAR2
我們可以使用NVARCHAR2數(shù)據(jù)類型來存儲變長的Unicode字符數(shù)據(jù)。數(shù)據(jù)的內(nèi)部表現(xiàn)取決于數(shù)據(jù)庫創(chuàng)建時所指定的國家特有字符集,它有可能采用變長編碼(UTF8)或者定長編碼(AL16UTF16)。因為這個類型縱欲多字節(jié)兼容,我們可以用它來支持Unicode字符數(shù)據(jù)。
NVARCHAR2數(shù)據(jù)類型需要接受一個指定最大大小的參數(shù),語法如下:
NCARCHAR2(maximum_size)第19頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日1.3行型□行 存儲二進制數(shù)據(jù),不會在字符集間轉(zhuǎn)換◆1.3.1Raw◆1.3.2LongRaw第20頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日1.3.1Raw□Raw
我們可以使用RAW數(shù)據(jù)類型來存儲二進制數(shù)據(jù)或字符串。例如,一個RAW類型的變量可以存儲一個數(shù)字化圖形。RAW類型數(shù)據(jù)和VARCHAR2類型數(shù)據(jù)類似,只是PL/SQL不對其進行解析而已。同樣在我們把RAW數(shù)據(jù)從一個系統(tǒng)傳到另一個系統(tǒng)中時,OracleNet也不會對它做字符集轉(zhuǎn)換。RAW類型包含了一個可以讓我們指定最大長度的可選參數(shù),上限為32767字節(jié)。語法如下:
RAW(maximum_size) maximum不能為常量或者變量來指定,必須為1到32767范圍內(nèi)的整數(shù)參數(shù)。 作為數(shù)據(jù)存儲在Oracle中最大為2000第21頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日1.3.2LongRaw□LongRaw
我們可以使用LONGRAW類型來存儲二進制數(shù)據(jù)或者二進制字符串。LONGRAW和LONG類似,但是它不會被PL/SQL解析。 作為數(shù)據(jù)庫列最大存儲2G字節(jié)數(shù)據(jù);作為變量最大32760字節(jié) 從9i開始,LOB類型變量可以與LONG和LONGRAW類型交換使用。Oracle推薦將LONG和LONGRAW都對應的轉(zhuǎn)換成CLOB和BLOB類型第22頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日1.4日期型□Datetime日期時間類型□日期及時間DATE ◆世紀、年、月、天、小時、分鐘、秒 ◆公元前4712到公元后9999 ◆精度為秒,適合記錄一般時間
□TIMESTAMP(n) TIMESTAMP是對DATE的擴展,包含了年月日時分秒
◆N為秒分量的小數(shù)位,從0到9,最大精度為微秒 ◆還可以支持時區(qū)□INTERVAL時間間隔 ◆時間間隔,這是一個差值,而不是絕對時間第23頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日1.5行標識型□行標識 ◆ROWID
在Oracle內(nèi)部,每個數(shù)據(jù)表都有一個偽列ROWID,用于存放被稱為ROWID的二進制值。每個ROWID代表了一行數(shù)據(jù)的存儲地址。物理ROWID能夠標識普通數(shù)據(jù)表中的一行信息,而邏輯ROWID能夠標識索引組織表(index-organizedtable)中的一行信息。其中ROWID類型只能存物理內(nèi)容,而UROWID(universalrowid)類型可以存儲物理、邏輯或外來(non-Oracle)ROWID
建議:只有在舊的應用程序中,為了兼容性我們才使用ROWID數(shù)據(jù)類型。對于新的應用程序,應該使用UROWID數(shù)據(jù)類型。
第24頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日1.6布爾型□布爾 布爾類型能存儲邏輯值TRUE、FALSE和NULL(NULL代表缺失、未知或不可用的值)。只有邏輯操作符才允許應用在布爾變量上。
boolean
數(shù)據(jù)庫SQL類型并不支持布爾類型,只有PL/SQL才支持。所以就不能往數(shù)據(jù)庫中插入或從數(shù)據(jù)庫中檢索出布爾類型的值。第25頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日1.7可信型□可信
可信,只有一種類型---MLSLABEL,可以在TRUSTEDORACLE中用來保存可變長的二進制標簽。在標準ORACLE中,只能存儲NULL值。
第26頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日2復合(composite)□復合
標量類型是經(jīng)過預定義的,利用這些類型可以衍生出復合類型。主要有記錄、表。◆2.1記錄◆2.2表第27頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日2.1記錄□記錄
記錄,可以看做成是一組標量的組合結(jié)構(gòu),它的聲明方式如下:
TYPErecord_type_nameISRECORD {filed1type1[NOTNULL][:=expr1])
… filedntype[NOTNULL][:=exprn]}
其中,record_type_name是記錄類型的名字,引用時必須定義相關(guān)的變量,記錄只是TYPE,不是VARTABLE第28頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日2.2表□表
不是物理存儲數(shù)據(jù)的表,在這里是一種變量類型,也成為PL/SQL表,它類似于C語言中的數(shù)組,在處理方式上也類似。它的聲明方式如下:
TYPEtable_type_nameISTABLEOFscalar_typeINDEXBYBINARY_INTEGER;
其中,table_type_name是類型的名字,scalar_type是一種變量類型的類型聲明。引用時必須定義相關(guān)的變量。表和數(shù)組不同。表有兩列,KEY和VALUE,KEY就是定義時聲明的BINARY_INTEGER,VALUE就是定義時聲明的scalar_type。第29頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日3引用在PL/SQL8.0之前,只有一種類型REFCURSOR,也就是游標。它的定義比較簡單,CURSORcursor_nameISselect…from…;在PL/SQL8.0之后,引入REF類型,它指向一個對象。第30頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日4LOB□LOB
LOB(largeobject)數(shù)據(jù)類型BFILE、BLOB、CLOB和NCLOB可以最大存儲4G的無結(jié)構(gòu)數(shù)據(jù)(例如:文本、圖像、視頻剪輯和音頻)塊,并且它們允許高效地隨即地分段訪問數(shù)據(jù)。
LOB類型中存儲了LOB定位器,它能夠指向存放于外部文件中的“大對象”,in-line或out-of-line的形式。BOLB、CLOB、NCLOB或BFILE類型的數(shù)據(jù)庫字段存儲了定位器。其中BLOB、CLOB和NCLOB的數(shù)據(jù)存在數(shù)據(jù)庫中,in-line或out-of-line的形式,而BFILE數(shù)據(jù)存在數(shù)據(jù)庫之外的操作系統(tǒng)文件中。
PL/SQL是通過定位器來操作LOB的?!?.1CLOB◆4.2NCLOB◆4.3BLOB◆4.4BFILE第31頁,共36頁,2023年,2月20日,星期六北京久其軟件股份有限公司2023年4月21日4.1CLOB□CLOB CLOB可以在數(shù)據(jù)庫中分別存儲大塊CHAR類型的字符數(shù)據(jù),支持定寬和變寬字符集。指向自身類型的一個大的數(shù)據(jù)塊。可以在事務中應用,能被恢復和復制。定位器可以跨事務使用,但不
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村衛(wèi)浴維修合同范本
- 專業(yè)護欄安裝合同范本
- 住建部合同范本0204
- 北京農(nóng)村土地租賃合同范本
- 兼職app推廣合同范本
- 交房質(zhì)量糾紛合同范本
- 公司貸款抵押合同范本
- 全國青島版信息技術(shù)七年級下冊專題二第6課《閱讀材料 濾鏡》教學設計
- 包裝木箱合同范本
- 劇團戲服贈與合同范本
- 《生態(tài)安全》課件
- 2025年春新人教版一年級下冊數(shù)學全冊教學課件
- 1.北京的春節(jié) 練習題(含答案)
- 抗震支架安裝工程施工方案范文
- GB/T 45071-2024自然保護地分類分級
- 普通高中生物學課程標準-(2024修訂版)
- 農(nóng)業(yè)托管合同范例
- 食品中阿維菌素等55種農(nóng)藥最大殘留限量
- 保潔部消殺培訓
- 棗莊學院《數(shù)字電子技術(shù)》2022-2023學年期末試卷
- 人力資源部人員培訓方案(7篇)
評論
0/150
提交評論