亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識(shí)庫 > 詳解MySQL子查詢(嵌套查詢)、聯(lián)結(jié)表、組合查詢

詳解MySQL子查詢(嵌套查詢)、聯(lián)結(jié)表、組合查詢

熱門標(biāo)簽:百度地圖標(biāo)注后不顯示 昆明電信400電話辦理 電銷機(jī)器人 行業(yè) 電話機(jī)器人市場(chǎng)趨勢(shì) 淄博400電話申請(qǐng) 南昌高頻外呼系統(tǒng)哪家公司做的好 溫州瑞安400電話怎么申請(qǐng) 電銷機(jī)器人各個(gè)細(xì)節(jié)介紹 俄國地圖標(biāo)注app

一、子查詢

MySQL 4.1版本及以上支持子查詢

子查詢:嵌套在其他查詢中的查詢。

子查詢的作用:

1、進(jìn)行過濾:

實(shí)例1:檢索訂購物品TNT2的所有客戶的ID

= +

一般,在WHERE子句中對(duì)于能嵌套的子查詢的數(shù)目沒有限制,不過在實(shí)際使用時(shí)由于性能的限制,不能嵌套太多的子查詢。
注意:列必須匹配 ——在WHERE子句中使用子查詢(如這里所示),應(yīng)該保證SELECT語句具有與WHERE子句中相同數(shù)目的列。通常,子查詢將返回單個(gè)列并且與單個(gè)列匹配,但如果需要也可以使用多個(gè)列。

示例2:返回訂購產(chǎn)品TNT2的客戶列表

該實(shí)例更為有效的方法是采用聯(lián)結(jié)進(jìn)行查詢:

注意:具體關(guān)于聯(lián)結(jié)的內(nèi)容下文會(huì)整理到。

2、創(chuàng)建計(jì)算字段:

相關(guān)子查詢:涉及外部查詢的子查詢。當(dāng)列名可能有多義性時(shí)必須使用該語法。
實(shí)例:顯示customers 表中每個(gè)客戶的訂單總數(shù)

總結(jié):
子查詢最常見的使用是在WHERE子句的IN操作符中,以及用來填充計(jì)算列
子查詢建立(和測(cè)試)查詢的最可靠的方法是逐漸進(jìn)行, 這與MySQL處理它們的方法非常相同。首先,建立和測(cè)試最內(nèi)層的查詢。然后,用硬編碼數(shù)據(jù)建立和測(cè)試外層查詢,并且僅在確認(rèn)它正常后才嵌入子查詢。這時(shí),再次測(cè)試它。對(duì)于要增加的每個(gè)查詢,重復(fù)這些步驟。這樣做僅給構(gòu)造查詢?cè)黾恿艘稽c(diǎn)點(diǎn)時(shí)間,但節(jié)省了以后(找出查詢?yōu)槭裁床徽#┑拇罅繒r(shí)間,并且極大地提高了查詢一開始就正常工作的可能性。

二、聯(lián)結(jié)表

聯(lián)結(jié)表是SQL最強(qiáng)大的功能之一

1、一些相關(guān)的基礎(chǔ)知識(shí)儲(chǔ)備:

關(guān)系表:保證把信息分解成多個(gè)表,一類數(shù)據(jù)一個(gè)表。各表通過某些常用的值(即關(guān)系設(shè)計(jì)中的關(guān)系(relational))互相關(guān)聯(lián)。節(jié)省時(shí)間和存儲(chǔ)空間,同時(shí)方便數(shù)據(jù)的修改、更新。因此,關(guān)系數(shù)據(jù)庫的可伸縮性遠(yuǎn)比非關(guān)系數(shù)據(jù)庫要好。
可伸縮性(scale):能夠適應(yīng)不斷增加的工作量而不失敗。設(shè)計(jì)良好的數(shù)據(jù)庫或應(yīng)用程序稱之為可伸縮性好。
聯(lián)結(jié):聯(lián)結(jié)是一種機(jī)制,用來在一條SELECT語句中關(guān)聯(lián)表,可以聯(lián)結(jié)多個(gè)表返回一組輸出。

聯(lián)結(jié)不是物理實(shí)體——它在實(shí)際的數(shù)據(jù)庫表中不存在。聯(lián)結(jié)由MySQL根據(jù)需要建立,它存在于查詢的執(zhí)行當(dāng)中。
在使用關(guān)系表時(shí),僅在關(guān)系列中插入合法的數(shù)據(jù)非常重要。為防止這種情況發(fā)生,需要維護(hù)引用完整性,它是通過在表的定義中指定主鍵和外鍵來實(shí)現(xiàn)的。

2、基礎(chǔ)聯(lián)結(jié):

 實(shí)例1:

這兩個(gè)表用WHERE子句正確聯(lián)結(jié):WHERE子句指示MySQL匹配vendors表中的vend_id和products表中的vend_id。注意:在引用的列可能出現(xiàn)二義性時(shí),必須使用完全限定列名(用一個(gè)點(diǎn)分隔的表名和列名)。
在一條SELECT語句中聯(lián)結(jié)幾個(gè)表時(shí),相應(yīng)的關(guān)系是在運(yùn)行中構(gòu)造的,在數(shù)據(jù)庫表的定義中不存在能指示MySQL如何對(duì)表進(jìn)行聯(lián)結(jié)的東西。在聯(lián)結(jié)兩個(gè)表時(shí),實(shí)際上是將第一個(gè)表中的每一行與第二個(gè)表中的每一行配對(duì)。WHERE子句作為過濾條件,它只包含那些匹配給定條件(這里是聯(lián)結(jié)條件)的行。沒有WHERE子句,第一個(gè)表中的每個(gè)行將與第二個(gè)表中的每個(gè)行配對(duì),而不管它們邏輯上是否可以配在一起。

笛卡兒積:由沒有聯(lián)結(jié)條件的表關(guān)系返回的結(jié)果。檢索出的行的數(shù)目將是第一個(gè)表中的行數(shù)乘以第二個(gè)表中的行數(shù)。有時(shí)也被稱為叉聯(lián)結(jié)。

實(shí)例2:顯示編號(hào)為20005的訂單中的物品

應(yīng)該保證所有聯(lián)結(jié)都有WHERE子句,否則MySQL將返回比想要的數(shù)據(jù)多得多的數(shù)據(jù)。
MySQL在運(yùn)行時(shí)關(guān)聯(lián)指定的每個(gè)表以處理聯(lián)結(jié)。這種處理可能是非常耗費(fèi)資源的,因此應(yīng)該仔細(xì),不要聯(lián)結(jié)不必要的表。聯(lián)結(jié)的表越多,性能下降越厲害。

等值聯(lián)結(jié):基于兩個(gè)表之間的相等測(cè)試,也被稱為內(nèi)部聯(lián)結(jié)。(最經(jīng)常使用的聯(lián)結(jié)方式)

實(shí)例:

ANSI SQL規(guī)范首選INNER JOIN語法。此外,盡管使用WHERE子句定義聯(lián)結(jié)的確比較簡單,但是使用明確的聯(lián)結(jié)語法能夠確保不會(huì)忘記聯(lián)結(jié)條件,有時(shí)候這樣做也能影響性能。

3、高級(jí)聯(lián)結(jié):

實(shí)例1:給表起別名(同給列起別名用法一樣)

注意:表別名只在查詢執(zhí)行中使用。與列別名不一樣,表別名不返回到客戶機(jī)。

使用表別名的主要原因之一是能在單條SELECT語句中不 止一次引用相同的表
實(shí)例2:查詢生產(chǎn)ID為DTNTR的物品的供應(yīng)商生產(chǎn)的其他物品

上述解決方法為自聯(lián)結(jié),自聯(lián)結(jié)通常作為外部語句用來替代從相同表中檢索數(shù)據(jù)時(shí)使用的子查詢語句。該實(shí)例也可用子查詢來解決。雖然最終的結(jié)果是相同的,但有時(shí)候處理聯(lián)結(jié)遠(yuǎn)比處理子查詢快得多。在解決問題時(shí),可以試一下兩種方法,以確定哪一種的性能更好。

自然聯(lián)結(jié):排除多次出現(xiàn),使每個(gè)列只返回一次。一般我們用到的內(nèi)部聯(lián)結(jié)都是自然聯(lián)結(jié) 。

實(shí)例3:自然聯(lián)結(jié)

自然聯(lián)結(jié)一般是通過對(duì)表使用通配符(SELECT *),對(duì)所有其他表的列使用明確的子集來完成的。

外部聯(lián)結(jié):聯(lián)結(jié)包含了那些在相關(guān)表中沒有關(guān)聯(lián)行的行。

實(shí)例4:檢索所有客戶,包括那些沒有訂單的客戶

用法與內(nèi)部聯(lián)結(jié)相似,使用了關(guān)鍵字OUTER JOIN來指定聯(lián)結(jié)的類型。但是,與內(nèi)部聯(lián)結(jié)關(guān)聯(lián)兩個(gè)表中的行不同的是,外部聯(lián)結(jié)還包括沒有關(guān)聯(lián)行的行。

存在兩種基本的外部聯(lián)結(jié)形式:左外部聯(lián)結(jié)和右外部聯(lián)結(jié)。在使用OUTER JOIN語法時(shí),必須使用RIGHT或LEFT關(guān)鍵字指定包括其所有行的表(RIGHT指出的是OUTER JOIN右邊的表,而LEFT 指出的是OUTER JOIN左邊的表)。上面的例子使用LEFT OUTER JOIN從FROM 子句的左邊表(customers表)中選擇所有行。
注意:MySQL不支持簡化字符*=和=*的使用,盡管這兩種操作符在其他DBMS中很流行。

實(shí)例5:檢索所有客戶及每個(gè)客戶所下的訂單數(shù)(包括沒有下任何訂單的客戶

聚集函數(shù)可以方便地與各種聯(lián)結(jié)類型一起使用

使用聯(lián)結(jié)和聯(lián)結(jié)條件:

  1. 1. 注意所使用的聯(lián)結(jié)類型。一般我們使用內(nèi)部聯(lián)結(jié),但使用外部聯(lián) 結(jié)也是有效的。
  2. 2. 保證使用正確的聯(lián)結(jié)條件,否則將返回不正確的數(shù)據(jù)。
  3. 3. 應(yīng)該總是提供聯(lián)結(jié)條件,否則會(huì)得出笛卡兒積。
  4. 4. 在一個(gè)聯(lián)結(jié)中可以包含多個(gè)表,甚至對(duì)于每個(gè)聯(lián)結(jié)可以采用不同的聯(lián)結(jié)類型。雖然這樣做是合法的,一般也很有用,但應(yīng)該在一起測(cè)試它們前,分別測(cè)試每個(gè)聯(lián)結(jié)。這將使故障排除更為簡單。

三、組合查詢

組合查詢:執(zhí)行多個(gè)查詢(多條SELECT語句),并將結(jié)果作為單個(gè)查詢結(jié)果集返回。這些組合查詢通常稱為并(union)或復(fù)合查詢。

為何需要組合查詢?

  1. 在單個(gè)查詢中從不同的表返回類似結(jié)構(gòu)的數(shù)據(jù);
  2. 對(duì)單個(gè)表執(zhí)行多個(gè)查詢,按單個(gè)查詢返回?cái)?shù)據(jù);
  3. 使用組合查詢可極大地簡化復(fù)雜的WHERE子句,簡化從多個(gè)表中檢索數(shù)據(jù)的工作。

1、創(chuàng)建組合查詢

關(guān)鍵字:UNION操作符

實(shí)例1:得到價(jià)格小于等于5的所有物品的一個(gè)列表,并且包括供應(yīng)商1001和1002生產(chǎn)的所有物品(不考慮價(jià)格)。

UNION指示MySQL執(zhí)行兩條SELECT語句,并把輸出組合成單個(gè)查詢結(jié)果集。該解法與where prod_price=5 OR vend_id in(1001,1002);等效
使用并時(shí)需要注意的規(guī)則:

  1. 1. UNION必須由兩條或兩條以上的SELECT語句組成,語句之間用關(guān)鍵字UNION分隔(因此,如果組合4條SELECT語句,將要使用3個(gè)UNION關(guān)鍵字)。
  2. 2. UNION中的每個(gè)查詢必須包含相同的列、表達(dá)式或聚集函數(shù)(不過各個(gè)列不需要以相同的次序列出)。
  3. 3. 列數(shù)據(jù)類型必須兼容:類型不必完全相同,但必須是DBMS可以隱含地轉(zhuǎn)換的類型(例如,不同的數(shù)值類型或不同的日期類型)
  4. 4. 使用UNION的組合查詢可以應(yīng)用不同的表

在一些簡單的例子中,使用UNION可能比使用WHERE子句更為復(fù)雜。 但對(duì)于更復(fù)雜的過濾條件,或者從多個(gè)表(而不是單個(gè)表)中檢索數(shù)據(jù)的情形,使用UNION可能會(huì)使處理更簡單。
UNION默認(rèn)從查詢結(jié)果集中自動(dòng)去除重復(fù)的行,如果 想返回所有匹配行,可使用UNION ALL而不實(shí)UNION。

注意:UNION幾乎總是完成與多個(gè)WHERE條件相同的工作。UNION ALL為UNION的一種形式,它完成WHERE子句完成不了的工作。如果確實(shí)需要每個(gè)條件的匹配行全部出現(xiàn)(包括重復(fù)行),則必須使用UNION ALL而不是WHERE

實(shí)例2:對(duì)組合查詢結(jié)果排序

在用UNION組合查詢時(shí),只能使用一條ORDER BY子句,它必須出現(xiàn)在最后一條SELECT語句之后。對(duì)于結(jié)果集,不存在用一種方式排序一部分,而又用另一種方式排序另一部分的情況,因此不允許使用多條ORDER BY子句。該ORDER BY子句對(duì)所有SELECT語句返回的所有結(jié)果進(jìn)行排序。

以上所述是小編給大家介紹的MySQL子查詢(嵌套查詢)、聯(lián)結(jié)表、組合查詢?cè)斀庹希M麑?duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • MySQL高級(jí)查詢之與Group By集合使用介紹
  • MySQL修煉之聯(lián)結(jié)與集合淺析

標(biāo)簽:甘南 洛陽 吐魯番 安徽 拉薩 葫蘆島 海口 嘉峪關(guān)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解MySQL子查詢(嵌套查詢)、聯(lián)結(jié)表、組合查詢》,本文關(guān)鍵詞  詳解,MySQL,子,查詢,嵌套,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解MySQL子查詢(嵌套查詢)、聯(lián)結(jié)表、組合查詢》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳解MySQL子查詢(嵌套查詢)、聯(lián)結(jié)表、組合查詢的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产a毛片| 国产伦理精品| 韩国毛片免费| 国产高清在线精品一区二区| 可以免费看毛片的网站| 韩国毛片| 午夜在线影院| 国产一区二区精品| 中文字幕一区二区三区精彩视频| 国产不卡高清| 可以在线看黄的网站| 国产一级强片在线观看| 午夜精品国产自在现线拍| 免费一级片在线观看| 国产网站在线| 免费的黄色小视频| 999久久狠狠免费精品| 久久精品道一区二区三区| 美女免费黄网站| 国产亚洲精品aaa大片| 韩国毛片基地| 青青青草视频在线观看| 尤物视频网站在线观看| 香蕉视频一级| 一级毛片视频播放| 91麻豆国产级在线| 成人在免费观看视频国产| 欧美日本韩国| 91麻豆精品国产自产在线观看一区| 亚洲第一页乱| 欧美激情一区二区三区中文字幕| 亚洲精品久久玖玖玖玖| 夜夜操天天爽| 尤物视频网站在线观看| 久久国产精品自由自在| a级精品九九九大片免费看| 香蕉视频久久| 青草国产在线| 91麻豆爱豆果冻天美星空| 国产激情一区二区三区| 久久久久久久久综合影视网| 国产一区二区福利久久| 国产精品自拍亚洲| 成人av在线播放| 欧美另类videosbestsex久久| 国产不卡福利| 欧美大片aaaa一级毛片| 欧美1区2区3区| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 亚洲爆爽| 国产综合成人观看在线| 毛片高清| 国产亚洲精品成人a在线| 青青久在线视频| 国产网站免费视频| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 欧美国产日韩久久久| 国产福利免费视频| 日韩欧美一二三区| 成人高清视频免费观看| 91麻豆精品国产片在线观看| 国产91精品一区| 日韩中文字幕一区| 中文字幕一区二区三区精彩视频| 免费国产在线观看不卡| 成人免费福利片在线观看| 99久久网站| 国产网站免费视频| 黄色短视频网站| 日本免费看视频| 黄视频网站在线看| 麻豆网站在线看| 亚洲www美色| 美女免费精品视频在线观看| 日韩免费在线| 亚洲精品影院| 午夜家庭影院| 九九九网站| 国产精品自拍在线观看| 91麻豆精品国产综合久久久| 欧美大片a一级毛片视频| 国产成+人+综合+亚洲不卡| 国产激情一区二区三区| 国产a一级| 亚洲第一页色| 欧美激情中文字幕一区二区| 国产91精品系列在线观看| 九九免费精品视频| 精品久久久久久综合网| 国产成人精品综合在线| 日韩在线观看视频免费| 欧美日本韩国| 免费的黄视频| 99久久精品国产免费| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 尤物视频网站在线观看| 成人高清免费| 国产高清视频免费| 精品国产香蕉在线播出| 欧美激情一区二区三区在线| 欧美国产日韩精品| 国产91精品一区二区| 99色视频| 日本伦理黄色大片在线观看网站| 成人在免费观看视频国产| 青青青草影院| 欧美1区| 99久久精品费精品国产一区二区| 九九免费高清在线观看视频| 免费一级片在线观看| 久久久久久久久综合影视网| 国产精品1024在线永久免费| 青青久在线视频| 91麻豆精品国产自产在线观看一区| 久久国产影视免费精品| 四虎久久精品国产| 国产a视频| 国产精品1024永久免费视频| 亚洲 男人 天堂| 精品国产一区二区三区久| 黄视频网站免费观看| 深夜做爰性大片中文| 日韩专区亚洲综合久久| 超级乱淫伦动漫| 日本在线www| 免费国产在线观看| 天堂网中文在线| 黄色福利片| 韩国三级香港三级日本三级| 成人影视在线观看| 国产视频久久久| 欧美爱色| 天天色色色| 深夜做爰性大片中文| 一级女性全黄久久生活片| 中文字幕一区二区三区 精品| 日本在线不卡免费视频一区| 天天做日日爱| 日韩中文字幕在线亚洲一区 | 国产精品1024在线永久免费| 成人高清视频免费观看| 日韩综合| 久久国产一区二区| 高清一级淫片a级中文字幕| 久久精品店| 国产成人精品综合在线| 久久久久久久免费视频| 可以免费看毛片的网站| 亚洲精品永久一区| 久久国产一久久高清| 国产91丝袜高跟系列| 99久久精品国产国产毛片| 美国一区二区三区| 国产91素人搭讪系列天堂| 99热视热频这里只有精品| 欧美爱色| 九九久久国产精品大片| 黄色福利| 国产视频一区二区在线观看| 精品视频在线看| 99久久视频| 国产不卡高清| 精品视频在线观看免费| 九九九网站| 午夜在线影院| 超级乱淫黄漫画免费| 欧美爱色| 国产91精品系列在线观看| 香蕉视频久久| 精品视频在线观看一区二区三区| 午夜精品国产自在现线拍| 欧美激情一区二区三区中文字幕| 国产一级生活片| 在线观看成人网| 高清一级毛片一本到免费观看| 国产综合成人观看在线| 99久久精品国产免费| 久久成人综合网| 亚洲天堂免费观看| 二级片在线观看| 久久成人亚洲| a级精品九九九大片免费看| 久久国产一久久高清| 精品在线观看一区| 99久久精品国产高清一区二区| 精品久久久久久免费影院| 国产伦精品一区二区三区在线观看| 色综合久久天天综合绕观看| 黄色福利片| 国产不卡在线观看视频| 亚欧成人毛片一区二区三区四区 | 欧美激情一区二区三区视频| 韩国毛片免费大片| 国产成人女人在线视频观看| 欧美激情一区二区三区视频| 欧美另类videosbestsex久久| 国产不卡高清在线观看视频| 国产精品自拍在线观看| 精品久久久久久中文| 日本免费乱理伦片在线观看2018|