校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 詳解MySQL子查詢(嵌套查詢)、聯結表、組合查詢

詳解MySQL子查詢(嵌套查詢)、聯結表、組合查詢

熱門標簽:百度地圖標注后不顯示 昆明電信400電話辦理 電銷機器人 行業 電話機器人市場趨勢 淄博400電話申請 南昌高頻外呼系統哪家公司做的好 溫州瑞安400電話怎么申請 電銷機器人各個細節介紹 俄國地圖標注app

一、子查詢

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

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

子查詢的作用:

1、進行過濾:

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

= +

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

示例2:返回訂購產品TNT2的客戶列表

該實例更為有效的方法是采用聯結進行查詢:

注意:具體關于聯結的內容下文會整理到。

2、創建計算字段:

相關子查詢:涉及外部查詢的子查詢。當列名可能有多義性時必須使用該語法。
實例:顯示customers 表中每個客戶的訂單總數

總結:
子查詢最常見的使用是在WHERE子句的IN操作符中,以及用來填充計算列
子查詢建立(和測試)查詢的最可靠的方法是逐漸進行, 這與MySQL處理它們的方法非常相同。首先,建立和測試最內層的查詢。然后,用硬編碼數據建立和測試外層查詢,并且僅在確認它正常后才嵌入子查詢。這時,再次測試它。對于要增加的每個查詢,重復這些步驟。這樣做僅給構造查詢增加了一點點時間,但節省了以后(找出查詢為什么不正常)的大量時間,并且極大地提高了查詢一開始就正常工作的可能性。

二、聯結表

聯結表是SQL最強大的功能之一

1、一些相關的基礎知識儲備:

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

聯結不是物理實體——它在實際的數據庫表中不存在。聯結由MySQL根據需要建立,它存在于查詢的執行當中。
在使用關系表時,僅在關系列中插入合法的數據非常重要。為防止這種情況發生,需要維護引用完整性,它是通過在表的定義中指定主鍵和外鍵來實現的。

2、基礎聯結:

 實例1:

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

笛卡兒積:由沒有聯結條件的表關系返回的結果。檢索出的行的數目將是第一個表中的行數乘以第二個表中的行數。有時也被稱為叉聯結。

實例2:顯示編號為20005的訂單中的物品

應該保證所有聯結都有WHERE子句,否則MySQL將返回比想要的數據多得多的數據。
MySQL在運行時關聯指定的每個表以處理聯結。這種處理可能是非常耗費資源的,因此應該仔細,不要聯結不必要的表。聯結的表越多,性能下降越厲害。

等值聯結:基于兩個表之間的相等測試,也被稱為內部聯結。(最經常使用的聯結方式)

實例:

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

3、高級聯結:

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

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

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

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

自然聯結:排除多次出現,使每個列只返回一次。一般我們用到的內部聯結都是自然聯結 。

實例3:自然聯結

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

外部聯結:聯結包含了那些在相關表中沒有關聯行的行。

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

用法與內部聯結相似,使用了關鍵字OUTER JOIN來指定聯結的類型。但是,與內部聯結關聯兩個表中的行不同的是,外部聯結還包括沒有關聯行的行。

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

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

聚集函數可以方便地與各種聯結類型一起使用

使用聯結和聯結條件:

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

三、組合查詢

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

為何需要組合查詢?

  1. 在單個查詢中從不同的表返回類似結構的數據;
  2. 對單個表執行多個查詢,按單個查詢返回數據;
  3. 使用組合查詢可極大地簡化復雜的WHERE子句,簡化從多個表中檢索數據的工作。

1、創建組合查詢

關鍵字:UNION操作符

實例1:得到價格小于等于5的所有物品的一個列表,并且包括供應商1001和1002生產的所有物品(不考慮價格)。

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

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

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

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

實例2:對組合查詢結果排序

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

以上所述是小編給大家介紹的MySQL子查詢(嵌套查詢)、聯結表、組合查詢詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

您可能感興趣的文章:
  • MySQL高級查詢之與Group By集合使用介紹
  • MySQL修煉之聯結與集合淺析

標簽:甘南 洛陽 吐魯番 安徽 拉薩 葫蘆島 嘉峪關

巨人網絡通訊聲明:本文標題《詳解MySQL子查詢(嵌套查詢)、聯結表、組合查詢》,本文關鍵詞  詳解,MySQL,子,查詢,嵌套,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解MySQL子查詢(嵌套查詢)、聯結表、組合查詢》相關的同類信息!
  • 本頁收集關于詳解MySQL子查詢(嵌套查詢)、聯結表、組合查詢的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    一本色道久久加勒比精品| 亚洲精品国产无天堂网2021| 国产高清精品久久久久| 一区二区三区视频在线看| 欧美国产乱子伦| 国产一区二区免费视频| 亚洲乱码国产乱码精品精可以看 | 亚洲二区视频在线| www国产精品av| 在线观看免费成人| 国产在线播放一区| 日韩二区在线观看| 亚洲黄色av一区| 国产日韩欧美精品在线| 欧美一级免费观看| 欧美影院精品一区| 91在线视频官网| 国产成人在线看| 激情综合色播五月| 秋霞影院一区二区| 亚洲123区在线观看| 亚洲激情图片一区| 中文字幕一区二| 国产精品美女久久久久aⅴ国产馆| 欧美变态口味重另类| 制服丝袜一区二区三区| 麻豆91免费观看| 日本色综合中文字幕| 亚洲成a天堂v人片| 亚洲不卡av一区二区三区| 亚洲免费视频成人| 亚洲免费观看高清完整版在线| 久久久噜噜噜久久人人看| 精品乱人伦一区二区三区| 欧美巨大另类极品videosbest| 欧美色网站导航| 欧美性大战久久| 在线亚洲一区二区| 99精品视频在线免费观看| 亚洲黄色录像片| 性欧美大战久久久久久久久| 亚洲精品中文字幕乱码三区 | 最新国产の精品合集bt伙计| 欧美mv日韩mv亚洲| 3d动漫精品啪啪| 欧美电视剧在线看免费| 日韩欧美一级二级| 精品少妇一区二区三区| 欧美不卡一区二区三区| 精品国产一区二区三区av性色| 国产高清久久久| 成人免费精品视频| 一本到不卡免费一区二区| eeuss影院一区二区三区| av激情亚洲男人天堂| 成人h动漫精品一区二区 | 欧美日韩一级片网站| 欧美性受xxxx黑人xyx性爽| 91成人网在线| 欧美精品日日鲁夜夜添| 日韩一区二区三| 久久久久久久综合日本| 国产精品网站在线观看| 欧美亚洲动漫精品| 91精品国产一区二区三区| 日韩一区二区三区四区五区六区| 日韩欧美在线网站| 久久综合九色综合欧美98| 久久精品亚洲麻豆av一区二区| 国产婷婷色一区二区三区 | 国产欧美精品一区二区色综合| 国产日韩三级在线| 亚洲久草在线视频| 五月婷婷另类国产| 国产精品久久久久久久久免费丝袜 | 亚洲欧洲精品一区二区三区| 亚洲精品水蜜桃| 日韩国产一区二| 国产麻豆精品95视频| 91在线免费视频观看| 加勒比av一区二区| 色综合久久99| 日韩午夜精品视频| 一区二区中文视频| 日韩av不卡一区二区| 国产高清一区日本| 欧美亚洲愉拍一区二区| 最新久久zyz资源站| 亚洲午夜久久久久中文字幕久| 视频在线在亚洲| 成人黄动漫网站免费app| 欧美日韩一区 二区 三区 久久精品| 精品国产自在久精品国产| 国产精品伦理一区二区| 日韩av中文字幕一区二区三区 | 亚洲无人区一区| 精品一区二区精品| 在线视频国产一区| 久久亚洲一区二区三区四区| 亚洲综合精品自拍| 国产很黄免费观看久久| 91精品国产综合久久蜜臀| 国产精品久久久久影院亚瑟 | 成人成人成人在线视频| 日韩一区二区在线观看视频| 中文字幕一区日韩精品欧美| 青青青伊人色综合久久| 欧美亚洲日本一区| 国产精品日产欧美久久久久| 蜜臀av一区二区三区| 91国产精品成人| 欧美国产精品久久| 久久国产精品第一页| 欧美福利视频一区| 一区二区理论电影在线观看| av不卡免费电影| 欧美激情中文不卡| 久久99精品久久久久婷婷| 欧美日韩精品一区二区三区蜜桃 | 亚洲视频免费在线观看| 国产麻豆视频精品| 欧美xxxx在线观看| 婷婷激情综合网| 在线观看日韩一区| 亚洲视频1区2区| 成人免费视频一区| 国产日韩欧美高清| 久草在线在线精品观看| 欧美一区二区三区视频在线| 玉米视频成人免费看| 94-欧美-setu| 亚洲色图制服丝袜| 99综合影院在线| 中文字幕亚洲精品在线观看 | 亚洲sss视频在线视频| 91亚洲永久精品| 中文字幕一区视频| 97久久超碰国产精品| 国产精品毛片久久久久久| 亚洲精品国产品国语在线app| zzijzzij亚洲日本少妇熟睡| 国产欧美视频一区二区三区| 国产一区二区导航在线播放| www激情久久| 国产成人综合亚洲91猫咪| 国产亚洲污的网站| 成人性生交大片免费看视频在线| 国产亚洲一区二区在线观看| 国产黄人亚洲片| 国产精品午夜免费| 97久久超碰精品国产| 精品污污网站免费看| 亚洲黄色免费电影| 欧美精品自拍偷拍| 蜜臀国产一区二区三区在线播放| 精品国产免费视频| 风间由美性色一区二区三区| 亚洲欧洲精品一区二区三区不卡| 91国产免费观看| 免费观看久久久4p| 久久众筹精品私拍模特| 成人黄色一级视频| 夜夜精品视频一区二区| 91麻豆精品久久久久蜜臀| 99视频国产精品| 一区二区三区四区不卡在线| 欧美美女黄视频| 国产大片一区二区| 综合色中文字幕| 欧美日韩亚洲综合在线 | 91国偷自产一区二区三区成为亚洲经典 | 懂色av一区二区三区蜜臀| 亚洲欧洲精品天堂一级| 欧美视频中文字幕| 日本三级韩国三级欧美三级| 国产清纯白嫩初高生在线观看91| 在线一区二区观看| 国产一区福利在线| 欧美国产一区二区| 欧美亚洲综合在线| 久久成人免费日本黄色| 中文字幕在线不卡国产视频| 欧美日韩国产美| 国产成人综合在线观看| 亚洲一区二区不卡免费| 日韩精品在线一区| 91网站最新网址| 精品制服美女久久| 一区二区三区免费| 久久午夜老司机| 欧美日韩一区国产| 国产精品 欧美精品| 亚洲一区二区三区爽爽爽爽爽| 久久日韩精品一区二区五区| 99久久精品情趣| 久久精品99国产精品| 亚洲精品视频观看| 国产日韩av一区| 在线观看91精品国产麻豆| 91影视在线播放|