南昌大學(xué)計(jì)算機(jī)數(shù)據(jù)庫(kù)實(shí)驗(yàn)七Transact和游標(biāo)實(shí)驗(yàn)_第1頁(yè)
南昌大學(xué)計(jì)算機(jī)數(shù)據(jù)庫(kù)實(shí)驗(yàn)七Transact和游標(biāo)實(shí)驗(yàn)_第2頁(yè)
南昌大學(xué)計(jì)算機(jī)數(shù)據(jù)庫(kù)實(shí)驗(yàn)七Transact和游標(biāo)實(shí)驗(yàn)_第3頁(yè)
南昌大學(xué)計(jì)算機(jī)數(shù)據(jù)庫(kù)實(shí)驗(yàn)七Transact和游標(biāo)實(shí)驗(yàn)_第4頁(yè)
南昌大學(xué)計(jì)算機(jī)數(shù)據(jù)庫(kù)實(shí)驗(yàn)七Transact和游標(biāo)實(shí)驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(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í)驗(yàn)七 Transact-SQL程序設(shè)計(jì)(2學(xué)時(shí))學(xué)號(hào):6100410235 姓名:鄭俊 班級(jí):計(jì)科103班 實(shí)驗(yàn)日期:2012-12-061實(shí)驗(yàn)?zāi)康模?) 掌握Transact-SQL的數(shù)據(jù)類型、常量變量、表達(dá)式等的概念和使用方法。(2) 掌握程序中注釋的基本概念和使用方法。(3) 掌握程序中的流程控制語(yǔ)句的使用方法。(4) 掌握SQL Server 2005中常用函數(shù)的用法。(5) 掌握游標(biāo)的概念和聲明方法,以及使用游標(biāo)進(jìn)行數(shù)據(jù)的查詢、修改、刪除操作等。2實(shí)驗(yàn)內(nèi)容(1) 選擇student_db數(shù)據(jù)庫(kù),輸入以下T-SQL代碼。DECLARE stu_name varchar(10)SELE

2、CT stu_name=姓名FROM student_infoWHERE 姓名 LIKE '張%'SELECT stu_name觀察顯示的結(jié)果,與student_info表中數(shù)據(jù)進(jìn)行比較,stu_name賦值的是SELECT結(jié)果集中的哪個(gè)數(shù)據(jù)?(2) 定義int型局部變量grademax、grademin、gradesum,在grade表中查找最高分、最低分和總分,分別賦給grademax、grademin和gradesum,并顯示。(3) 使用SET命令將某個(gè)查詢結(jié)果集記錄數(shù)目賦值給int型局部變量row。(4) 以下代碼在curriculum表中插入新記錄: DECLARE

3、 intCId int,intErrorCode intINSERT INTO curriculum(課程編號(hào),課程名稱,學(xué)分)VALUES('0006','VB程序設(shè)計(jì)',2) SELECT intCId=identity,intErrorCode=errorSELECT intCId,intErrorCode將該代碼段連續(xù)執(zhí)行兩次,觀察兩次顯示的信息及curriculum表中數(shù)據(jù)的變化,為什么前后兩次執(zhí)行時(shí)顯示的信息會(huì)不同?第一次:第二次:(5) 在student_db數(shù)據(jù)庫(kù)的student_info表中,以“性別”為分組條件,分別統(tǒng)計(jì)男生和女生人數(shù)。(6)

4、 在grade表中,使用適當(dāng)函數(shù)找出“高等數(shù)學(xué)”課程的最高分、最低分和平均分。(7) 定義一個(gè)datetime型局部變量studate,以存儲(chǔ)當(dāng)前日期。計(jì)算student_info表中的學(xué)生的年齡,并顯示學(xué)生的姓名、年齡。(8) 運(yùn)行以下代碼,寫出運(yùn)行結(jié)果。DECLARE a int,b intSET a=168SET b=73SELECT a & b,a|b,ab(9) 在局部變量stu_id中存儲(chǔ)了學(xué)號(hào)值。編寫代碼查詢學(xué)號(hào)為0001的學(xué)生的各科平均成績(jī),如果平均分³60,則顯示“你的成績(jī)及格了,恭賀你 !”,否則顯示“你的成績(jī)不及格”。(10) 運(yùn)行以下代碼段,寫出運(yùn)行的

5、結(jié)果。DECLARE counter intSET counter=1WHILE counter<10BEGINSELECT 'counter的值現(xiàn)在為: '+CONVERT(CHAR(2),counter)SET counter=counter+1END(11) 查詢grade表。如果分?jǐn)?shù)大于等于90,顯示A; 如果分?jǐn)?shù)大于等于80小于90,顯示B;如果分?jǐn)?shù)大于等于70小于80,顯示C;如果分?jǐn)?shù)大于等于60小于70,顯示D; 其他顯示E。(12) 計(jì)算grade表的分?jǐn)?shù)列的平均值。如果小于80,則分?jǐn)?shù)增加其值的5%;如果分?jǐn)?shù)的最高值超過95,則終止該操作。(13) 在s

6、tudent_db數(shù)據(jù)庫(kù)中,使用游標(biāo)查詢數(shù)據(jù)。 聲明一個(gè)stu_cursor游標(biāo),要求返回student_info表中性別為“男”的學(xué)生記錄,且該游標(biāo)允許前后滾動(dòng)和修改。 打開stu_cursor游標(biāo)。 獲取并顯示所有數(shù)據(jù)。 關(guān)閉該游標(biāo)。(14) 使用游標(biāo)修改數(shù)據(jù)。 打開stu_cursor游標(biāo)。 將姓馬的男同學(xué)的出生日期的年份加1。 關(guān)閉stu_cursor游標(biāo)。(15) 聲明游標(biāo)變量stu_c,使之關(guān)聯(lián)stu_cursor游標(biāo),利用stu_c查詢年齡在69月份出生的學(xué)生信息。declare stu_c cursor set stu_c=stu_cursordeclare stu_id ch

7、ar(4),stu_name char(8),stu_sex char(2),stu_age int,stu_depa nchar(1),stu_bdate datetimeopen stu_cfetch next from stu_c into stu_id,stu_name,stu_sex,stu_depa,stu_age,stu_bdatewhile FETCH_STATUS=0begin select stu_id as sno,stu_name as sname,stu_sex as sex,stu_depa as sdept,stu_age as sage,stu_bdate as

8、 birthdayfrom student_info where month(stu_bdate)>=6 and month(stu_bdate)<=9fetch next from stu_c into stu_id,stu_name,stu_sex,stu_depa,stu_age,stu_bdateendclose stu_cdeallocate stu_c(16) 使用系統(tǒng)存儲(chǔ)過程sp_cursor_list顯示在當(dāng)前作用域內(nèi)的游標(biāo)及其屬性。DECLARE Report CURSOREXEC master.dbo.sp_cursor_list cursor_return =

9、 Report OUTPUT, cursor_scope =2FETCH NEXT from ReportCLOSE ReportDEALLOCATE Report3實(shí)驗(yàn)思考(1) Transact-SQL語(yǔ)言的運(yùn)算符主要有哪些? 答:算術(shù)運(yùn)算符,賦值運(yùn)算符,位運(yùn)算符,比較運(yùn)算符,邏輯運(yùn)算符,字符串串聯(lián) 運(yùn)算符。(2) 流程控制語(yǔ)句與其他編程語(yǔ)言提供的語(yǔ)句有何差別? 答: BEGINEND也是流程控制語(yǔ)句需要用到的最基本關(guān)鍵字,用于將多個(gè)語(yǔ)句劃分成邏輯上的一部分。其實(shí)可以直接理解成Delphi的begin.end 或者C類語(yǔ)言的,用于按塊(block)順次執(zhí)行多條語(yǔ)句 IF.ELSE關(guān)鍵字實(shí)現(xiàn)

10、了非此既彼的邏輯。和高級(jí)語(yǔ)言中的IF.ELSE具有完全一樣的使用方法 在T-SQL的流程控制語(yǔ)句中,循環(huán)語(yǔ)句只有WHILE循環(huán),并沒有傳統(tǒng)高級(jí)語(yǔ)言的FOR和SWITCH循環(huán)。WHILE除了被用于流程控制語(yǔ)句的循環(huán)之外,還經(jīng)常被用于游標(biāo)之中。 WHILE關(guān)鍵字和高級(jí)語(yǔ)言中的WHILE關(guān)鍵字幾乎完全一樣。WHILE循環(huán)中可以利用BREAK和CONTINUE關(guān)鍵字對(duì)循環(huán)進(jìn)行控制。(3) 區(qū)分局部變量與全局變量的不同,思考全局變量的用處。答:全局變量是在所有函數(shù)之外聲明的變量,局部變量則是在函數(shù)體內(nèi)聲明的變量。全局變量放在內(nèi)存的全程數(shù)據(jù)區(qū),局部變量在棧上申請(qǐng)。全局?jǐn)?shù)據(jù)區(qū)分為兩部分全局?jǐn)?shù)據(jù)區(qū)和靜態(tài)數(shù)據(jù)區(qū),靜態(tài)數(shù)據(jù)區(qū)專門存放static變量。static的全局變量只在該文件范圍內(nèi)可見,不能用extern聲明為外部變

溫馨提示

  • 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)論