日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

游標(biāo)

 印度阿三17 2019-11-15

1 --游標(biāo)知識點(diǎn) 2 --1、 在SELECT 語句中使用DISTINCT、 GROUP BY、 HAVING UNION 語句時(shí), 游標(biāo)將自動設(shè)定INSENSITIVE 選項(xiàng)。 3 --2、SCROLL 表明所有的提取操作(如FIRST、 LAST、 PRIOR、 NEXT、 RELATIVE、 ABSOLUTE)都可用。如果不使用該保留字,那么只能進(jìn)行NEXT 提取操作。 4 --例8.4.1: 游標(biāo)演示 5 declare c_cursor scroll cursor for 6 select * from student 7 open c_cursor 8 fetch last from c_cursor 9 fetch prior from c_cursor 10 fetch absolute 2 from c_cursor 11 fetch relative 2 from c_cursor 12 fetch relative -2 from c_cursor 13 fetch first from c_cursor 14 fetch prior from c_cursor 15 fetch next from c_cursor 16 fetch c_cursor 17 close c_cursor 18 deallocate c_cursor 19 --例8.4.2 定義一個(gè)查詢?nèi)啃铡皬垺钡膶W(xué)生姓名的游標(biāo),并使用FETCH NEXT逐個(gè)提取這些行。 20 declare sname_cur1 cursor for 21 select sname from student 22 where sname like '張%' 23 open sname_cur1 24 fetch next from sname_cur1 25 WHILE @@FETCH_STATUS = 0 26 BEGIN 27 FETCH NEXT FROM Sname_cur1 28 END 29 CLOSE Sname_cur1 30 DEALLOCATE Sname_cur1 31 --例8.4.3 定義一個(gè)查詢?nèi)啃铡皬垺钡膶W(xué)生姓名和所在系的游標(biāo),但將FETCH語句的輸出保存在局部變量中,而不是直接返回給客戶端。用PRINT語句將變量組合成一個(gè)字符串,字符串形式為:系名+“學(xué)生:”+學(xué)生姓名。 32 DECLARE @sname varchar(10), @dept varchar(30) 33 DECLARE Sname_cur2 CURSOR FOR 34 SELECT Sname, Sdept FROM Student 35 WHERE Sname LIKE '張%' 36 ORDER BY Sage 37 OPEN Sname_cur2 38 FETCH NEXT FROM Sname_cur2 INTO @sname, @dept 39 WHILE @@FETCH_STATUS = 0 40 BEGIN 41 PRINT @dept '學(xué)生: ' @sname 42 FETCH NEXT FROM Sname_cur2 INTO @sname, @dept 43 END 44 CLOSE Sname_cur2 45 DEALLOCATE Sname_cur2 46 --例8.4.4 聲明查詢計(jì)算機(jī)系學(xué)生姓名、選的課程名和成績的游標(biāo),并將游標(biāo)內(nèi)容按成績降序排序。 47 DECLARE CS_cursor SCROLL CURSOR FOR 48 SELECT Sname, Cname, Grade FROM Student S 49 JOIN SC ON S.Sno = SC.Sno 50 JOIN Course C ON C.Cno = SC.Cno 51 WHERE Sdept = 'cs' 52 ORDER BY Grade DESC 53 OPEN CS_cursor 54 fetch last from cs_cursor 55 CLOSE CS_cursor 56 DEALLOCATE CS_cursor 57 --例8.4.5 生成顯示如下報(bào)表形式的游標(biāo):報(bào)表首先列出一門課程的課程號和課程名(只針對有人選的課程),然后在此課程下列出選了此門課程且成績大于等于80的學(xué)生姓名、所在系和此門課程的考試成績;然后再列出下一門課程的課程號和課程名,然后在此課程下列出選了此門課程且成績大于等于80的學(xué)生姓名、所在系和此門課程的考試成績;依此類推,直到列出全部課程。 58 declare show_course cursor for 59 select cno, cname 60 from course c 61 where cno in (select cno from sc) 62 order by cno 63 open show_course 64 declare @cno char(10), @cname char(20) 65 fetch next from show_course into @cno, @cname 66 while @@FETCH_STATUS = 0 67 begin 68 print @cno ' ' @cname 69 print '--------------' 70 declare show_student cursor for 71 select sname, sdept, grade 72 from student s, course c, sc 73 where s.sno = sc.sno and c.cno = sc.cno and c.cno = @cno and grade >= 80 74 open show_student 75 declare @sname char(10), @sdept char(10), @grade int 76 fetch next from show_student into @sname, @sdept, @grade 77 while @@fetch_status = 0 78 begin 79 print @sname ' ' @sdept ' ' convert(varchar(10), @grade)--注意類型轉(zhuǎn)換 80 fetch next from show_student into @sname, @sdept, @grade 81 end 82 close show_student 83 deallocate show_student 84 fetch next from show_course into @cno, @cname 85 end 86 close show_course 87 deallocate show_course 88 --例:把年齡為20歲的第三個(gè)學(xué)生的年齡改為18。 89 declare c scroll cursor for 90 select sno,sage from student 91 where sage=20 92 open c 93 fetch absolute 3 from c 94 update student 95 set sage=18 96 where current of c 97 close c 98 deallocate c 99 --違反了 PRIMARY KEY 約束“PK_student”。不能在對象“dbo.student”中插入重復(fù)鍵。重復(fù)鍵值為 (200515006)。 100 101 --例:把年齡為20歲的第五個(gè)學(xué)生從學(xué)生表中刪除。 102 declare delete_s scroll cursor for 103 select * 104 from student s 105 where sage = 20 106 open delete_s 107 fetch absolute 5 from delete_s 108 delete 109 from student 110 where current of delete_s 111 close delete_s 112 deallocate delete_s 113 --CURRENT OF cursor_name: 114 --表示當(dāng)前游標(biāo)指針?biāo)傅漠?dāng)前行數(shù)據(jù)。CURRENT OF 只能在UPDATE和DELETE語句中使用。

?

來源:https://www./content-4-560051.html

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多