南昌大學(xué)計算機數(shù)據(jù)庫實驗七Transact和游標(biāo)實驗_第1頁
南昌大學(xué)計算機數(shù)據(jù)庫實驗七Transact和游標(biāo)實驗_第2頁
南昌大學(xué)計算機數(shù)據(jù)庫實驗七Transact和游標(biāo)實驗_第3頁
南昌大學(xué)計算機數(shù)據(jù)庫實驗七Transact和游標(biāo)實驗_第4頁
南昌大學(xué)計算機數(shù)據(jù)庫實驗七Transact和游標(biāo)實驗_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

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

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

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) 計算grade表的分?jǐn)?shù)列的平均值。如果小于80,則分?jǐn)?shù)增加其值的5%;如果分?jǐn)?shù)的最高值超過95,則終止該操作。(13) 在s

6、tudent_db數(shù)據(jù)庫中,使用游標(biāo)查詢數(shù)據(jù)。 聲明一個stu_cursor游標(biāo),要求返回student_info表中性別為“男”的學(xué)生記錄,且該游標(biāo)允許前后滾動和修改。 打開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)存儲過程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實驗思考(1) Transact-SQL語言的運算符主要有哪些? 答:算術(shù)運算符,賦值運算符,位運算符,比較運算符,邏輯運算符,字符串串聯(lián) 運算符。(2) 流程控制語句與其他編程語言提供的語句有何差別? 答: BEGINEND也是流程控制語句需要用到的最基本關(guān)鍵字,用于將多個語句劃分成邏輯上的一部分。其實可以直接理解成Delphi的begin.end 或者C類語言的,用于按塊(block)順次執(zhí)行多條語句 IF.ELSE關(guān)鍵字實現(xiàn)

10、了非此既彼的邏輯。和高級語言中的IF.ELSE具有完全一樣的使用方法 在T-SQL的流程控制語句中,循環(huán)語句只有WHILE循環(huán),并沒有傳統(tǒng)高級語言的FOR和SWITCH循環(huán)。WHILE除了被用于流程控制語句的循環(huán)之外,還經(jīng)常被用于游標(biāo)之中。 WHILE關(guān)鍵字和高級語言中的WHILE關(guān)鍵字幾乎完全一樣。WHILE循環(huán)中可以利用BREAK和CONTINUE關(guān)鍵字對循環(huán)進行控制。(3) 區(qū)分局部變量與全局變量的不同,思考全局變量的用處。答:全局變量是在所有函數(shù)之外聲明的變量,局部變量則是在函數(shù)體內(nèi)聲明的變量。全局變量放在內(nèi)存的全程數(shù)據(jù)區(qū),局部變量在棧上申請。全局?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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論