中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      SQL語(yǔ)言查詢基礎(chǔ):連接查詢和聯(lián)合查詢

      時(shí)間:2024-07-13 01:13:03 SQL 我要投稿
      • 相關(guān)推薦

      SQL語(yǔ)言查詢基礎(chǔ):連接查詢和聯(lián)合查詢

        SQL語(yǔ)言查詢基礎(chǔ):連接查詢

        通過連接運(yùn)算符可以實(shí)現(xiàn)多個(gè)表查詢。連接是關(guān)系數(shù)據(jù)庫(kù)模型的主要特點(diǎn),也是它區(qū)別于其它類型數(shù)據(jù)庫(kù)管理系統(tǒng)的一個(gè)標(biāo)志。

        在關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)中,表建立時(shí)各數(shù)據(jù)之間的關(guān)系不必確定,常把一個(gè)實(shí)體的所有信息存放在一個(gè)表中。當(dāng)檢索數(shù)據(jù)時(shí),通過連接操作查詢出存放在多個(gè)表中的不同實(shí)體的信息。連接操作給用戶帶來很大的靈活性,他們可以在任何時(shí)候增加新的數(shù)據(jù)類型。為不同實(shí)體創(chuàng)建新的表,爾后通過連接進(jìn)行查詢。

        連接可以在Select語(yǔ)句的FROM子句或Where子句中建立,似是而非在FROM子句中指出連接時(shí)有助于將連接操作與Where子句中的搜索條件區(qū)分開來。所以,在Transact-SQL中推薦使用這種方法。

        SQL-92標(biāo)準(zhǔn)所定義的FROM子句的連接語(yǔ)法格式為:

        FROMjoin_tablejoin_typejoin_table

        [ON(join_condition)]

        其中join_table指出參與連接操作的表名,連接可以對(duì)同一個(gè)表操作,也可以對(duì)多表操作,對(duì)同一個(gè)表操作的連接又稱做自連接。

        join_type指出連接類型,可分為三種:

        內(nèi)連接(INNERJOIN):使用比較運(yùn)算符進(jìn)行表間某(些)列數(shù)據(jù)的比較操作,并列出這些表中與連接條件相匹配的數(shù)據(jù)行。根據(jù)所使用的比較方式不同,內(nèi)連接又分為等值連接、自然連接和不等連接三種。

        外連接:分為左外連接(LEFTOUTERJOIN或LEFTJOIN)、右外連接(RIGHTOUTERJOIN或RIGHTJOIN)和全外連接(FULLOUTERJOIN或FULLJOIN)三種。與內(nèi)連接不同的是,外連接不只列出與連接條件相匹配的行,而是列出左表(左外連接時(shí))、右表(右外連接時(shí))或兩個(gè)表(全外連接時(shí))中所有符合搜索條件的數(shù)據(jù)行。

        交叉連接(CROSSJOIN):沒有Where子句,它返回連接表中所有數(shù)據(jù)行的笛卡爾積,其結(jié)果集合中的數(shù)據(jù)行數(shù)等于第一個(gè)表中符合查詢條件的數(shù)據(jù)行數(shù)乘以第二個(gè)表中符合查詢條件的數(shù)據(jù)行數(shù)。

        連接操作中的ON(join_condition)子句指出連接條件,它由被連接表中的列和比較運(yùn)算符、邏輯運(yùn)算符等構(gòu)成。

        無論哪種連接都不能對(duì)text、ntext和image數(shù)據(jù)類型列進(jìn)行直接連接,但可以對(duì)這三種列進(jìn)行間接連接。例如:

        Selectp1.pub_id,p2.pub_id,p1.pr_info

        FROMpub_infoASp1INNERJOINpub_infoASp2

        ONDATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info)

        (一)內(nèi)連接

        內(nèi)連接查詢操作列出與連接條件匹配的數(shù)據(jù)行,它使用比較運(yùn)算符比較被連接列的列值。內(nèi)連接分三種:

        1、等值連接:在連接條件中使用等于號(hào)(=)運(yùn)算符比較被連接列的列值,其查詢結(jié)果中列出被連接表中的所有列,包括其中的重復(fù)列。

        2、不等連接:在連接條件使用除等于運(yùn)算符以外的其它比較運(yùn)算符比較被連接的列的列值。這些運(yùn)算符包括>、>=、<=、<、!>、!<和<>。

        3、自然連接:在連接條件中使用等于(=)運(yùn)算符比較被連接列的列值,但它使用選擇列表指出查詢結(jié)果集合中所包括的列,并刪除連接表中的重復(fù)列。

        例,下面使用等值連接列出authors和publishers表中位于同一城市的作者和出版社:

        Select*

        FROMauthorsASaINNERJOINpublishersASp

        ONa.city=p.city

        又如使用自然連接,在選擇列表中刪除authors和publishers表中重復(fù)列(city和state):

        Selecta.*,p.pub_id,p.pub_name,p.country

        FROMauthorsASaINNERJOINpublishersASp

        ONa.city=p.city

        (二)外連接

        內(nèi)連接時(shí),返回查詢結(jié)果集合中的僅是符合查詢條件(Where搜索條件或HAVING條件)和連接條件的行。而采用外連接時(shí),它返回到查詢結(jié)果集合中的不僅包含符合連接條件的行,而且還包括左表(左外連接時(shí))、右表(右外連接時(shí))或兩個(gè)連接表(全外連接)中的所有數(shù)據(jù)行。

        如下面使用左外連接將論壇內(nèi)容和作者信息連接起來:

        Selecta.*,b.*FROMluntanLEFTJOINusertableasb

        ONa.username=b.username

        下面使用全外連接將city表中的所有作者以及user表中的所有作者,以及他們所在的城市:

        Selecta.*,b.*

        FROMcityasaFULLOUTERJOINuserasb

        ONa.username=b.username

        (三)交叉連接

        交叉連接不帶Where子句,它返回被連接的兩個(gè)表所有數(shù)據(jù)行的笛卡爾積,返回到結(jié)果集合中的數(shù)據(jù)行數(shù)等于第一個(gè)表中符合查詢條件的數(shù)據(jù)行數(shù)乘以第二個(gè)表中符合查詢條件的數(shù)據(jù)行數(shù)。

        例,titles表中有6類圖書,而publishers表中有8家出版社,則下列交叉連接檢索到的記錄數(shù)將等

        于6*8=48行。

        Selecttype,pub_name

        FROMtitlesCROSSJOINpublishers

        orDERBYtype

        SQL語(yǔ)言查詢基礎(chǔ):聯(lián)合查詢

        UNION運(yùn)算符可以將兩個(gè)或兩個(gè)以上上Select語(yǔ)句的查詢結(jié)果集合合并成一個(gè)結(jié)果集合顯示,即執(zhí)行聯(lián)合查詢。UNION的語(yǔ)法格式為:

        select_statement

        UNION[ALL]selectstatement

        [UNION[ALL]selectstatement][…n]

        其中selectstatement為待聯(lián)合的Select查詢語(yǔ)句。

        ALL選項(xiàng)表示將所有行合并到結(jié)果集合中。不指定該項(xiàng)時(shí),被聯(lián)合查詢結(jié)果集合中的重復(fù)行將只保留一行。

        聯(lián)合查詢時(shí),查詢結(jié)果的列標(biāo)題為第一個(gè)查詢語(yǔ)句的列標(biāo)題。因此,要定義列標(biāo)題必須在第一個(gè)查詢語(yǔ)句中定義。要對(duì)聯(lián)合查詢結(jié)果排序時(shí),也必須使用第一查詢語(yǔ)句中的列名、列標(biāo)題或者列序號(hào)。

        在使用UNION運(yùn)算符時(shí),應(yīng)保證每個(gè)聯(lián)合查詢語(yǔ)句的選擇列表中有相同數(shù)量的表達(dá)式,并且每個(gè)查詢選擇表達(dá)式應(yīng)具有相同的數(shù)據(jù)類型,或是可以自動(dòng)將它們轉(zhuǎn)換為相同的數(shù)據(jù)類型。在自動(dòng)轉(zhuǎn)換時(shí),對(duì)于數(shù)值類型,系統(tǒng)將低精度的數(shù)據(jù)類型轉(zhuǎn)換為高精度的數(shù)據(jù)類型。

        在包括多個(gè)查詢的UNION語(yǔ)句中,其執(zhí)行順序是自左至右,使用括號(hào)可以改變這一執(zhí)行順序。例如:

        查詢1UNION(查詢2UNION查詢3)

      【SQL語(yǔ)言查詢基礎(chǔ):連接查詢和聯(lián)合查詢】相關(guān)文章:

      SQL查詢語(yǔ)句大全10-24

      sql語(yǔ)句的各種模糊查詢08-25

      用SQLSERVER查詢正在實(shí)行的SQL的方法08-31

      用SQL實(shí)現(xiàn)查詢數(shù)據(jù)不顯示錯(cuò)誤數(shù)據(jù)的方法08-19

      Oracle查詢?cè)恚篠elect語(yǔ)句09-17

      CAD查詢功能的使用技巧06-06

      考生如何查詢自考成績(jī)09-28

      Sun國(guó)際認(rèn)證考試證書查詢04-26

      澳洲留學(xué)簽證的查詢方式05-28

      Java如何實(shí)現(xiàn)簡(jiǎn)單的whois查詢09-21

      主站蜘蛛池模板: 日韩精品中文字幕综合| 增城市| 亚洲黄色一级片在线观看| 万盛区| 国产网友自拍亚洲av| 国产成人亚洲合集青青草原精品| 妺妺窝人体色www聚色窝| 少妇精品一区二区三区免费| 国产不卡在线免费视频| 2020亚洲国产| 桂东县| 深水埗区| 一区二区久久不射av| 亚洲中文字幕乱码免费播放| 国产在线天堂av| 精选二区在线观看视频| 亚洲精品一区网站在线观看 | 天天中文字幕av天天爽| 泰来县| 大庆市| 乌拉特中旗| 南汇区| 洪洞县| 亚洲AⅤ男人的天堂在线观看| 蓬溪县| 新龙县| 罗甸县| 建水县| 纳雍县| 吉水县| 交口县| 亚洲精彩视频一区二区| 肥乡县| av亚洲在线一区二区| 久久久一本精品99久久| 五月激情狠狠开心五月| 国产高潮自拍视频在线观看 | 日韩激情网| 亚洲福利一区二区在线| 威宁| 国产精品黄片一区二区三区视频 |