【正文】
,50)。,39。insert into sc values(39。239。20021512239。,88)。,39。insert into sc values(39。239。20021512139。,92)。,39。 /*編一“級聯(lián)插入”觸發(fā)器可解決先修課程cpno后錄入問題*/向選修表插入數(shù)據(jù)insert into sc values(39。 where o=39。update course set cpno=39。 where o=39。update course set cpno=39。 where o=39。update course set cpno=39。639。C語言39。739。, null,2)。,39。insert into course values(39。數(shù)據(jù)結(jié)構(gòu)39。539。,null,3)。,39。insert into course values(39。139。信息系統(tǒng)39。339。, null,2)。,39。insert into course values(39。數(shù)據(jù)庫39。139。)。,19,39。,39。,39。insert into student values(39。MA39。女39。王敏39。20021512339。)。,19,39。,39。,39。insert into student values(39。CS39。男39。李勇39。20021512139。建立選修表結(jié)構(gòu)create table sc(sno char(9), 學(xué)號 o char(4), 課號 grade decimal(5,1) check(grade between 0 and 100), 成績 primary key(sno,o), foreign key(sno) references student(sno) on delete cascade on update cascade, foreign key(o) references course(o) on update cascade 省略on delete短語為no action方式)。男39。女39。男39。student39。男39。女39。男39。student39。course39。sc39。D:\SQL2000DB\39。D:\SQL2000DB\39。) IS NOT NULL 若數(shù)據(jù)庫ST已存在, DROP DATABASE ST 則刪除。use masterIF DB_ID(N39。EXEC sp_helptext P4_所有系學(xué)生學(xué)分運行結(jié)果: 對象備注已加密。調(diào)用臨時存儲過程,查看數(shù)據(jù)庫ST的所有視圖:EXECUTE 查看庫視圖 [6_9] 查看未加密存儲過程“P3_某系學(xué)生學(xué)分”及加密存儲過程“P4_所有系學(xué)生學(xué)分”的文本。) IS NOT NULL DROP PROCEDURE 查看庫視圖GO CREATE PROCEDURE 查看庫視圖AS select * from where type=39。,39。USE tempdbIF OBJECT_ID(39。student39。P39。sp_某表所有索引39。 [6_7] 建立一個用戶定義的系統(tǒng)存儲過程“sp_查某表索引”:查詢某表的所有索引,包括表名和索引名。)) group by sno having count(sno)=3 and avg(grade)=75)運行以上程序建立存儲過程:P5_某系學(xué)士名單調(diào)用存儲過程:EXECUTE P5_某系學(xué)士名單 39。,39。,39。) DROP PROCEDURE P5_某系學(xué)士名單GO CREATE PROCEDURE P5_某系學(xué)士名單 x char(2) 輸入?yún)?shù)WITH ENCRYPTIONASselect *from studentwhere sdept=x and sno in (select sno from sc where grade=60 and o in (select o from course where ame in(39。set nocount onuse stIF EXISTS(SELECT name FROM sysobjects WHERE name = 39。3門學(xué)位課程,每門學(xué)位課必須及格且學(xué)位課平均成績在75分以上。,39。,39。 EXECUTE P3_某系學(xué)生學(xué)分 dn 調(diào)用存儲過程 SET i=i+1 ENDEND運行以上程序建立存儲過程:P4_所有系學(xué)生學(xué)分調(diào)用存儲過程:EXECUTE P4_所有系學(xué)生學(xué)分[6_5] 學(xué)士學(xué)位授予條件為:至少選修了39。) DROP PROCEDURE P4_所有系學(xué)生學(xué)分GO CREATE PROCEDURE P4_所有系學(xué)生學(xué)分 無參過程 WITH ENCRYPTIONASBEGIN DECLARE i int,n int,dn char(2) DECLARE deptTableVar TABLE 定義臨時表變量 (no int identity(1,1) not null, Dept char(20)) INSERT deptTableVar(Dept) SELECT DISTINCT sdept FROM student 將學(xué)生表中的系名插入臨時表中 SELECT n=COUNT(*) FROM deptTableVar 統(tǒng)計系總數(shù) SET i=1 WHILE I=n BEGIN SELECT dn=dept FROM deptTableVar WHERE no=i 取第i個系名存入變量dn PRINT rtrim(dn)+39。Set nocount onUSE STIF EXISTS(SELECT name FROM sysobjects WHERE name = 39。運行結(jié)果:學(xué)號 姓名 學(xué)分 200215121 李勇 15200215122 劉晨 2200215124 張立 0[6_4] 建立文本加密存儲過程“P4_所有系學(xué)生學(xué)分”:查詢所有系學(xué)生的學(xué)號、姓名、學(xué)分,只有及格課程才能拿學(xué)分。) DROP PROCEDURE P3_某系學(xué)生學(xué)分GO CREATE PROCEDURE P3_某系學(xué)生學(xué)分 x char(2) 輸入?yún)?shù)ASselect 學(xué)號,sname 姓名,sum(ccredit) 學(xué)分 into 學(xué)生學(xué)分 from sc inner join course on = inner join student on = where grade=60 and sdept=x group by ,snameinsert into 學(xué)生學(xué)分(學(xué)號,姓名) 沒有學(xué)分的學(xué)生其學(xué)分為0 select sno,sname from student where sdept=x and sno not in (select 學(xué)號 from 學(xué)生學(xué)分)update 學(xué)生學(xué)分 set 學(xué)分=0 where 學(xué)分 is nullselect * from 學(xué)生學(xué)分 order by 學(xué)號drop table 學(xué)生學(xué)分運行以上程序建立存儲過程:P3_某系學(xué)生學(xué)分存儲過程調(diào)用:EXECUTE P3_某系學(xué)生學(xué)分 39。set nocount onuse stIF EXISTS(SELECT name FROM sysobjects WHERE name = 39。運行結(jié)果:學(xué)號 姓名 學(xué)分 200215121 李勇 15200215122 劉晨 2[6_3] 建立存儲過程“P3_某系學(xué)生學(xué)分”:查詢某系學(xué)生的學(xué)號、姓名、學(xué)分,只有及格課程才能拿學(xué)分。) DROP PROCEDURE P2_某系學(xué)生學(xué)分GO CREATE PROCEDURE P2_某系學(xué)生學(xué)分 x char(2) 輸入?yún)?shù)AS select 學(xué)號,sname 姓名,sum(ccredit) 學(xué)分 from sc inner join course on = inner join student on = where grade=60 and sdept=x group by ,sname運行以上程序建立存儲過程:P2_某系學(xué)生學(xué)分存儲過程調(diào)用:EXECUTE P2_某系學(xué)生學(xué)分 39。USE STIF EXISTS(SELECT name FROM sysobjects WHERE name = 39。3.能根據(jù)數(shù)據(jù)庫應(yīng)用的需要編寫有實用價值的存儲過程。三、實驗?zāi)康?1.理解建立與調(diào)用存儲過程語句的格式和功能。COMMIT TRANSACTIONSELECT * FROM student(二) 自定內(nèi)容五、出現(xiàn)的問題及解決方法實驗6 存儲過程完成以下實驗報告:《數(shù)據(jù)庫原理與應(yīng)用》實驗報告院名專業(yè)年級班級學(xué)號姓名教師成績一、實驗題目實驗6 存儲過程二、實驗環(huán)境操作系統(tǒng):Windows XP。IS39。1993121039。男39。牛得草39。20021512939。,null)。,162,39。,39。, 39。,39。)insert into student values(39。,39。))DELETE FROM student WHERE sname IN (39。,39。USE STBEGIN TRANSACTIONIF EXISTS(SELECT sname FROM student WHERE sname IN(39。李平(12345688)存款余額不足20000元,轉(zhuǎn)帳失敗!39。1234228839。1234128839。1234128839。王中華39。1234228839。李平39。1234128839。U39。存款39。select [2號課平均成績]=gradeavg[5_10] 若李平(12341288)有20000元以上,則李平向王中華(12342288)轉(zhuǎn)帳20000元。 endselect gradeavg=avg(grade) from sc where o=39。)100 break Update sc set grade=grade+5 where o=39。)70 Begin If (select max(grade)+5 from sc where o=39。Use STDeclare gradeavg decimal(5,1)While (select avg(grade) from sc where o=39。 END。0:0:539。) continue print s+str(ascii(s)) end 運行結(jié)果:字母 ASCⅡI 73a 97m 109s 115t 116u 117d 100e 101n 110t 116[5_8] 在10秒鐘內(nèi),每隔5秒查看活動數(shù)據(jù)庫文件的屬性。 and s=39。 or s=39。 and s=39。while i=n be