<sup id="kwqog"></sup>
<strike id="kwqog"></strike>
<kbd id="kwqog"></kbd>
<ul id="kwqog"><tbody id="kwqog"></tbody></ul><ul id="kwqog"><pre id="kwqog"></pre></ul>
  • <ul id="kwqog"><tbody id="kwqog"></tbody></ul>
  • 登錄
    首頁 >> 生肖星座 >> 十二生肖

    case表達(dá)式的作用

    小神仙 2023-08-11 13:28:37









    多表查詢:從多表中獲取數(shù)據(jù);









    兩個表的結(jié)構(gòu)是一樣的

    ,但是紅框的數(shù)據(jù)是不同的
    。利用表的加法將兩個表合并成一個表;


    表的加法(union)根據(jù)行合并兩個表的數(shù)據(jù)
    ,刪除重復(fù)數(shù)據(jù)









    要保留重復(fù)數(shù)據(jù),請使用union all









    1)什么是聯(lián)結(jié)



    關(guān)系是數(shù)據(jù)庫可以對應(yīng)的匹配
    ,在關(guān)系數(shù)據(jù)庫中稱為連接(join);


    連接是通過表與表之間的關(guān)系將表合并在一起的操作









    學(xué)生表-成績表 通過學(xué)號連接
    ;成績表-課程表 通過課程號連接;課程表-教師表 通過教師號聯(lián)系



    2)常見的連接方式








    ①交叉連接(笛卡爾積)


    將表中的每一行與另一行合并



    如圖:表1、表2
    、表3分別和A
    、B合并在一起;


    新表行數(shù)=表1行數(shù)*表2行數(shù)









    在實(shí)際工作中使用的交叉聯(lián)系較少
    ,結(jié)果行數(shù)過多,需要大量的運(yùn)算成本和設(shè)備的支持



    而且行數(shù)過多
    ,實(shí)際價值有限;


    但是
    ,交叉連接是后面所有連接的基礎(chǔ)
    ,其他連接是在交叉連接的基礎(chǔ)上+過濾條件。


    ②內(nèi)聯(lián)結(jié)(inner join)


    兩張表中的數(shù)據(jù)同時存在于搜索中








    內(nèi)部聯(lián)系的操作:從學(xué)生表和成績表中取出合格的行 → 交叉聯(lián)結(jié)



    內(nèi)聯(lián)SQL語句:



    ③左聯(lián)結(jié)(left join)


    找出表中左側(cè)的所有數(shù)據(jù)
    ,左連接是下圖中的紅色部分;








    左連接操作:通過學(xué)號產(chǎn)生匹配關(guān)系
    。左連接將以左表為主表
    ,讀取所有數(shù)據(jù)(學(xué)生表中的所有數(shù)據(jù)都取出)。右表只取學(xué)號相同的數(shù)據(jù)
    ,然后交叉組合



    左聯(lián)系SQL語句:



    如何連接下圖中的句子
    ,只保留紅色區(qū)域








    左聯(lián)+where句子句子








    ④右聯(lián)結(jié)(right join)


    右表中的數(shù)據(jù)全部取出,右0005左表中沒有相應(yīng)的數(shù)據(jù)
    ,顯示nulll








    右連接的操作:通過學(xué)號產(chǎn)生匹配關(guān)系
    ,讀取右表的所有數(shù)據(jù)(取出成績表的所有數(shù)據(jù)),左表只取學(xué)號相同的數(shù)據(jù)
    ,然后交叉組合并



    SQL語句右聯(lián):



    在右聯(lián)結(jié)的基礎(chǔ)上,去除重疊部分














    ⑤全聯(lián)結(jié)(full join)


    返回左表和右表的所有行
    。當(dāng)一行與另一行數(shù)據(jù)匹配時
    ,兩行合并。如果沒有匹配線
    ,則填充相應(yīng)的空值
    ,my sql不支持全聯(lián)系;














    SQL 總結(jié)聯(lián)結(jié)方式









    翻譯成白話
    ,寫出分析思路
    ,寫出相應(yīng)的sql語句;


    問題1:查詢所有學(xué)生的學(xué)號
    、姓名、選課數(shù)
    、總分


    1)學(xué)號
    、姓名(學(xué)生表) student)


    2)選課數(shù)量(每個學(xué)生選課數(shù)量:成績表score,按學(xué)號分組
    ,計算課程號)


    3)總分(每個學(xué)生總分:成績表 score
    ,按學(xué)號分組,成績求和sum)



    問題2:查詢所有平均成績大于85的學(xué)生的學(xué)號
    、姓名和平均成績


    1)查詢所有學(xué)生的學(xué)號
    、姓名和平均成績;學(xué)號
    、姓名(在學(xué)生表中)



    平均分?jǐn)?shù)(每個學(xué)生的平均分?jǐn)?shù):在分?jǐn)?shù)表中,按學(xué)號分組
    ,平均分?jǐn)?shù):avg(成績))



    2)平均成績>85



    問題3:查詢學(xué)生選課情況:學(xué)號、姓名
    、課程號
    、課程名稱


    1)學(xué)號,姓名在學(xué)生表上(student)


    2)課程編號
    ,課程名稱在課程表中(course)


    學(xué)生表格與課程表格有關(guān)
    ,需要通過成績表建立關(guān)系










    case whenthen


    whenthen


    whenthen


    ...


    else


    end


    1)case表達(dá)式的作用


    當(dāng)有多種情況需要判斷時
    ,需要使用case表達(dá)式;


    它可以幫助我們解決復(fù)雜的查詢問題
    。case表達(dá)的功能相當(dāng)于判斷每一行是否滿足某一條件的條件判斷函數(shù)



    如何滿足某一條件,操作后面的then子句
    ,如果不符合條件
    ,繼續(xù)操作when子句。如果您沒有找到合適的數(shù)據(jù)
    ,您將訪問else子句



    2)問題1:









    運(yùn)行順序:


    第一步:先操作>=60、滿意后
    ,顯示合格
    ,end;


    第二步:運(yùn)行

    Switch case 語句怎么使用

    switch case用法詳解:

    1

    、switch是“開關(guān)”的意思
    ,它也是一種“選擇”語句,但它的用法非常簡單

    2

    、switch是多分支選擇語句。說得通俗點(diǎn)
    ,多分支就是多個if

    從功能上說,switch語句和if語句完全可以相互取代

    。但從編程的角度
    ,它們又各有各的特點(diǎn),所以至今為止也不能說誰可以完全取代誰

    3

    、當(dāng)嵌套的if比較少時(三個以內(nèi)),用if編寫程序會比較簡潔
    。但是當(dāng)選擇的分支比較多時
    ,嵌套的if語句層數(shù)就會很多,導(dǎo)致程序冗長
    ,可讀性下降
    。因此C語言提供switch語句來處理多分支選擇。所以if和switch可以說是分工明確的
    。在很多大型的項目中
    ,多分支選擇的情況經(jīng)常會遇到,所以switch語句用得還是比較多的。

    4

    、switch的一般形式如下:

    switch(表達(dá)式)

    {

    case常量表達(dá)式1:語句1

    case常量表達(dá)式2:語句2

    case常量表達(dá)式n:語句n

    default:語句n+1

    }


    擴(kuò)展資料: 說明:

    1)

    、switch后面括號內(nèi)的“表達(dá)式”必須是整數(shù)類型。也就是說可以是int型變量
    、char型變量
    ,也可以直接是整數(shù)或字符常量,哪怕是負(fù)數(shù)都可以
    。但絕對不可以是實(shí)數(shù)
    ,float型變量、double型變量
    、小數(shù)常量通通不行
    ,全部都是語法錯誤。

    2)

    、switch下的case和default必須用一對大括號{}括起來

    3)、當(dāng)switch后面括號內(nèi)“表達(dá)式”的值與某個case后面的“常量表達(dá)式”的值相等時

    ,就執(zhí)行此case后面的語句
    。執(zhí)行完一個case后面的語句后,流程控制轉(zhuǎn)移到下一個case繼續(xù)執(zhí)行
    。如果你只想執(zhí)行這一個case語句
    ,不想執(zhí)行其他case,那么就需要在這個case語句后面加上break
    ,跳出switch語句

    再重申一下:switch是“選擇”語句,不是“循環(huán)”語句

    。很多新手看到break就以為是循環(huán)語句,因?yàn)閎reak一般給我們的印象都是跳出“循環(huán)”
    ,但break還有一個用法
    ,就是跳出switch。

    4)

    、若所有的case中的常量表達(dá)式的值都沒有與switch后面括號內(nèi)“表達(dá)式”的值相等的
    ,就執(zhí)行default后面的語句,default是“默認(rèn)”的意思
    。如果default是最后一條語句的話
    ,那么其后就可以不加break,因?yàn)榧热灰呀?jīng)是最后一句了
    ,則執(zhí)行完后自然就退出switch了

    5)、每個case后面“常量表達(dá)式”的值必須互不相同,否則就會出現(xiàn)互相矛盾的現(xiàn)象

    ,而且這樣寫造成語法錯誤

    6)、“case常量表達(dá)式”只是起語句標(biāo)號的作用

    ,并不是在該處進(jìn)行判斷
    。在執(zhí)行switch語句時,根據(jù)switch后面表達(dá)式的值找到匹配的入口標(biāo)號
    ,就從此標(biāo)號開始執(zhí)行下去
    ,不再進(jìn)行判斷。

    7)

    、各個case和default的出現(xiàn)次序不影響執(zhí)行結(jié)果
    。但從閱讀的角度最好是按字母或數(shù)字的順序?qū)憽?/p>

    8)、當(dāng)然你也可以不要default語句

    ,就跟if…else最后不要else語句一樣
    。但最好是加上,后面可以什么都不寫
    。這樣可以避免別人誤以為你忘了進(jìn)行default處理
    ,而且可以提醒別人switch到此結(jié)束了。

    c++ switch case 的用法

    switch (x/1000)
    {
    case 0:
    cout << x << endl;
    break;
    case 1:
    cout << x * 0.9 << endl;
    break;
    }

    說明:
    switch語句的執(zhí)行
    1

    ,對switch中的控制表達(dá)式進(jìn)行求值
    。這里是對x/1000求值,如果0<=x<1000
    ,求值結(jié)果為0
    ,如果1000<=x<2000,結(jié)果為1

    2
    ,根據(jù)控制表達(dá)式的求值結(jié)果
    ,跳轉(zhuǎn)到相應(yīng)的case入口,向后執(zhí)行
    。注意是向后執(zhí)行到整個switch語句之外
    ,而不是只執(zhí)行這一個case中包括的語句。通常只需要執(zhí)行一個case語句
    ,這需要通過goto
    ,return,break
    ,continue等語句來轉(zhuǎn)移到switch之外
    。這里用的是break語句,如果把第一個break去掉
    ,而的范圍又在0-1000之間
    ,這時不但會輸出x
    ,還會執(zhí)行下一個case語句,輸出 0.9*x


    3
    ,如果控制表達(dá)式的求值結(jié)果不等于任何的case入口,則會轉(zhuǎn)移到default語句(如果有的話
    ,沒有就結(jié)束了)
    。比如這里還可以加入一個default語句來處理x<0或x>2000的情況
    default:
    cout << "你輸入的數(shù)據(jù)不合法 " << endl;
    break;
    注意,default
    ,不一定要放在所有的case語句之后
    ,也可以放中間或開始的,但通常都放最后
    ,比較符合習(xí)慣
    ,所以如果放最后break可以省略。同理上面程序中的第二個break可以省略
    ,但是這不是一個好的編程習(xí)慣
    ,假如你在以后要在程序中加入一個 case 2的話,就很可能會把break可忘了


    其實(shí)default可以看成一個特殊的case語句
    ,它的用法和case是一樣,只是它能匹配所有case入口之外的其余情況


    PS: 我所有的回答都是自己手工輸入
    ,認(rèn)真回答的,不是胡亂粘貼的
    。滿意的話給個最佳吧

    本文地址:http://m.mcys1996.com/shiershengxiao/72888.html.

    聲明: 我們致力于保護(hù)作者版權(quán)

    ,注重分享,被刊用文章因無法核實(shí)真實(shí)出處
    ,未能及時與作者取得聯(lián)系
    ,或有版權(quán)異議的,請聯(lián)系管理員
    ,我們會立即處理
    ,本站部分文字與圖片資源來自于網(wǎng)絡(luò),轉(zhuǎn)載是出于傳遞更多信息之目的,若有來源標(biāo)注錯誤或侵犯了您的合法權(quán)益
    ,請立即通知我們(管理員郵箱:douchuanxin@foxmail.com),情況屬實(shí)
    ,我們會第一時間予以刪除
    ,并同時向您表示歉意,謝謝!

    上一篇:

    下一篇:

    相關(guān)文章
    ,一生和諧安寧
    唐嫣羅晉屬相配嗎
    唐嫣和羅晉是一對熒幕夫妻
    ,雖然兩個人因拍戲結(jié)緣
    ,但是非常恩愛,在如今的娛樂圈情況下
    99年兔男和01年蛇女相配嗎 相互包容創(chuàng)建未來
    99年兔男和01年蛇女相配嗎 相互包容創(chuàng)建未來在找對象的時候有些人喜歡姐弟戀
    ,有些人喜歡大叔。但是我無論是哪一種戀愛方式
    敬字屬什么生肖
    我們的中國漢字是很博大精深的
    ,而不僅讀音豐富,字面含義也是很廣的
    ,而當(dāng)漢字結(jié)合生肖的話
    分手之后
    分手后可以成為朋友一直是一個熱門話題,有些人認(rèn)為分手兩個人沒有關(guān)系
    ,沒有必要成為朋友
    1973年牛一生的運(yùn)勢如何
    每個人的命運(yùn)和命運(yùn)一出生就注定了,但有很多人不知道自己屬于什么
    ,也不知道自己的命運(yùn)
    。接下來,讓我們來看看1973年牛的命運(yùn)和1973年牛的命運(yùn)
    。1973年屬牛的命是什么
    屬馬與屬蛇的婚配好不好,屬馬人和屬蛇人結(jié)婚怎么樣
    屬馬與屬蛇的婚配好不好,屬馬人和屬蛇人結(jié)婚怎么樣屬馬與屬蛇的婚配還是比較好的。1
    、屬馬人的性格:屬馬的人性格上永遠(yuǎn)都是一個非常有激情的人
    女龍男狗結(jié)婚了嗎
    屬于十二生肖龍的人會給我們一種高貴大氣的感覺
    。他們有很強(qiáng)的學(xué)習(xí)能力
    ,對自己有很高的要求。屬于狗的人誠實(shí)
    、認(rèn)真