tj第六章SQL編程技術(shù).ppt_第1頁(yè)
tj第六章SQL編程技術(shù).ppt_第2頁(yè)
tj第六章SQL編程技術(shù).ppt_第3頁(yè)
tj第六章SQL編程技術(shù).ppt_第4頁(yè)
tj第六章SQL編程技術(shù).ppt_第5頁(yè)
已閱讀5頁(yè),還剩60頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1,第六章 SQL 編程技術(shù),2,6.1 SQL 編程基礎(chǔ),6.1.1 批處理 批處理是一個(gè)以“”為結(jié)束的語(yǔ)句集這些語(yǔ)句是作為一個(gè)組來(lái)執(zhí)行并一起提交的 腳本是一系列順序執(zhí)行的批處理腳本文件的文件類(lèi)型為 .sql 注意:不是語(yǔ)句,3,例:給出含有三個(gè)批處理的腳本,CREATE TABLE 學(xué)院 ( 學(xué)院名稱(chēng) char(12) PRIMARY KEY, 院長(zhǎng) char(8) , 學(xué)院地址 char(16) , 辦公電話 char(8) , 編制人數(shù) smallint ) GO INSERT INTO 學(xué)院 VALUES(計(jì)算機(jī)學(xué)院,劉洋,一號(hào)樓4,88889999,50) INSERT INTO 學(xué)院 VALUES(商學(xué)院,梁山,五號(hào)樓302,99998888,60) GO SELECT * FROM 學(xué)院 GO,4,6.1.2 變量,1.變量的類(lèi)型 局部變量 -以 引導(dǎo),由用戶定義.其作用域定義的轄域中. 全局變量 -以 引導(dǎo),由系統(tǒng)提供并賦值.其作用域?yàn)槿?,5,6.1.2 變量,2.變量的聲明 語(yǔ)句格式: DECLARE 變量名 數(shù)據(jù)類(lèi)型 , 變量名 數(shù)據(jù)類(lèi)型 例:聲明變量 DECLARE Name CHAR(8), Sex CHAR(2), Age SMALLINT,6,6.1.2 變量,3.變量的賦值 語(yǔ)句格式一: SET 變量名稱(chēng)=表達(dá)式 語(yǔ)句格式二: SELECT 變量名稱(chēng)=表達(dá)式 語(yǔ)句格式三: SELECT 變量名稱(chēng)=字段(或函數(shù)) FROM 表(或視圖)名 WHERE ,7,舉例,例1: DECLARE Name CHAR(8), Sex CHAR(2), Age SMALLINT SET Name=李華 SET Sex =女 SET Age=20 例2: DECLARE Name CHAR(8) SELECT Name=李華,8,舉例,例3: DECLARE Name CHAR(8), Sex CHAR(2), Age SMALLINT SELECT Name=姓名,Sex=性別, Age=YEAR(GETDATE()-YEAR(出生日期) FROM 學(xué)生 WHERE 學(xué)號(hào)=00150236 SELECT Name, Sex, Age GO,顯示結(jié)果,9,6.1.3控制流語(yǔ)句,包含條件控制語(yǔ)句、無(wú)條件轉(zhuǎn)移語(yǔ)句、循環(huán)語(yǔ)句等。,10,6.1.3控制流語(yǔ)句,.BEGIN END 功能:將一組SQL語(yǔ)句作為一個(gè)語(yǔ)句塊。 語(yǔ)句格式: BEGIN END 與IF語(yǔ)句和WHILE語(yǔ)句配合使用,11,6.1.3控制流語(yǔ)句,2.IF ELSE 語(yǔ)句 語(yǔ)句格式: IF ELSE ,12,13,舉例,USE 教學(xué)數(shù)據(jù)庫(kù) GO DECLARE gavg smallint SELECT gavg=AVG(成績(jī)) FROM 選課 WHERE 課程號(hào)=(SELECT 課程號(hào) FROM 課程 WHERE 課程名稱(chēng)=大學(xué)英語(yǔ)) IF (gavg80) PRINT 大學(xué)英語(yǔ)課程的平均成績(jī)高于80分 ELSE BEGIN PRINT 大學(xué)英語(yǔ)課程的平均成績(jī)低于80分 select 平均成績(jī):,gavg END,14,6.1.3控制流語(yǔ)句,3.循環(huán)語(yǔ)句 語(yǔ)句格式: WHILE BREAK CONTINUE,15,6.1.3控制流語(yǔ)句,16,舉例:,求出大學(xué)英語(yǔ)課程的平均成績(jī) 當(dāng)該分?jǐn)?shù)小于0分時(shí),循環(huán)做,給所有成績(jī)高于平均分的成績(jī)加分,當(dāng)最高分大于時(shí)停止加分并顯示加的分?jǐn)?shù) 該分?jǐn)?shù)(平均成績(jī))大于0分時(shí),循環(huán)停止并顯示加的分?jǐn)?shù),17,舉例,DECLARE gavg smallint,COUN smallint SET COUN=0 SELECT gavg=AVG(成績(jī)) FROM 選課 WHERE 課程號(hào)= (SELECT 課程號(hào) FROM 課程 WHERE 課程名稱(chēng)=大學(xué)英語(yǔ)) WHILE (gavggavg IF(SELECT max(成績(jī)) FROM 選課 WHERE 課程號(hào)= (SELECT 課程號(hào) FROM 課程 WHERE 課程名稱(chēng)=大學(xué)英語(yǔ))100 BREAK END PRINT COUN,18,舉例,DECLARE gavg smallint,COUN smallint SET COUN=0 SELECT gavg=AVG(成績(jī)) FROM 選課 WHERE 課程號(hào)= (SELECT 課程號(hào) FROM 課程 WHERE 課程名稱(chēng)=大學(xué)英語(yǔ)) PRINT gavg WHILE (gavggavg IF(SELECT max(成績(jī)) FROM 選課 WHERE 課程號(hào)= (SELECT 課程號(hào) FROM 課程 WHERE 課程名稱(chēng)=大學(xué)英語(yǔ))=100 BREAK ELSE SELECT gavg=AVG(成績(jī)) FROM 選課 WHERE 課程號(hào)= (SELECT 課程號(hào) FROM 課程 WHERE 課程名稱(chēng)=大學(xué)英語(yǔ)) END PRINT COUN,警告: 聚合或其它 SET 操作消除了空值。 74 (所影響的行數(shù)為 4 行) 警告: 聚合或其它 SET 操作消除了空值。 警告: 聚合或其它 SET 操作消除了空值。 (所影響的行數(shù)為 4 行) 警告: 聚合或其它 SET 操作消除了空值。 - - 2 75 (所影響的行數(shù)為 1 行),19,4. RETURN語(yǔ)句 語(yǔ)句格式: RETURN 整數(shù) 功能:無(wú)條件所在批處理、存儲(chǔ)過(guò)程或觸發(fā)器。可以返回一個(gè)整數(shù)值,6.1.3控制流語(yǔ)句,20,舉例,題目:根據(jù)給定的學(xué)號(hào)( param )檢查學(xué)生的平均成績(jī),若75,將返回狀態(tài)代碼 1,將返回狀態(tài)代碼 2。 USE 教學(xué)數(shù)據(jù)庫(kù) CREATE PROCEDURE checkavg param varchar(10) AS IF (SELECT AVG(成績(jī)) FROM 選課 WHERE 學(xué)號(hào) = param) 75 RETURN ELSE RETURN ,21,執(zhí)行存儲(chǔ)過(guò)程:,declare aa smallint exec aa=checkavg 00150236 if aa= print 小于75 else print 大于75,22,6.1.4 EXECUTE語(yǔ)句,功能:執(zhí)行函數(shù)、存儲(chǔ)過(guò)程 語(yǔ)法格式: EXECUTE output,23,6.1.5 注釋,.單行注釋 (兩個(gè)減號(hào)) .多行注釋 /* */,24,6.1.6 程序設(shè)計(jì)舉例,題目:轉(zhuǎn)帳,若帳戶的余額大于等于100元,從帳戶上支取100元,存入帳戶.否則,不執(zhí)行轉(zhuǎn)帳操作。,begin transaction update 帳戶 set 余額=余額-100 where 帳戶=A IF (SELECT 余額 from 帳戶 where 帳戶=A)=0 begin print金額不夠。轉(zhuǎn)帳失??! rollback transaction end else begin update 帳戶 set 余額=余額+100 where 帳戶=B print轉(zhuǎn)帳成功! commit transaction end,25,事務(wù)概述,事務(wù)是作為單個(gè)邏輯工作單元執(zhí)行的一系列操作。 事務(wù)的屬性(ACID) 原子性:原子工作單元 一致性:保證數(shù)據(jù)的一致性 隔離性:并發(fā)事務(wù)之間所做的修改要隔離 并發(fā)操作:幾個(gè)用戶程序同時(shí)讀寫(xiě)一個(gè)數(shù)據(jù)的情況 持久性:對(duì)系統(tǒng)的影響要持久,26,事務(wù)操作,語(yǔ)法格式: BEGIN TRANSACTION 事務(wù)開(kāi)始 COMMIT TRANSACTION 提交 ROLLBACK TRANSACTION 回滾 說(shuō)明:如果沒(méi)有明確給出BEGIN TRANSACTION語(yǔ)句,則SQL Server是將每個(gè)SQL語(yǔ)句都當(dāng)成一個(gè)事務(wù)進(jìn)行執(zhí)行,27,6.3 存儲(chǔ)過(guò)程,6.3.1存儲(chǔ)過(guò)程的概念 是一組被編譯在一起的T-SQL語(yǔ)句的集合,它們被集合在一起以完成一個(gè)特定的任務(wù)。 存儲(chǔ)過(guò)程的分類(lèi) 系統(tǒng)存儲(chǔ)過(guò)程 擴(kuò)展存儲(chǔ)過(guò)程(提供從SQL Server到外部程序的接口,以便進(jìn)行各種維護(hù)活動(dòng)) 用戶自定義的存儲(chǔ)過(guò)程,28,使用存儲(chǔ)過(guò)程的優(yōu)勢(shì),模塊化編程: 創(chuàng)建一個(gè)存儲(chǔ)過(guò)程存放在數(shù)據(jù)庫(kù)中后,就可以被其他程序反復(fù)使用。 快速執(zhí)行: 存儲(chǔ)過(guò)程第一次被執(zhí)行后,就駐留在內(nèi)存中。以后執(zhí)行就省去了重新分析、優(yōu)化、編譯的過(guò)程。 減少網(wǎng)絡(luò)通信量 有了存儲(chǔ)過(guò)程后,在網(wǎng)絡(luò)上只要一條語(yǔ)句就能執(zhí)行一個(gè)存儲(chǔ)過(guò)程。 安全機(jī)制 通過(guò)隔離和加密的方法提高了數(shù)據(jù)庫(kù)的安全性,通過(guò)授權(quán)可以讓用戶只能執(zhí)行存儲(chǔ)過(guò)程而不能直接訪問(wèn)數(shù)據(jù)庫(kù)對(duì)象。,29,6.3.2 創(chuàng)建存儲(chǔ)過(guò)程,創(chuàng)建過(guò)程語(yǔ)法格式: CREATE PROCEDURE 數(shù)據(jù)類(lèi)型,OUTPUT AS 執(zhí)行過(guò)程語(yǔ)法格式: EXECUTE或EXEC 變量=值 刪除存儲(chǔ)過(guò)程語(yǔ)法格式: DROP PROCEDURE ,30,例:檢索某個(gè)學(xué)生(學(xué)號(hào)為01111111)的成績(jī)單,包括姓名、課程名、分?jǐn)?shù)。存儲(chǔ)過(guò)程名為sc_ grade,IF EXISTS(SELECT name FROM sysobjects WHERE name=sc_grade AND type=P) DROP PROCEDURE sc_grade GO CREATE PROCEDURE sc_grade SNO CHAR(8) AS SELECT 姓名,課程名稱(chēng),成績(jī) FROM 學(xué)生 S,課程 C ,選課 SC WHERE S.學(xué)號(hào)=SC.學(xué)號(hào) AND C.課程號(hào)=SC.課程號(hào) AND S.學(xué)號(hào)=SNO GO,31,select left(name,15)+space(3) name,xtype from sysobjects where xtype in (U,PK,FK,CK,P,TR) and SUBSTRING(name,1,3)dt_,name xtype - - check_trig TR ScroeProc P t1 U PK_t1_17036CC PK t2 U 系科 U PK_系科 PK 選課1 U 選課11 U 選課 U PK_選課 PK 課程 U PK_課程 PK student U PK_student_3E PK student3 U PK_student3_4 PK checkavg P 教師 U PK_教師 PK 學(xué)生 U PK_學(xué)生 PK dtproperties U pk_dtproperties PK (所影響的行數(shù)為 24 行),32,執(zhí)行過(guò)程,EXEC sc_grade 01111111 或 EXEC sc_grade sno= 01111111 ,33,例在“教學(xué)”數(shù)據(jù)庫(kù)建立一個(gè)名為ScroeProc的存儲(chǔ)過(guò)程,它帶有兩個(gè)輸入?yún)?shù)并返回兩個(gè)輸出參數(shù)和一個(gè)返回值 。程序清單如下: USE 教學(xué) GO -存儲(chǔ)過(guò)程ScroeProc若存在,則刪除之 IF EXISTS(SELECT name FROM sysobjects WHERE name=Scroe AND type=P) DROP PROCEDURE ScroeProc GO,34,-創(chuàng)建存儲(chǔ)過(guò)程ScroeProc -輸入?yún)?shù):Dno輸入系科號(hào);Cname輸入課名 -輸出參數(shù):Avg 接受平均分 CREATE PROCEDURE ScroeProc Dno char(4),Cname varchar(30), Avg decimal OUTPUT AS /*聲明和初始化一個(gè)局部變量,用于保存系統(tǒng)函數(shù)ERROR的返回值*/ DECLARE ErrorSave int SET ErrorSave=0,35,-執(zhí)行一個(gè)選擇查詢,統(tǒng)計(jì)指定系的某門(mén)課的平均成績(jī) -通過(guò)兩個(gè)輸入?yún)?shù)接受系號(hào)和課程名稱(chēng) -通過(guò)一個(gè)輸出參數(shù)Avg接受平均分 SELECT Avg=AVG(成績(jī)) FROM 選課 sc INNER JOIN 學(xué)生 st ON sc.學(xué)號(hào)=st.學(xué)號(hào) INNER JOIN 課程 CO ON sc.課程號(hào)=co.課程號(hào) where 系科號(hào) =Dno AND 課程名稱(chēng)=Cname IF (ERROR0) SET ErrorSave=ERROR select ErrorSave,36,/*執(zhí)行一個(gè)修改查詢,將統(tǒng)計(jì)指定系的某門(mén)課的高于平均分的加1分*/ UPDATE 選課 set 成績(jī)=成績(jī)+1 where 學(xué)號(hào) in (select 學(xué)號(hào) st FROM 選課 sc INNER JOIN 學(xué)生 st ON sc.學(xué)號(hào)=st.學(xué)號(hào) INNER JOIN 課程 CO ON sc.課程號(hào)=co.課程號(hào) where 系科號(hào) =Dno AND 課程名稱(chēng)=Cname) IF (ERROR0) SET ErrorSave=ERROR RETURN ErrorSave,37,執(zhí)行存儲(chǔ)過(guò)程: /*聲明變量,用于保存返回值和輸出結(jié)果*/ DECLARE RetCode int, AvgGrade decimal /*執(zhí)行存儲(chǔ)過(guò)程,并指定輸入?yún)?shù)和輸出參數(shù)*/ EXECUTE RetCode=ScroeProc 15,數(shù)據(jù)結(jié)構(gòu), AvgGrade OUTPUT,38,- 0 (所影響的行數(shù)為 1 行) (所影響的行數(shù)為 51 行) - - 84 0 (所影響的行數(shù)為 1 行),39,6.4 數(shù)據(jù)庫(kù)觸發(fā)器,6.4.1 觸發(fā)器的概念 是一種實(shí)現(xiàn)復(fù)雜完整性約束的特殊存儲(chǔ)過(guò)程,是能夠在符合條件是自動(dòng)觸發(fā)的SQL程序。 1.觸發(fā)器的特點(diǎn) 2.觸發(fā)器的優(yōu)點(diǎn),40,6.4.1 觸發(fā)器的概念,若觸發(fā)器所依賴的表中有約束,則在執(zhí)行時(shí),約束優(yōu)于觸發(fā)器,而且如果在操作中觸發(fā)器和約束發(fā)生沖突,觸發(fā)器將不執(zhí)行。 觸發(fā)器操作是一個(gè)事務(wù)操作。,41,6.4.1 觸發(fā)器的概念,在下列情況下可以考慮使用觸發(fā)器: 強(qiáng)制比CHECK約束復(fù)雜的數(shù)據(jù)完整性 使用自定義的錯(cuò)誤信息和執(zhí)行復(fù)雜的錯(cuò)誤處理 實(shí)現(xiàn)多張表的級(jí)聯(lián)修改 比較數(shù)據(jù)庫(kù)修改前后數(shù)據(jù)的狀態(tài) 維護(hù)非規(guī)范數(shù)據(jù),42,6.4.2 創(chuàng)建觸發(fā)器,語(yǔ)法格式: CREATE TRIGGER On FOR | AFTER | INSTEAD OF INSERT| UPDATE |DELETE AS 刪除觸發(fā)器語(yǔ)法格式: DROP TRIGGER ,43,語(yǔ)句解釋?zhuān)?AFTER:指定觸發(fā)器只有在觸發(fā) SQL 語(yǔ)句中指定的所有操作都已成功執(zhí)行后才激發(fā)。所有的引用級(jí)聯(lián)操作和約束檢查也必須成功完成后,才能執(zhí)行此觸發(fā)器。 如果僅指定 FOR 關(guān)鍵字,則 AFTER 是默認(rèn)設(shè)置。 不能在視圖上定義 AFTER 觸發(fā)器。 INSTEAD OF:指定執(zhí)行觸發(fā)器而不是執(zhí)行觸發(fā) SQL 語(yǔ)句,從而替代觸發(fā)語(yǔ)句的操作。 INSERT,UPDATE,DELETE:是指定在表或視圖上執(zhí)行哪些數(shù)據(jù)修改語(yǔ)句時(shí)將激活觸發(fā)器的關(guān)鍵字。必須至少指定一個(gè)選項(xiàng)。在觸發(fā)器定義中允許使用以任意順序組合的這些關(guān)鍵字。如果指定的選項(xiàng)多于一個(gè),需用逗號(hào)分隔這些選項(xiàng)。,44,使用觸發(fā)器的限制,(1) CREATE TRIGGER 必須是批處理中的第一條語(yǔ)句,并且只能應(yīng)用到一個(gè)表中。 (2) 觸發(fā)器只能在當(dāng)前的數(shù)據(jù)庫(kù)中創(chuàng)建,但觸發(fā)器可以引用當(dāng)前數(shù)據(jù)庫(kù)的外部對(duì)象。 (3) 如果指定觸發(fā)器所有者名限定觸發(fā)器,要以相同的方式限定表名。 (4) 在同一CREATE TRIGGER語(yǔ)句中,可以為多種操作(如 INSERT 和 UPDATE)定義相同的觸發(fā)器操作。,45,使用觸發(fā)器的限制,(5) 一個(gè)表的外鍵在 DELETE、UPDATE 操作上定義了級(jí)聯(lián),不能在該表上定義 INSTEAD OF DELETE、INSTEAD OF UPDATE 觸發(fā)器。 (6) 觸發(fā)器中不允許包含以下 T-SQL 語(yǔ)句: CREATE DATABASE 、ALTER DATABASE 、LOAD DATABASE 、RESTORE DATABASE 、DROP DATABASE、LOAD LOG 、RESTORE LOG 、 DISK INIT、DISK RESIZE和RECONFIGURE,46,6.4.3觸發(fā)器的工作原理,當(dāng)觸發(fā)器被觸發(fā)時(shí),系統(tǒng)會(huì)創(chuàng)建兩個(gè)專(zhuān)用臨時(shí)表:inserted表和deleted表。這兩個(gè)表由系統(tǒng)來(lái)維護(hù),不允許用戶直接對(duì)這兩個(gè)表進(jìn)行修改(可以讀)。它們存放于內(nèi)存中,不存放在數(shù)據(jù)庫(kù)中。這兩個(gè)表的結(jié)構(gòu)總是與被該觸發(fā)器作用的表的結(jié)構(gòu)相同。觸發(fā)器工作完成后,與該觸發(fā)器相關(guān)的這兩個(gè)表也會(huì)被刪除。,47,6.4.3觸發(fā)器的工作原理,insterted表: 存放由于INSERT或UPDATE語(yǔ)句的執(zhí)行而導(dǎo)致要加到該觸發(fā)表中去的所有新行。即用于插入或更新表的新行值,在插入或更新表的同時(shí),也將其副本存入insterted表中。因此,在insterted表中的行總是與觸發(fā)表中的新行相同。,48,6.4.3觸發(fā)器的工作原理,deleted表: 存放由于DELETE或UPDATE語(yǔ)句的執(zhí)行而導(dǎo)致要從該觸發(fā)表中刪除的所有行。也就是說(shuō),把觸發(fā)表中要?jiǎng)h除或要更新的舊行移到deleted表中。因此,deleted表和觸發(fā)表不會(huì)有相同的行。,49,6.4.3觸發(fā)器的工作原理,對(duì)INSERT操作,只在insterted表中保存所插入的新行,而deleted表中無(wú)一行數(shù)據(jù)。 對(duì)于DELETE操作,只在deleted表中保存被刪除的舊行,而insterted表中無(wú)一行數(shù)據(jù)。 對(duì)于UPDATE操作,可以將它考慮為DELETE操作和INSERT操作的結(jié)果,所以在inserted表中存放著更新后的新行值,deleted表中存放著更新前的舊行值。,50,例:在學(xué)生表上創(chuàng)建觸發(fā)器reminder,若在學(xué)生表中添加、更改和刪除數(shù)據(jù),則將向客戶端顯示信息。,USE 教學(xué) IF EXISTS (SELECT name FROM sysobjects WHERE name = reminder AND type = TR) DROP TRIGGER reminder GO CREATE TRIGGER reminder ON 學(xué)生 FOR INSERT, UPDATE ,DELETE AS print 注意:學(xué)生表數(shù)據(jù)被修改。 SELECT * FROM INSERTED SELECT * FROM DELETED GO,51,insert into 學(xué)生(學(xué)號(hào),姓名) values (9999,dd),UPDATE 學(xué)生 SET 姓名=WWWW WHERE 學(xué)號(hào)=9999,delete from 學(xué)生 where 學(xué)號(hào)=9999,52,舉例:創(chuàng)建一觸發(fā)器,當(dāng)向成績(jī)表插入一記錄時(shí),檢查該記錄的學(xué)號(hào)在學(xué)生表是否存在,檢查課程號(hào)在課程表中是否存在,若有一項(xiàng)為否,則不允許插入。,Use 教學(xué) GO alter TRIGGER check_trig ON 成績(jī) for INSERT AS IF EXISTS (SELECT * FROM inserted a WHERE a.學(xué)號(hào) NOT IN (SELECT 學(xué)號(hào) FROM 學(xué)生 ) OR a.課程編號(hào) NOT IN (SELECT 課程編號(hào) FROM 課程 ) BEGIN -SELECT * FROM 成績(jī) -SELECT * FROM inserted print 違背數(shù)據(jù)的一致性! ROLLBACK TRANSACTION END SELECT * FROM 成績(jī) GO,53,insert into 成績(jī) values (3012,C6,90) SELECT * FROM 成績(jī) WHERE 課程編號(hào) LIKE %6,執(zhí)行插入操作:,insert into 成績(jī) values (5012,C6,90),服務(wù)器: 消息 547,級(jí)別 16,狀態(tài) 1,行 1 INSERT 語(yǔ)句與 COLUMN FOREIGN KEY 約束 FK_成績(jī)_學(xué)號(hào)_6B24EA82 沖突。該沖突發(fā)生于數(shù)據(jù)庫(kù) 教學(xué),表 學(xué)生, column 學(xué)號(hào)。 語(yǔ)句已終止。,54,分別刪除了成績(jī)表、課程表、學(xué)生表的聯(lián)系,insert into 成績(jī) values (5012,C6,90),55,6.2 游標(biāo)及其應(yīng)用,6.2.1 游標(biāo)的概念 如果要求每次只顯示表格中的一行,該如何處理? 這在將T-SQL嵌入到其他高級(jí)語(yǔ)言(如VC、VB、Delphi等)的編程中經(jīng)常用到。,56,6.2.1 游標(biāo)的概念,游標(biāo)(cursor)是一個(gè)存儲(chǔ)區(qū)域,用來(lái)存放結(jié)果集。游標(biāo)的指針,可以指向與它相關(guān)聯(lián)的結(jié)果集中的任意一行,以便對(duì)當(dāng)前位置的行進(jìn)行處理。 游標(biāo)提供了對(duì)一個(gè)結(jié)果集進(jìn)行逐行處理的能力: 在結(jié)果集中定位特定行 從結(jié)果集的當(dāng)前位置檢索行 支持對(duì)結(jié)果集中當(dāng)前位置的行進(jìn)行數(shù)據(jù)處理(修改/刪除),57,6.2.2 游標(biāo)的用法,聲明游標(biāo) 打開(kāi)游標(biāo) 處理數(shù)據(jù)(讀取/修改/刪除

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論