數(shù)據(jù)庫(kù)應(yīng)用技術(shù) 嵌入式SQL簡(jiǎn)介.ppt

數(shù)據(jù)庫(kù)應(yīng)用技術(shù) 嵌入式SQL簡(jiǎn)介.ppt

ID:52243162

大?。?4.50 KB

頁(yè)數(shù):12頁(yè)

時(shí)間:2020-04-03

數(shù)據(jù)庫(kù)應(yīng)用技術(shù) 嵌入式SQL簡(jiǎn)介.ppt_第1頁(yè)
數(shù)據(jù)庫(kù)應(yīng)用技術(shù) 嵌入式SQL簡(jiǎn)介.ppt_第2頁(yè)
數(shù)據(jù)庫(kù)應(yīng)用技術(shù) 嵌入式SQL簡(jiǎn)介.ppt_第3頁(yè)
數(shù)據(jù)庫(kù)應(yīng)用技術(shù) 嵌入式SQL簡(jiǎn)介.ppt_第4頁(yè)
數(shù)據(jù)庫(kù)應(yīng)用技術(shù) 嵌入式SQL簡(jiǎn)介.ppt_第5頁(yè)
資源描述:

《數(shù)據(jù)庫(kù)應(yīng)用技術(shù) 嵌入式SQL簡(jiǎn)介.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、嵌入式SQL簡(jiǎn)介SQL的兩種使用方式:自含式嵌入式將SQL嵌入到宿主語(yǔ)言中使用必須解決的問(wèn)題:如何區(qū)分宿主語(yǔ)言的語(yǔ)句和SQL的語(yǔ)句,并能將嵌入有SQL的宿主語(yǔ)言源程序編譯成為可執(zhí)行代碼。宿主語(yǔ)言與數(shù)據(jù)庫(kù)管理系統(tǒng)之間如何進(jìn)行通信,使得SQL語(yǔ)句中能夠使用宿主語(yǔ)言的變量。如何協(xié)調(diào)宿主語(yǔ)言的單記錄處理方式和SQL集合處理方式之間的差異。如何進(jìn)行宿主語(yǔ)言與SQL之間數(shù)據(jù)類型的轉(zhuǎn)換。1第3章結(jié)構(gòu)化查詢語(yǔ)言SQL嵌入式SQL的說(shuō)明語(yǔ)句為了能夠區(qū)分C語(yǔ)言的語(yǔ)句和SQL的語(yǔ)句,規(guī)定SQL的語(yǔ)句前面加上標(biāo)識(shí)“EX

2、ECSQL”,語(yǔ)句的結(jié)尾加上分號(hào)“;”作為語(yǔ)句的結(jié)束標(biāo)識(shí)。C語(yǔ)言和SQL之間的數(shù)據(jù)通信通過(guò)宿主變量來(lái)實(shí)現(xiàn)。宿主變量是SQL中能夠引用的C語(yǔ)言變量。宿主變量需要使用帶有標(biāo)識(shí)“EXECSQL”的說(shuō)明語(yǔ)句說(shuō)明。在SQL中引用宿主變量時(shí),在宿主變量前面需加上一個(gè)冒號(hào)“:”作為標(biāo)識(shí),以區(qū)別于數(shù)據(jù)庫(kù)中的變量(如屬性名)。在C語(yǔ)言的語(yǔ)句中,宿主變量與其他變量同樣使用。宿主變量的類型按照C語(yǔ)言的數(shù)據(jù)類型定義,如果與數(shù)據(jù)庫(kù)中的數(shù)據(jù)類型不一致,則由數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行轉(zhuǎn)換。對(duì)C語(yǔ)言而言,通常不允許把宿主變量定義為數(shù)組

3、或結(jié)構(gòu)類型。2第3章結(jié)構(gòu)化查詢語(yǔ)言SQL嵌入式SQL的說(shuō)明語(yǔ)句舉例〖例3-33〗在C語(yǔ)言中對(duì)SQL用到的宿主變量說(shuō)明語(yǔ)句的例子:EXECSQLBEGINDECLARESECTION;charSNO[9];charNAME[9];charCNO[6];floatGRADE;EXECSQLENDDECLARESECTION;3第3章結(jié)構(gòu)化查詢語(yǔ)言SQL嵌入式SQL的可執(zhí)行語(yǔ)句游標(biāo):在嵌入式SQL中,把存放查詢結(jié)果的區(qū)域及其相應(yīng)的數(shù)據(jù)結(jié)構(gòu)或者指示已取元組位置的指示器稱為游標(biāo)。游標(biāo)操作語(yǔ)句:定義游標(biāo)語(yǔ)句

4、:EXECSQLDECLARE<游標(biāo)名>CURSORFOR;打開(kāi)游標(biāo)語(yǔ)句:EXECSQLOPEN<游標(biāo)名>推進(jìn)游標(biāo)語(yǔ)句:EXECSQLFETCH<游標(biāo)名>INTO<宿主變量1>,<宿主變量2>,...;關(guān)閉游標(biāo)語(yǔ)句:EXECSQLCLOSE<游標(biāo)名>;4第3章結(jié)構(gòu)化查詢語(yǔ)言SQL不用游標(biāo)的DML語(yǔ)句查詢結(jié)果為單個(gè)元組的SELECT語(yǔ)句:EXECSQLSELECT<目標(biāo)列>INTO<宿主變量1>,<宿主變量2>,...FROM<基本表名或視圖名>[WHERE<條件表達(dá)式>];功

5、能:從指定的基本表或視圖中找到符合條件的元組,并把查詢結(jié)果存放到指定的宿主變量中。注意:宿主變量前面要加上前綴標(biāo)識(shí)冒號(hào)“:”,以區(qū)別于屬性名等數(shù)據(jù)庫(kù)中的變量;宿主變量要在主程序中定義并用SQL的DECLARE語(yǔ)句加以說(shuō)明。其他不需要使用游標(biāo)的UPDATE語(yǔ)句、DELETE語(yǔ)句和INSERT語(yǔ)句。只要按照規(guī)定加上前綴標(biāo)識(shí)“EXECSQL”和結(jié)束標(biāo)識(shí)“;”或“END_EXEC”,并且在引用宿主變量時(shí)加上前綴標(biāo)識(shí)“:”,就能夠嵌入C語(yǔ)言或其他宿主語(yǔ)言中使用。5第3章結(jié)構(gòu)化查詢語(yǔ)言SQL不用游標(biāo)的DML

6、語(yǔ)句舉例〖例3-34〗根據(jù)宿主變量givensno的值在基本表S中查詢?cè)搶W(xué)生的姓名、性別、年齡和系別。EXECSQLSELECT姓名,年齡,性別,系別INTO:sname,:sage,::ssex,departmentFROMSWHERES.學(xué)號(hào)=:givensno;6第3章結(jié)構(gòu)化查詢語(yǔ)言SQL不用游標(biāo)的DML語(yǔ)句舉例〖例3-35〗把基本表S中計(jì)算機(jī)科學(xué)與工程系學(xué)生的年齡加上宿主變量raise的值。EXECSQLUPDATESSET年齡=年齡+:raiseFROMSWHERES.系別=‘計(jì)算機(jī)科

7、學(xué)與工程系’;7第3章結(jié)構(gòu)化查詢語(yǔ)言SQL不用游標(biāo)的DML語(yǔ)句舉例〖例3-36〗根據(jù)宿主變量dept中所給出的系名,刪除該系所有學(xué)生在基本表SC中的選課記錄。EXECSQLDELETEFROMSCWHERE:dept=(SELECT系別FROMSWHERES.學(xué)號(hào)=SC.學(xué)號(hào));8第3章結(jié)構(gòu)化查詢語(yǔ)言SQL不用游標(biāo)的DML語(yǔ)句舉例〖例3-37〗把一名新生的記錄插入基本表S中,該生的簡(jiǎn)況由一組宿主變量givensnosname、sage、ssex、department給出。EXECSQLINSER

8、TINTOS(學(xué)號(hào),姓名,年齡,性別,系別)VALUES(:givensno,:sname,:sage,:ssex,:department)9第3章結(jié)構(gòu)化查詢語(yǔ)言SQL使用游標(biāo)的DML語(yǔ)句舉例〖例3-38〗根據(jù)宿主變量dept中所給出的系名,查詢?cè)撓邓袑W(xué)生在基本表S中的全部信息。EXECSQLDECLAREstudentCURSORFORSELECT學(xué)號(hào),姓名,年齡,性別,系別FROMSWHERE系別=:dept;EXECSQLOPENstudent;while<條件表達(dá)式>{EXECSQLF

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。