<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        SQLServer學(xué)習(xí)筆記系列4

        來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 07:45:17
        文檔

        SQLServer學(xué)習(xí)筆記系列4

        SQLServer學(xué)習(xí)筆記系列4:一.寫在前面的話 好多天沒有記錄sql學(xué)習(xí)筆記了,要堅(jiān)持下去,堅(jiān)信每一點(diǎn)的進(jìn)步都是為在積蓄力量。今天看到一幅圖,特此分享出來(lái)。 通過(guò)這幅圖,我看到的是每人站在自己的角度看問(wèn)題,感受是不一樣的,就如同學(xué)習(xí)知識(shí)一樣,總覺得自己的理解才是最獨(dú)特的,有
        推薦度:
        導(dǎo)讀SQLServer學(xué)習(xí)筆記系列4:一.寫在前面的話 好多天沒有記錄sql學(xué)習(xí)筆記了,要堅(jiān)持下去,堅(jiān)信每一點(diǎn)的進(jìn)步都是為在積蓄力量。今天看到一幅圖,特此分享出來(lái)。 通過(guò)這幅圖,我看到的是每人站在自己的角度看問(wèn)題,感受是不一樣的,就如同學(xué)習(xí)知識(shí)一樣,總覺得自己的理解才是最獨(dú)特的,有

        一.寫在前面的話 好多天沒有記錄sql學(xué)習(xí)筆記了,要堅(jiān)持下去,堅(jiān)信每一點(diǎn)的進(jìn)步都是為在積蓄力量。今天看到一幅圖,特此分享出來(lái)。 通過(guò)這幅圖,我看到的是每人站在自己的角度看問(wèn)題,感受是不一樣的,就如同學(xué)習(xí)知識(shí)一樣,總覺得自己的理解才是最獨(dú)特的,有

        一.寫在前面的話


        好多天沒有記錄sql學(xué)習(xí)筆記了,要堅(jiān)持下去,堅(jiān)信每一點(diǎn)的進(jìn)步都是為在積蓄力量。今天看到一幅圖,特此分享出來(lái)。

        通過(guò)這幅圖,我看到的是每人站在自己的角度看問(wèn)題,感受是不一樣的,就如同學(xué)習(xí)知識(shí)一樣,總覺得自己的理解才是最獨(dú)特的,有時(shí)候適當(dāng)把東西分享出

        去,聽聽別人的見解,或許會(huì)讓我們理解的更加深刻。換位思考,冷靜處理,沉著淡定,不驕不躁,bug只不過(guò)生活的一部分,正因?yàn)橛辛薭ug才會(huì)讓我們進(jìn)

        步,讓我們?nèi)W(xué)習(xí),去追尋問(wèn)題的答案,一起努力,做一個(gè)快樂(lè)的程序猿。這個(gè)世界唯一不變的就是變化,學(xué)習(xí)才會(huì)讓我們適應(yīng)這個(gè)變化。Keep study,

        keep moving!進(jìn)入今天的sql學(xué)習(xí)正題。

        二.sqlserver連接

        (1)交叉連接(cross join)即我們所說(shuō)的笛卡爾積。查詢出滿足兩張表所有的記錄數(shù),A(3條記錄),B(9條記錄),A*B(27條記錄)。

        比如:雇員表(HR.employees)和貨運(yùn)公司(Sales.shippers)表做一個(gè)交叉連接。

        1 select * from hr.employees;
        2 select * from sales.shippers;

        進(jìn)行交叉連接以后,則找到27條記錄。

        1 select a.empid,b.shipperid
        2 from hr.employees a cross join sales.shippers b;

        (2)內(nèi)連接(inner join),即必須滿足某一條件的組合。

        例如我們要查詢產(chǎn)品類別表下,每種產(chǎn)品屬于哪一分類,就需要關(guān)聯(lián)產(chǎn)品分類表(production.categories)和產(chǎn)品明細(xì)表做一個(gè)inner join。

        1 select a.categoryid,a.categoryname,b.productid,b.productname
        2 from production.categories a inner join production.products b
        3 on a.categoryid=b.categoryid;

        結(jié)果如圖所示:

        我們可以看到產(chǎn)品1、都屬于產(chǎn)品分類1.以此類推.........,這樣就可以找出類別1下有哪些產(chǎn)品,以及產(chǎn)品分別屬于哪一分類。

        在這里我們拓展一下:假若我們要查詢有哪些顧客下單了,找出下訂單的顧客信息和訂單信息,那么就需要關(guān)聯(lián)顧客表(sales.customers)和訂單表

        (sales.orders)。

        通過(guò)查看兩張表的字段,我們可以看到兩張表可以用custid顧客的ID進(jìn)行連接。找出相關(guān)的顧客信息和訂單信息。

        1 select a.custid,a.contactname,b.custid,b.orderid
        2 from sales.customers a join sales.orders b
        3 on a.custid=b.custid

        通過(guò)內(nèi)連接(inner join)可以得出一些基本信息,

        但是這里我們發(fā)現(xiàn)一些顧客下過(guò)很多訂單,加入我們要找出該顧客下過(guò)的訂單數(shù),并且只顯示該顧客的一條記錄,那么我們就需要用到之前學(xué)到過(guò)的

        count.....over用法,返回記錄數(shù)。如要顯示不重復(fù)的記錄,那么我們就可以用關(guān)鍵字distinct進(jìn)行過(guò)濾。

        1 select distinct a.custid,a.contactname,
        2 count(*) over(partition by a.custid) as N'顧客訂單數(shù)量'
        3 from sales.customers a inner join sales.orders b
        4 on a.custid=b.custid

        就這樣我們可以得出每個(gè)顧客的訂單數(shù)量。其實(shí)這里我們還有不用over開窗函數(shù),也能實(shí)現(xiàn)同樣的統(tǒng)計(jì)信息,那就是根據(jù)custid進(jìn)行分組:

        1 select a.custid,a.contactname,
        2 count(*) as N'group-by顧客訂單數(shù)量'
        3 from sales.customers a inner join sales.orders b
        4 on a.custid=b.custid
        5 group by a.custid ,a.contactname order by a.custid;

        結(jié)果如圖:

        這里我們得出的結(jié)果跟上面用count.....over()結(jié)果一樣。所以在這里選擇哪種方式,可以根據(jù)需要,視情況而定。

        但是這里我們注意一點(diǎn),我們查詢一下顧客表(sales.customers),看看里面的信息。

        1 select * from sales.customers

        我們可以看到共有91條記錄,即有91為顧客光顧過(guò)相關(guān)訂單,根據(jù)上面顧客下單信息的89條記錄,可以知道,有兩位顧客光顧過(guò)訂單,但卻未下單,可以理解,不買看看總行吧!

        但是我們卻沒有看到那兩位觀望著顧客的信息,怎樣才能將那兩位觀望著找出來(lái),咱們送給他兩禮品,感謝他們的支持了?這就需要用到接下來(lái)說(shuō)的連接left join。

        (3)left......join ,左連接,即保證左側(cè)條件全部有,右側(cè)沒有條件不足,則用null補(bǔ)齊。

        繼續(xù)上述未完成的任務(wù),即找出沒有下訂單顧客的信息,也就是訂單數(shù)量為0的顧客信息,在這里就必須保證所有的顧客信息存在,即用到左連接

        (left....join)。

        1 select a.custid,b.custid,a.contactname,a.fax,
        2 count(b.orderid) as N'group-by顧客訂單數(shù)量'
        3 from sales.customers a left join sales.orders b
        4 on a.custid=b.custid 
        5 group by a.custid ,a.fax,a.contactname,b.custid 
        6 order by count(b.custid);

        結(jié)果如圖所示:

        (4)右連接(right .....join),其實(shí)右連接跟左連接相反,以右側(cè)表為基準(zhǔn),保證右側(cè)表滿足所有記錄,左側(cè)表不足用null補(bǔ)齊。如果交換兩個(gè)表位置,則就很好

        的理解左右連接。

        例如:將上述查詢用用連接,則查詢出來(lái)的是,下過(guò)訂單的所有顧客信息。

        1 select a.custid,b.custid,a.contactname,a.fax,
        2 count(b.orderid) as N'顧客訂單數(shù)量'
        3 from sales.customers a right join sales.orders b
        4 on a.custid=b.custid 
        5 group by a.custid ,a.fax,a.contactname,b.custid 
        6 order by count(b.custid);

        根據(jù)上述信息,我們知道下過(guò)訂單的顧客確實(shí)有89人,有兩人沒有下過(guò)訂單;但是在這里我們也可以通過(guò)右連接找出所有顧客的信息。

        1 select a.custid,b.custid,a.contactname,a.fax,
        2 count(b.orderid) as N'顧客訂單數(shù)量'
        3 from sales.orders b right join sales.customers a 
        4 on a.custid=b.custid 
        5 group by a.custid ,a.fax,a.contactname,b.custid 
        6 order by count(b.custid);

        可以看到找出了所有顧客信息,包括未下訂單的顧客信息。其實(shí)在這里只是交換了兩張表的位置而已。

        所以說(shuō)對(duì)于左右連接來(lái)說(shuō),左連接就以左側(cè)表為基準(zhǔn),

        右連接就以右表為基準(zhǔn)。

        希望各位大牛給出指導(dǎo),不當(dāng)之處虛心接受學(xué)習(xí)!謝謝!

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        SQLServer學(xué)習(xí)筆記系列4

        SQLServer學(xué)習(xí)筆記系列4:一.寫在前面的話 好多天沒有記錄sql學(xué)習(xí)筆記了,要堅(jiān)持下去,堅(jiān)信每一點(diǎn)的進(jìn)步都是為在積蓄力量。今天看到一幅圖,特此分享出來(lái)。 通過(guò)這幅圖,我看到的是每人站在自己的角度看問(wèn)題,感受是不一樣的,就如同學(xué)習(xí)知識(shí)一樣,總覺得自己的理解才是最獨(dú)特的,有
        推薦度:
        標(biāo)簽: 學(xué)習(xí) 筆記 sql
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 久草视频免费在线| 午夜视频在线免费观看| 我要看免费的毛片| 亚洲国产综合自在线另类| 国产免费网站看v片在线| 亚洲精品无码国产| 日韩精品无码免费专区午夜不卡| 亚洲中文字幕无码久久综合网| 一级特黄a免费大片| 亚洲国产精品VA在线观看麻豆 | 日本亚洲免费无线码 | 亚洲免费在线观看| 亚洲精品国产精品乱码不99| 国产一级婬片A视频免费观看| 亚洲日韩精品一区二区三区无码| 十八禁视频在线观看免费无码无遮挡骂过 | 免费a级毛片无码a∨蜜芽试看| 亚洲色欲色欲www在线播放| 国产成人免费a在线视频app | 亚洲激情视频在线观看| 亚洲精品在线免费观看视频| 日本亚洲免费无线码| 免费亚洲视频在线观看| 久久最新免费视频| 亚洲一区二区中文| 成人免费777777| 青青青视频免费观看| 亚洲天堂中文字幕| 啦啦啦www免费视频| 亚洲精品黄色视频在线观看免费资源 | 久久亚洲av无码精品浪潮| 88xx成人永久免费观看| 亚洲第一街区偷拍街拍| 亚洲综合亚洲综合网成人| 久久国产精品成人片免费| 亚洲AV第一成肉网| 久久精品国产亚洲AV麻豆王友容| 成人免费福利电影| 久久免费精品视频| 亚洲heyzo专区无码综合| 亚洲国产美女精品久久久久∴|