版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)應(yīng)用技術(shù)
第二章基本概念第一頁(yè),共二十五頁(yè)。2.1SQL概述第二頁(yè),共二十五頁(yè)。2.1.1SQL的發(fā)展1976年:IBM的E.F.Codd發(fā)表了一篇里程碑的論文“ASystemR:RelationalApproachtoDatabaseManagement”R系統(tǒng):數(shù)據(jù)庫(kù)關(guān)系理論,介紹了關(guān)系數(shù)據(jù)庫(kù)理論和查詢語(yǔ)言SQL。1976年11月:IBMJournalofR&D文章中,IBM使用StructuredEnglishQUeryLanguage(SEQUEL,結(jié)構(gòu)化英語(yǔ)查詢語(yǔ)言)。后來(lái),發(fā)現(xiàn)以被一個(gè)英國(guó)飛機(jī)公司作為商標(biāo),改為SQL。第三頁(yè),共二十五頁(yè)。2.1.1SQL的發(fā)展SQL-86(ANSI)SQL-89(ANSI,ISO)SQL-92(ANSI,ISO)SQL-99(ANSI,ISO)SQL-2003(ANSI,ISO)事實(shí)上,國(guó)際標(biāo)準(zhǔn)與各個(gè)廠商之間的不兼容,造成了不可移植性。如字符串鏈接||與+;引號(hào);數(shù)據(jù)類型;函數(shù);特殊語(yǔ)義等。第四頁(yè),共二十五頁(yè)。2.1.2SQL的特點(diǎn)關(guān)系代數(shù)的實(shí)現(xiàn)類自然語(yǔ)言即時(shí)性上下文無(wú)關(guān)性非過(guò)程化、命令集合邏輯獨(dú)立性第五頁(yè),共二十五頁(yè)。2.1.2SQL的特點(diǎn)Embedded(內(nèi)含)SQL過(guò)程控制SQLOracle:PL/SQLDB2:SQL/PLSQLServer:Transact-SQL第六頁(yè),共二十五頁(yè)。2.1.3SQL分類DQLDataQueryLanguage數(shù)據(jù)查詢語(yǔ)言,如SELECT。DMLDataManipulateLanguage數(shù)據(jù)操縱語(yǔ)言,如INSERT、DELETE、UPDATE。DDLDataDefinitionLanguage數(shù)據(jù)定義語(yǔ)言,如CREATE、DROP、ALTER等。DCLDataControlLanguage數(shù)據(jù)控制語(yǔ)言,如COMMIT、ROLLBACK等。第七頁(yè),共二十五頁(yè)。2.2基本語(yǔ)法與數(shù)據(jù)類型第八頁(yè),共二十五頁(yè)。2.2.1基本語(yǔ)法SQL語(yǔ)句不區(qū)分大小寫,可以寫在多行,各個(gè)單詞之間使用分隔符(空格,回車,制表符)分隔。語(yǔ)句的結(jié)尾使用分號(hào)(Oracle)。SQL語(yǔ)句中的關(guān)鍵字屬于保留字,不能用于其他地方。SQL中數(shù)字常量的寫法和通常程序語(yǔ)言一致,字符串使用單引號(hào)包含,字符串中的單引號(hào)使用兩個(gè)連續(xù)的單引號(hào)轉(zhuǎn)義表示,不區(qū)分字符和字符串。在SQL語(yǔ)句中可以加入注釋,多行注釋使用/*…*/,單行用--(oracle)。第九頁(yè),共二十五頁(yè)。2.2.1基本語(yǔ)法為便于書寫和閱讀,通常采用如下的書寫規(guī)范:關(guān)鍵字大寫,其他標(biāo)識(shí)符小寫;每個(gè)子句單起一行;使用制表符縮進(jìn)。第十頁(yè),共二十五頁(yè)。2.2.2數(shù)據(jù)類型Oracle提供了22種不同的SQL數(shù)據(jù)類型CHAR、NCHAR、VARCHAR2、NVARCHAR2、RAW、NUMBER、BINARY_FLOAT、BINARY_DOUBLE、LONG、LONGRAW、DATE、TIMESTAMP、TIMESTAMPWITHTIMEZONE、TIMESTAMPWITHLOCALTIMEZONE、INTERVALYEARTOMONTH、INTERVALDAYTOSECOND、BFILE、BLOB、CLOB、NCLOB、ROWID、UROWID。第十一頁(yè),共二十五頁(yè)。2.2.2數(shù)據(jù)類型——數(shù)值型NUMBER(P,S)。其中,P為Precision,意為數(shù)值的最大位數(shù)(十進(jìn)制),P<=38;S為Scale,意為小數(shù)點(diǎn)后的最多位數(shù)。如NUMBER(5,2),NUMBER(4),NUMBER(5,-2)。如果給出S,表示一個(gè)定點(diǎn)數(shù),當(dāng)S為正數(shù)時(shí),意為小數(shù)點(diǎn)后的最多位數(shù);為負(fù)數(shù)時(shí),四舍五入到小數(shù)點(diǎn)前S位。如果不給出p和s,表示一個(gè)浮點(diǎn)數(shù)。要注意的是scale的值沒(méi)有應(yīng)用,也就是說(shuō)scale的值不能簡(jiǎn)單的理解為0,或者其他的數(shù)。NUMBER有幾種子類型,和ANSI/ISO的寫法兼容定點(diǎn)數(shù):DEC,DECIMAL,NUMERIC浮點(diǎn)數(shù):FLOAT,DOUBLE整數(shù):INTEGER,INT,SMALLINT第十二頁(yè),共二十五頁(yè)。2.2.2數(shù)據(jù)類型——字符型在Oracle中,分為定長(zhǎng)字符串和可變長(zhǎng)字符串兩種字符類型,不區(qū)分字符和字符串。定長(zhǎng)字符串:CHAR(S),S是字符串的固定長(zhǎng)度,S<=2000;可變長(zhǎng)字符串:VARCHAR2(S),S是字符串的最大長(zhǎng)度,S<=4000;定長(zhǎng)字符串在存儲(chǔ)時(shí)使用固定長(zhǎng)度,如果數(shù)據(jù)長(zhǎng)度小,則在后面填充空格;可變長(zhǎng)字符串按照真實(shí)長(zhǎng)度存儲(chǔ)數(shù)據(jù),不填充空格,節(jié)省空間,但存儲(chǔ)和運(yùn)算時(shí)間略長(zhǎng)。第十三頁(yè),共二十五頁(yè)。2.2.2數(shù)據(jù)類型——日期型在Oracle中,DATE是7字節(jié)定寬日期/時(shí)間數(shù)據(jù)類型,表示日期和時(shí)間,表示的內(nèi)容包括:世紀(jì)、年、月、時(shí)、分、秒。最小單位為秒。時(shí)間范圍可以從公元前4712年到公元9999年。在日期型數(shù)據(jù)進(jìn)行比較時(shí),后面的日期更大。在需要精確定時(shí)的情況下,可以使用TIMESTAMP類型,7字節(jié)或11字節(jié)的定寬日期/時(shí)間數(shù)據(jù)類型。TIMESTAMPWITHTIMEZONE:13字節(jié)的定寬TIMESTAMP,提供了時(shí)區(qū)支持。TIMESTAMPWITHLOCALTIMEZONE:7或11字節(jié)的定寬TIMESTAMP,對(duì)時(shí)區(qū)敏感,根據(jù)數(shù)據(jù)庫(kù)時(shí)區(qū)對(duì)數(shù)據(jù)進(jìn)行規(guī)范化。第十四頁(yè),共二十五頁(yè)。2.2.2數(shù)據(jù)類型——日期型INTERVAL用來(lái)表示一段時(shí)間長(zhǎng)度(兩個(gè)時(shí)間的差),如“半個(gè)小時(shí)”這樣的概念。INTERVALYEARTOMONTH:5字節(jié)定寬INTERVALDAYTOSECOND:11字節(jié)定寬可以再日期運(yùn)算中是一個(gè)DATE或TIMESTAMP類型增加或減少一段時(shí)間。第十五頁(yè),共二十五頁(yè)。2.2.2數(shù)據(jù)類型NCHAR:包含UNICODE格式數(shù)據(jù)的定長(zhǎng)字符串。NVARCHAR2:包含UNICODE格式數(shù)據(jù)的變長(zhǎng)字符串。RAW:變長(zhǎng)二進(jìn)制數(shù)據(jù)類型,存儲(chǔ)的數(shù)據(jù)不會(huì)發(fā)生字符集轉(zhuǎn)換。BINARY_FLOAT:32位單精度浮點(diǎn)數(shù)。Oracle10gRelease1后新增。BINARY_DOUBLE:64位雙精度浮點(diǎn)數(shù)。Oracle10gRelease1后新增。LONG:能存儲(chǔ)最多2GB的字符數(shù)據(jù)。只為保證向后兼容,建議采用CLOB。第十六頁(yè),共二十五頁(yè)。2.2.2數(shù)據(jù)類型LONGRAW:能存儲(chǔ)最多2GB的二進(jìn)制信息。只為保證向后兼容,建議采用BLOB。BFILE:可以在數(shù)據(jù)庫(kù)列中存儲(chǔ)一個(gè)Oracle目錄對(duì)象(操作系統(tǒng)目錄的一個(gè)指針)和一個(gè)文件名,并讀取這個(gè)文件。只讀方式訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器上可用的操作系統(tǒng)文件。BLOB:Oracle10g后允許存儲(chǔ)(4GB)*(數(shù)據(jù)庫(kù)塊大小)字節(jié)的數(shù)據(jù)。包含不需要進(jìn)行字符集轉(zhuǎn)換的“二進(jìn)制”數(shù)據(jù),如電子表格、字處理文檔、圖像文件等。CLOB:包含要進(jìn)行字符集轉(zhuǎn)換的信息,適合存儲(chǔ)純文本信息。第十七頁(yè),共二十五頁(yè)。NCLOB:存儲(chǔ)用數(shù)據(jù)庫(kù)國(guó)家字符集編碼的信息,而且像CLOB一樣,需要進(jìn)行字符集轉(zhuǎn)換。ROWID:數(shù)據(jù)庫(kù)中一行的10字節(jié)地址,在磁盤上定位這一行,標(biāo)識(shí)ROWID指向的對(duì)象。UROWID:通用ROWID,用于表,是行主鍵值的一種表示。根據(jù)指向?qū)ο蟮牟煌?,大小?huì)有所變化。INT、INTEGER、SMALLINT、FLOAT、REAL等是在前面類型的基礎(chǔ)上實(shí)現(xiàn)的,同義詞。第十八頁(yè),共二十五頁(yè)。2.2.3常用函數(shù)——日期型DATE類型數(shù)據(jù)的表示方式:在缺省情況下,使用美國(guó)式日期格式表示法,即DD-MON-YY,并且沒(méi)有時(shí)間信息,如04-Apr-05。其他的格式表示法需要通過(guò)設(shè)定會(huì)話參數(shù)或者使用日期轉(zhuǎn)換函數(shù)完成。如TO_CHAR(SYSDATE,'YYYY/MM/DDHI24:MI:SS)
來(lái)顯示所有的年月日、時(shí)分秒信息。當(dāng)前時(shí)間若為
2007年5月24日下午3點(diǎn)12分45秒,上面的函數(shù)返回字符串'2007/05/2415:12:45'第十九頁(yè),共二十五頁(yè)。2.2.3常用函數(shù)——數(shù)值型對(duì)于數(shù)值型,通常的+-*/等算術(shù)運(yùn)算符都可以使用數(shù)值型函數(shù)是對(duì)數(shù)值進(jìn)行操作的函數(shù),包括我們常見(jiàn)的各種數(shù)學(xué)函數(shù),如sin,cos等。下面兩個(gè)函數(shù)是比較特別和有用的。符號(hào)函數(shù)SIGN(x):-1,x<0;0,x=0;1,x>0。四舍五入函數(shù):xCEILFLOORROUNDTRUNC2.332222.63232-2.3-2-3-2-2-2.6-2-3-3-2第二十頁(yè),共二十五頁(yè)。2.2.3常用函數(shù)——字符型字符型的連接運(yùn)算符是
||,可以將兩個(gè)字符串連接在一起。ASCII轉(zhuǎn)換:ASCII,CHR大小寫:UPPER,LOWER,INITCAP查找/替換:INSTR,REPLACE長(zhǎng)度:LENGTH填充/移除:LPAD,RPAD,TRIM取子串:SUBSTR第二十一頁(yè),共二十五頁(yè)。2.2.3常用函數(shù)——日期型兩個(gè)DATE類型的數(shù)據(jù)可以作減法,結(jié)果是一個(gè)浮點(diǎn)小數(shù),表示時(shí)間相差的天數(shù)。如今天12點(diǎn)減去昨天12點(diǎn)等于1;如今天6點(diǎn)減去今天12點(diǎn)等于-0.25;一個(gè)時(shí)間也可以加/減一個(gè)數(shù),表示在此時(shí)間點(diǎn)向后或向前推若干天。SYSDATE:返回系統(tǒng)當(dāng)前時(shí)間。此函數(shù)不用寫括號(hào)。其他日期型函數(shù)大多用來(lái)進(jìn)行不規(guī)則的日期運(yùn)算,如:MONTHS_BETWEEN:計(jì)算兩個(gè)日期之間相差的月份ADD_MONTHS:日期加上月份。第二十二頁(yè),共二十五頁(yè)。2.2.3常用函數(shù)——日期型NEXT_DAY:下一個(gè)特定的日期,如星期幾。LAST_DAY:返回月份的最后一天。ROUND和TRUNC函數(shù)也能對(duì)日期類型進(jìn)行計(jì)算,按照規(guī)定的格式符四舍五入或者截?cái)嗟侥硞€(gè)日期單位(如年、月、日)。第二十三頁(yè),共二十五頁(yè)。2.2.3常用函數(shù)——類型轉(zhuǎn)換隱式類型轉(zhuǎn)換:Oracle是弱類型語(yǔ)言,各個(gè)類型之間可以直接相互運(yùn)算,系統(tǒng)自動(dòng)轉(zhuǎn)換為合適的類型,如:‘123’+5=128‘123’||5=‘1235’必要的時(shí)候,也可以使用顯式的類型轉(zhuǎn)換函數(shù),類型轉(zhuǎn)換函數(shù)有三個(gè),即:TO_DATE,TO_CHAR,TO_NUMBER在轉(zhuǎn)換時(shí),可以使用必要的格式符說(shuō)明格式細(xì)節(jié),否則使用缺省格式。第二十四頁(yè),共二十五頁(yè)。內(nèi)容總結(jié)數(shù)據(jù)庫(kù)應(yīng)用技術(shù)
第二章基本概念。2.2.2
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《變頻柜設(shè)計(jì)規(guī)范》課件
- 廚具批發(fā)供貨合同范例
- 室內(nèi)大白合同模板
- 小區(qū)車庫(kù)劃線合同范例
- 合同范例范例贈(zèng)送
- 店面轉(zhuǎn)租轉(zhuǎn)讓合同范例
- 三明大型倉(cāng)庫(kù)租賃合同模板
- 平安貸款買合同模板
- 農(nóng)民務(wù)工合同范例
- 專業(yè)采購(gòu)服裝合同范例
- 單片機(jī)原理與應(yīng)用說(shuō)課
- 船舶租賃盡職調(diào)查
- GB/T 13912-2020金屬覆蓋層鋼鐵制件熱浸鍍鋅層技術(shù)要求及試驗(yàn)方法
- GB/T 11270.2-2021超硬磨料制品金剛石圓鋸片第2部分:燒結(jié)鋸片
- 植物生理學(xué)-植物的逆境生理
- 2017大專病理課件4局部血液循環(huán)障礙l
- 2023年考研英語(yǔ)(二)真題
- 小學(xué)英語(yǔ)人教新起點(diǎn)五年級(jí)上冊(cè)Unit3Animalsunit3storytime
- 醫(yī)療質(zhì)量管理與持續(xù)改進(jìn)工作記錄
- 幼兒園突發(fā)事件應(yīng)急處置流程圖
- 小學(xué)《信息技術(shù)》考試試題及
評(píng)論
0/150
提交評(píng)論