數(shù)據(jù)庫(kù)Oracle第2章ppt課件_第1頁(yè)
數(shù)據(jù)庫(kù)Oracle第2章ppt課件_第2頁(yè)
數(shù)據(jù)庫(kù)Oracle第2章ppt課件_第3頁(yè)
數(shù)據(jù)庫(kù)Oracle第2章ppt課件_第4頁(yè)
數(shù)據(jù)庫(kù)Oracle第2章ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、數(shù)據(jù)庫(kù)運(yùn)用技術(shù)第二章 根本概念.2.1 SQL概述2.1.1 SQL的開展1976年:IBM的E. F. Codd發(fā)表了一篇里程碑的論文“A System R: Relational Approach to Database Management R系統(tǒng):數(shù)據(jù)庫(kù)關(guān)系實(shí)際,引見了關(guān)系數(shù)據(jù)庫(kù)實(shí)際和查詢言語SQL。1976年11月:IBM Journal of R&D文章中,IBM運(yùn)用Structured English QUery Language (SEQUEL,構(gòu)造化英語查詢言語)。后來,發(fā)現(xiàn)以被一個(gè)英國(guó)飛機(jī)公司作為商標(biāo),改為SQL。2.1.1 SQL的開展SQL-86(ANSI)SQL-89

2、(ANSI,ISO)SQL-92(ANSI,ISO)SQL-99(ANSI,ISO)SQL-2003(ANSI,ISO)現(xiàn)實(shí)上,國(guó)際規(guī)范與各個(gè)廠商之間的不兼容,呵斥了不可移植性。如字符串鏈接|與+;引號(hào);數(shù)據(jù)類型;函數(shù);特殊語義等。2.1.2 SQL的特點(diǎn)關(guān)系代數(shù)的實(shí)現(xiàn)類自然言語即時(shí)性上下文無關(guān)性非過程化、命令集合邏輯獨(dú)立性2.1.2 SQL的特點(diǎn)Embedded內(nèi)含SQL過程控制SQLOracle:PL/SQLDB2:SQL/PLSQL Server:Transact-SQL2.1.3 SQL分類DQLData Query Language數(shù)據(jù)查詢言語,如SELECT。DMLData Man

3、ipulate Language數(shù)據(jù)支配言語,如INSERT、DELETE、UPDATE。DDLData Definition Language數(shù)據(jù)定義言語,如CREATE、DROP、ALTER等。DCLData Control Language數(shù)據(jù)控制言語,如COMMIT、ROLLBACK等。2.2 根本語法與數(shù)據(jù)類型2.2.1 根本語法SQL語句不區(qū)分大小寫,可以寫在多行,各個(gè)單詞之間運(yùn)用分隔符空格,回車,制表符分隔。語句的結(jié)尾運(yùn)用分號(hào)Oracle。SQL語句中的關(guān)鍵字屬于保管字,不能用于其他地方。SQL中數(shù)字常量的寫法和通常程序文語一致,字符串運(yùn)用單引號(hào)包含,字符串中的單引號(hào)運(yùn)用兩個(gè)延續(xù)

4、的單引號(hào)本義表示,不區(qū)分字符和字符串。在SQL語句中可以參與注釋,多行注釋運(yùn)用/*/,單行用-oracle。2.2.1 根本語法為便于書寫和閱讀,通常采用如下的書寫規(guī)范:關(guān)鍵字大寫,其他標(biāo)識(shí)符小寫;每個(gè)子句單起一行;運(yùn)用制表符縮進(jìn)。2.2.2 數(shù)據(jù)類型Oracle提供了22種不同的SQL數(shù)據(jù)類型CHAR、NCHAR、VARCHAR2、NVARCHAR2、RAW、NUMBER、BINARY_FLOAT、BINARY_DOUBLE、LONG、LONG RAW、DATE、TIMESTAMP、TIMESTAMP WITH TIME ZONE、TIMESTAMP WITH LOCAL TIME ZONE

5、、INTERVAL YEAR TO MONTH、INTERVAL DAY TO SECOND、BFILE、BLOB、CLOB、NCLOB、ROWID、UROWID。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)。假設(shè)給出S,表示一個(gè)定點(diǎn)數(shù),當(dāng)S為正數(shù)時(shí),意為小數(shù)點(diǎn)后的最多位數(shù);為負(fù)數(shù)時(shí),四舍五入到小數(shù)點(diǎn)前S位。假設(shè)不給出p和s,表示一個(gè)浮點(diǎn)數(shù)。要留意的是scale的值沒有運(yùn)用,也就是說scale的值不能簡(jiǎn)單的了解

6、為0,或者其他的數(shù)。NUMBER有幾種子類型,和ANSI/ISO的寫法兼容定點(diǎn)數(shù):DEC,DECIMAL,NUMERIC浮點(diǎn)數(shù):FLOAT,DOUBLE整數(shù):INTEGER,INT,SMALLINT2.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í)運(yùn)用固定長(zhǎng)度,假設(shè)數(shù)據(jù)長(zhǎng)度小,那么在后面填充空格;可變長(zhǎng)字符串按照真實(shí)長(zhǎng)度存儲(chǔ)數(shù)據(jù),不填充空格,節(jié)省空間,但存儲(chǔ)和運(yùn)算時(shí)間略長(zhǎng)。2.2.2

7、數(shù)據(jù)類型日期型在Oracle中,DATE是7字節(jié)定寬日期/時(shí)間數(shù)據(jù)類型,表示日期和時(shí)間,表示的內(nèi)容包括:世紀(jì)、年、月、 時(shí)、分、秒。最小單位為秒。時(shí)間范圍可以從公元前4712年到公元9999年。在日期型數(shù)據(jù)進(jìn)展比較時(shí),后面的日期更大。在需求準(zhǔn)確定時(shí)的情況下,可以運(yùn)用TIMESTAMP類型,7字節(jié)或11字節(jié)的定寬日期/時(shí)間數(shù)據(jù)類型。TIMESTAMP WITH TIME ZONE:13字節(jié)的定寬TIMESTAMP,提供了時(shí)區(qū)支持。TIMESTAMP WITH LOCAL TIME ZONE:7或11字節(jié)的定寬TIMESTAMP,對(duì)時(shí)區(qū)敏感,根據(jù)數(shù)據(jù)庫(kù)時(shí)區(qū)對(duì)數(shù)據(jù)進(jìn)展規(guī)范化。2.2.2 數(shù)據(jù)類型日期

8、型INTERVAL用來表示一段時(shí)間長(zhǎng)度兩個(gè)時(shí)間的差,如“半個(gè)小時(shí)這樣的概念。INTERVAL YEAR TO MONTH:5字節(jié)定寬INTERVAL DAY TO SECOND:11字節(jié)定寬可以再日期運(yùn)算中是一個(gè)DATE或TIMESTAMP類型添加或減少一段時(shí)間。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ù)。Oracle 10g Release 1后新增。BINARY_DOUBLE:64位雙精度浮點(diǎn)數(shù)。Or

9、acle 10g Release 1后新增。LONG:能存儲(chǔ)最多2GB的字符數(shù)據(jù)。只為保證向后兼容,建議采用CLOB。2.2.2 數(shù)據(jù)類型LONG RAW:能存儲(chǔ)最多2GB的二進(jìn)制信息。只為保證向后兼容,建議采用BLOB。BFILE:可以在數(shù)據(jù)庫(kù)列中存儲(chǔ)一個(gè)Oracle目錄對(duì)象操作系統(tǒng)目錄的一個(gè)指針和一個(gè)文件名,并讀取這個(gè)文件。只讀方式訪問數(shù)據(jù)庫(kù)效力器上可用的操作系統(tǒng)文件。BLOB:Oracle 10g后允許存儲(chǔ)(4GB)*(數(shù)據(jù)庫(kù)塊大小)字節(jié)的數(shù)據(jù)。包含不需求進(jìn)展字符集轉(zhuǎn)換的“二進(jìn)制數(shù)據(jù),如電子表格、字處置文檔、圖像文件等。CLOB:包含要進(jìn)展字符集轉(zhuǎn)換的信息,適宜存儲(chǔ)純文本信息。NCLOB

10、:存儲(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等是在前面類型的根底上實(shí)現(xiàn)的,同義詞。2.2.3 常用函數(shù)日期型DATE類型數(shù)據(jù)的表示方式:在缺省情況下,運(yùn)用美國(guó)式日期格式表示法,即DDMONYY,并且沒有時(shí)間信息,如04Apr05。其他的格式表示法需求經(jīng)過設(shè)定會(huì)話參數(shù)或者運(yùn)用日期轉(zhuǎn)換函數(shù)完成。如 TO_CHAR(SYSDAT

11、E, YYYY/MM/DD HI24:MI:SS) 來顯示一切的年月日、時(shí)分秒信息。當(dāng)前時(shí)間假設(shè)為 2007年5月24日下午3點(diǎn)12分45秒,上面的函數(shù)前往字符串2007/05/24 15:12:452.2.3 常用函數(shù)數(shù)值型對(duì)于數(shù)值型,通常的+ - * /等算術(shù)運(yùn)算符都可以運(yùn)用數(shù)值型函數(shù)是對(duì)數(shù)值進(jìn)展操作的函數(shù),包括我們常見的各種數(shù)學(xué)函數(shù),如sin, cos等。下面兩個(gè)函數(shù)是比較特別和有用的。符號(hào)函數(shù)SIGN(x):-1,x0。四舍五入函數(shù):xCEILFLOORROUNDTRUNC2.332222.63232-2.3-2-3-2-2-2.6-2-3-3-22.2.3 常用函數(shù)字符型字符型的銜接

12、運(yùn)算符是 | ,可以將兩個(gè)字符串銜接在一同。ASCII轉(zhuǎn)換:ASCII,CHR大小寫:UPPER,LOWER,INITCAP查找/交換:INSTR,REPLACE長(zhǎng)度:LENGTH填充/移除:LPAD,RPAD,TRIM取子串:SUBSTR2.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)向后或向前推假設(shè)干天。SYSDATE:前往系統(tǒng)當(dāng)前時(shí)間。此函數(shù)不用寫括號(hào)。其他日期型函數(shù)大多用來進(jìn)展不規(guī)那么的日期運(yùn)算,如:MONTHS_BETWEEN:計(jì)算兩個(gè)日期之間相差的月份ADD_MONTHS:日期加上月份。2.2.3 常用函數(shù)日期型NEXT_DAY:下一個(gè)特定的日期,如星期幾。LAST_DAY:前往月份的最后一天。ROUND和TRUNC函數(shù)也能對(duì)日期類型進(jìn)展計(jì)算,按照規(guī)定的格式符四舍五入或者截?cái)?/p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論