青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Prayer

在一般中尋求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

廈門大學(xué)的一個(gè)課件  備查
http://www.cs.xmu.edu.cn/education/fine_courses/database/%BE%AB%C6%B7%BF%CE%B3%CC%BD%A8%C9%E8%C4%DA%C8%DD/3_%CD%F8%C2%E7%B0%E6cai/content/index.htm


           

3. 不用游標(biāo)的嵌入式SQL語(yǔ)句應(yīng)用技術(shù)

             
 

     所謂不用游標(biāo)的SQL語(yǔ)句,是指一般不需要返回結(jié)果數(shù)據(jù),也不需要使用主變量的語(yǔ)句。它們是嵌入式SQL中最簡(jiǎn)單的一類語(yǔ)句。有以下幾種:
       · 說(shuō)明性語(yǔ)句
       · 數(shù)據(jù)定義語(yǔ)句
       · 數(shù)據(jù)控制語(yǔ)句
       · 查詢結(jié)果為單記錄的SELECT語(yǔ)句
       · 非CURRENT形式的UPDATE語(yǔ)句
       · 非CURRENT形式的DELETE語(yǔ)句
       · INSERT語(yǔ)句
    其中:

    *) 所有的說(shuō)明性語(yǔ)句、數(shù)據(jù)定義與控制語(yǔ)句都不需要使用游標(biāo),在主語(yǔ)言中嵌入說(shuō)明性語(yǔ)句、數(shù)據(jù)定義與控制語(yǔ)句,只要給語(yǔ)句加上前綴EXEC SQL和語(yǔ)句結(jié)束符即可。

    *) INSERT語(yǔ)句也不需要使用游標(biāo),但通常需要使用主變量。

    *) SELECT語(yǔ)句、UPDATE語(yǔ)句、DELETE語(yǔ)句則更復(fù)雜些。

   以下分別討論常見的幾種使用方法:
 

 一、說(shuō)明性語(yǔ)句
 

    

   交互式SQL中沒(méi)有說(shuō)明性語(yǔ)句,這里的說(shuō)明性語(yǔ)句是專為在嵌入式SQL中說(shuō)明主變量等而設(shè)置的,一對(duì)由兩條語(yǔ)句組成:
       EXEC SQL BEGIN DECLARE SECTION;
          <變量定義語(yǔ)句>
       EXEC SQL END DECLARE SECTION;

    兩條語(yǔ)句必須配對(duì)出現(xiàn),相當(dāng)于一個(gè)括號(hào),兩條語(yǔ)句中間是主變量、指示變量的說(shuō)明。
 

 
二、數(shù)據(jù)定義語(yǔ)句
 

  

例1 建立一個(gè)“學(xué)生”表Student
    EXEC SQL CREATE TABLE Student
    (Sno CHAR(5) NOT NULL UNIQUE,
    Sname CHAR(20),
    Ssex CHAR(1),
    Sage INT,
    Sdept CHAR(15));


數(shù)據(jù)定義語(yǔ)句中不允許使用主變量。例如下列語(yǔ)句是錯(cuò)誤的:
    EXEC SQL DROP TABLE :table_name;
 

 
三、數(shù)據(jù)控制語(yǔ)句
 

  

例2 把查詢Student表權(quán)限授給用戶U1
    EXEC SQL GRANT SELECT ON TABLE Student TO U1;
 

 
四、查詢結(jié)果為單記錄的SELECT語(yǔ)句
 

   

  在嵌入式SQL中,查詢結(jié)果為單記錄的SELECT語(yǔ)句需要用INTO子句指定查詢結(jié)果的存放地點(diǎn)。該語(yǔ)句的一般格式為:


EXEC SQL SELECT [ALL|DISTINCT] <目標(biāo)列表達(dá)式>[,<目標(biāo)列表達(dá)式>]...
    INTO <主變量>[<指示變量>][,<主變量>[<指示變量>]]...
    FROM <表名或視圖名>[,<表名或視圖名>] ...
    [WHERE <條件表達(dá)式>]
    [GROUP BY <列名1> [HAVING <條件表達(dá)式>]]
    [ORDER BY <列名2> [ASC|DESC]];

說(shuō)明:

   該語(yǔ)句對(duì)交互式SELECT語(yǔ)句的擴(kuò)充就是多了一個(gè)INTO子句,把從數(shù)據(jù)庫(kù)中找到的符合條件的記錄,放到INTO子句指出的主變量中去。其他子句的含義不變。使用該語(yǔ)句需要注意以下幾點(diǎn):
   *) INTO子句、WHERE子句的條件表達(dá)式、HAVING短語(yǔ)的的條件表達(dá)式中均可以使用主變量,但這些主變量必須事先加以說(shuō)明,并且引用時(shí)前面要加上冒號(hào)。
   *) 查詢返回的記錄中,可能某些列值為空值NULL,則如下處理:如果INTO子句中主變量后面跟有指示變量,則當(dāng)查詢得出的某個(gè)數(shù)據(jù)項(xiàng)為空值時(shí),系統(tǒng)會(huì)自動(dòng)將相應(yīng)主變量后面的指示變量置為負(fù)值,但不向該主變量執(zhí)行賦值操作,即主變量值仍保持執(zhí)行SQL語(yǔ)句之前的值。所以當(dāng)發(fā)現(xiàn)指示變量值為負(fù)值時(shí),不管主變量為何值,均應(yīng)認(rèn)為主變量值為NULL。指示變量只能用于INTO子句中,并且也必須事先加以說(shuō)明,引用時(shí)前面要加上冒號(hào)。
   *) 如果數(shù)據(jù)庫(kù)中沒(méi)有滿足條件的記錄,即查詢結(jié)果為空,則DBMS將SQLCODE的值置為100。
   *) 如果查詢結(jié)果實(shí)際上并不是單條記錄,而是多條記錄,則程序出錯(cuò),DBMS會(huì)在SQLCA中返回錯(cuò)誤信息。

例3 根據(jù)學(xué)生號(hào)碼查詢學(xué)生信息。假設(shè)已將要查詢的學(xué)生的學(xué)號(hào)賦給了主變量givensno


EXEC SQL SELECT Sno, Sname, Ssex, Sage, Sdept
    INTO :Hsno, :Hname, :Hsex, :Hage, :Hdept
    FROM Student
    WHERE Sno=:givensno;


上面的SELECT語(yǔ)句中Hsno, Hname, Hsex, Hage, Hdept和givensno均是主變量,并均已在前面的程序中說(shuō)明過(guò)了。

例4 查詢某個(gè)學(xué)生選修某門課程的成績(jī)。假設(shè)已將要查詢的學(xué)生的學(xué)號(hào)賦給了主變量givensno,將課程號(hào)賦給了主變量givencno


EXEC SQL SELECT Sno, Cno, Grade
    INTO :Hsno, :Hcno, :Hgrade:Gradeid
    FROM SC
    WHERE Sno=:givensno AND Cno=:givencno;

由于學(xué)生選修一門課后有可能沒(méi)有參加考試,也就是說(shuō)其成績(jī)?yōu)榭罩担晕覀冊(cè)谠摾齀NTO子句中加了指示變量Gradeid,用于指示主變量Hgrade是否為空值。指示變量也需要和所有主變量一起在前面程序中事先說(shuō)明。執(zhí)行此語(yǔ)句后,如果Gradeid小于0,則不論Hgrade為何值,均認(rèn)為該學(xué)生成績(jī)?yōu)榭罩怠?/p>


雖然對(duì)于僅返回一行結(jié)果數(shù)據(jù)的SELECT語(yǔ)句可以不使用游標(biāo),但從應(yīng)用程序獨(dú)立性角度考慮,最好還是使用游標(biāo)。因?yàn)槿绻院髷?shù)據(jù)庫(kù)改變了,該SELECT語(yǔ)句可能會(huì)返回多行數(shù)據(jù),這時(shí)不使用游標(biāo)就會(huì)出錯(cuò)。
 

 
五、非CURRENT形式的UPDATE語(yǔ)句
 

 非CURRENT形式是指特殊情況下的應(yīng)用。在這種情況下的嵌入式UPDATE語(yǔ)句中,SET子句和WHERE子句都可以使用主變量,其中SET子句中還可以使用指示變量。以下分別用幾個(gè)例子說(shuō)明它們的應(yīng)用技術(shù):


例5 將全體學(xué)生1號(hào)課程的考試成績(jī)?cè)黾尤舾煞帧<僭O(shè)增加的分?jǐn)?shù)已賦給主變量Raise
EXEC SQL UPDATE SC
    SET Grade=Grade+:Raise
    WHERE Cno='1';

該操作實(shí)際上是一個(gè)集合操作,DBMS會(huì)修改所有學(xué)生的1號(hào)課程的Grade屬性列。

例6 修改某個(gè)學(xué)生1號(hào)課程的成績(jī)。假設(shè)該學(xué)生的學(xué)號(hào)已賦給主變量givensno,修改后的成績(jī)已賦給主變量newgrade
EXEC SQL UPDATE SC
    SET Grade=:newgrade
    WHERE Sno=:givensno;

例7 將計(jì)算機(jī)系全體學(xué)生年齡置NULL值
Sageid=-1;
    EXEC SQL UPDATE Student
    SET Sage=:Raise:Sageid
    WHERE Sdept='CS';

將指示變量Sageid賦一個(gè)負(fù)值后,無(wú)論主變量Raise為何值,DBMS都會(huì)將CS系所有記錄的年齡屬性置空值。它等價(jià)于:
EXEC SQL UPDATE Student
    SET Sage=NULL
    WHERE Sdept='CS';
 

 
六、非CURRENT形式的DELETE語(yǔ)句
 

    

    與上同理,DELETE語(yǔ)句的WHERE子句中可以使用主變量指定刪除條件。


例8 某個(gè)學(xué)生退學(xué)了,現(xiàn)要將有關(guān)他的所有選課記錄刪除掉。假設(shè)該學(xué)生的姓名已賦給主變量stdname
EXEC SQL DELETE
    FROM SC
    WHERE Sno=
        (SELECT Sno
         FROM Student
         WHERE Sname=:stdname);


另一種等價(jià)實(shí)現(xiàn)方法為:


EXEC SQL DELETE
    FROM SC
    WHERE :stdname=
        (SELECT Sname
         FROM Student
         WHERE Studnet.Sno=SC.sno);

顯然第一種方法更直接,從而也更高效些。
如果該學(xué)生選修了多門課程,執(zhí)行上面的語(yǔ)句時(shí),DBMS會(huì)自動(dòng)執(zhí)行集合操作,即把他選修的所有課程都刪除掉。
 

 
七、INSERT語(yǔ)句
 

 
    INSERT語(yǔ)句的VALUES子句中可以使用主變量和指示變量。


例9 某個(gè)學(xué)生新選修了某門課程,將有關(guān)記錄插入SC表中。假設(shè)學(xué)生的學(xué)號(hào)已賦給主變量stdno,課程號(hào)已賦給主變量couno。


gradeid=-1;
EXEC SQL INSERT
    INTO SC(Sno, Cno, Grade)
    VALUES(:stdno, :couno, :gr:gradeid);


由于該學(xué)生剛選修課程,尚未考試,因此成績(jī)列為空。所以本例中用指示變量指示相應(yīng)的主變量為空值。
 

 

廈門大學(xué)計(jì)算機(jī)科學(xué)系  薛永生

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美多人爱爱视频网站| 亚洲第一色中文字幕| 亚洲国产高清一区二区三区| 国产视频在线观看一区二区三区| 欧美高清视频在线播放| 国产午夜精品一区理论片飘花| 亚洲电影有码| 在线亚洲激情| 欧美三级在线| 日韩天堂av| 亚洲精品久久久久| 国产精品福利在线观看网址| 亚洲视频在线观看视频| 久久精品五月| 国产精品美女主播在线观看纯欲| 一区二区不卡在线视频 午夜欧美不卡'| 在线不卡视频| 欧美日韩视频在线一区二区观看视频| 欧美成人中文| 性娇小13――14欧美| 在线观看欧美一区| 国产精品海角社区在线观看| 欧美有码视频| 亚洲精品一区二区三区婷婷月 | 欧美成人情趣视频| 一本色道久久综合狠狠躁篇怎么玩| 欧美视频不卡| 久久av免费一区| 99re这里只有精品6| 久久中文字幕一区| 亚洲欧美怡红院| 99国产精品99久久久久久| 国外视频精品毛片| 欧美性开放视频| 欧美激情bt| 国产精品国产自产拍高清av| 亚洲高清不卡一区| 亚洲国产一区视频| 国产精品福利在线观看网址| 国产嫩草一区二区三区在线观看 | 在线观看欧美日韩| 欧美日韩国产高清| 久久国产精品99国产精| 男女av一区三区二区色多| 在线欧美一区| 国产精品人人做人人爽| 你懂的成人av| 久久综合一区| 久久高清国产| 亚洲一区在线直播| 一区二区三区|亚洲午夜| 欧美日韩精品三区| 欧美高清不卡| 欧美aⅴ99久久黑人专区| 99精品免费视频| 欧美成黄导航| 浪潮色综合久久天堂| 亚洲欧美日韩一区二区三区在线 | 国产精品美女主播| 国产精品久久久久久久久借妻 | 久久av老司机精品网站导航| 欧美在线你懂的| 午夜一区二区三视频在线观看| 亚洲精品视频免费| av成人天堂| 一区二区三区欧美在线观看| 9色精品在线| 亚洲欧美久久久久一区二区三区| 亚洲天堂激情| 欧美在线观看视频一区二区三区 | 国产视频久久久久| 国模精品娜娜一二三区| 狠狠色丁香婷婷综合影院 | 激情五月综合色婷婷一区二区| 欧美日韩亚洲一区二区三区四区 | 久久久综合网| 伊人色综合久久天天五月婷| 国产一区二区三区四区hd| 牛牛影视久久网| 久久免费国产精品| 欧美一级一区| 久久久综合激的五月天| 久久精品首页| 亚洲国产精品久久久久秋霞蜜臀| 亚洲电影中文字幕| 欧美国产欧美亚洲国产日韩mv天天看完整| 免费成人毛片| 日韩一级大片在线| 久久久久.com| 欧美日韩一区二区三区高清| 国产目拍亚洲精品99久久精品| 国产亚洲精久久久久久| 亚洲啪啪91| 欧美影院成人| 日韩亚洲精品电影| 久久久99精品免费观看不卡| 欧美日韩黄视频| 欧美日本一区二区三区| 一区二区亚洲| 性色av一区二区三区红粉影视| 久久婷婷综合激情| 9色精品在线| 久久精品视频网| 欧美黄网免费在线观看| 欧美成人久久| 先锋a资源在线看亚洲| 久久久亚洲午夜电影| 欧美不卡在线| 国产欧美日韩精品丝袜高跟鞋 | 好看的日韩av电影| 国产在线观看91精品一区| 伊人男人综合视频网| 午夜精品美女久久久久av福利| 亚洲天堂久久| 久久看片网站| 亚洲图色在线| 老鸭窝91久久精品色噜噜导演| 欧美午夜www高清视频| 亚洲国产一区二区三区高清 | 性欧美大战久久久久久久免费观看| 亚洲一二三区在线观看| 亚洲一区二区三区免费视频| 久久丁香综合五月国产三级网站| 麻豆精品视频在线| 国产午夜久久久久| 亚洲免费中文字幕| 亚洲高清不卡一区| 久久久久久久一区二区| 国产美女扒开尿口久久久| 99精品国产高清一区二区| 亚洲激情在线观看视频免费| 久久久青草青青国产亚洲免观| 欧美不卡一区| 亚洲国产小视频在线观看| 美女网站在线免费欧美精品| 亚洲欧美激情精品一区二区| 国产精品性做久久久久久| 久久www成人_看片免费不卡| 亚洲视频1区| 欧美三日本三级少妇三2023| 一区二区激情视频| 99精品99久久久久久宅男| 欧美精品大片| 亚洲一区二区三区视频| 一区二区三区国产在线| 欧美日韩国产成人高清视频| 亚洲伦理中文字幕| 99av国产精品欲麻豆| 欧美日韩一区二区视频在线观看| 亚洲激情六月丁香| 亚洲区一区二区三区| 久久综合九色| 亚洲免费精彩视频| 在线视频日韩精品| 国产伦精品一区二区| 久久视频一区| 久久午夜色播影院免费高清| 一本高清dvd不卡在线观看| 日韩视频在线观看免费| 国产精品你懂的在线| 久久精品二区亚洲w码| 欧美一区二区三区喷汁尤物| 揄拍成人国产精品视频| 欧美成人福利视频| 欧美激情一区二区三区高清视频| 一本色道**综合亚洲精品蜜桃冫| 亚洲精品一区二区三| 韩国av一区二区| 亚洲国产精品一区二区尤物区 | 麻豆免费精品视频| 亚洲麻豆国产自偷在线| 亚洲欧美日韩在线| 久久婷婷国产综合尤物精品| 在线观看欧美日韩| 亚洲国产日日夜夜| 国产精品麻豆欧美日韩ww| 久久综合精品国产一区二区三区| 久久精品一区蜜桃臀影院| 亚洲午夜一区| 久久国产欧美日韩精品| 久久久人成影片一区二区三区观看| 欧美午夜不卡视频| 亚洲级视频在线观看免费1级| 国内精品伊人久久久久av影院| 久久这里有精品15一区二区三区| 欧美高清一区| 久久久久免费| 老牛国产精品一区的观看方式| 妖精成人www高清在线观看| 精品二区视频| 国产日韩一区欧美| 国产揄拍国内精品对白| 欧美午夜精品一区二区三区| 国产精品久久久久久妇女6080| 欧美黄色网络| 欧美日韩亚洲成人| 小处雏高清一区二区三区| 午夜激情综合网| 亚洲欧美国产高清| 午夜一区二区三区在线观看|