国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答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
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

SQL多表鏈接查詢、嵌入SELECT語句的子查詢技術(shù)

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-09 13:53:45
文檔

SQL多表鏈接查詢、嵌入SELECT語句的子查詢技術(shù)

SQL多表鏈接查詢、嵌入SELECT語句的子查詢技術(shù):高級查詢技術(shù)主要是涉及多個表的鏈接查詢技術(shù)、嵌入SELECT語句的子查詢技術(shù),把多個查詢聯(lián)合起來的聯(lián)合技術(shù)等。 1. 連接查詢 需要同時從兩個或者連個以上的表中檢索數(shù)據(jù)。鏈接就是允許同時從兩個表或者兩個以上的表中檢索數(shù)據(jù),指定這些表中的某個或者某些列
推薦度:
導(dǎo)讀SQL多表鏈接查詢、嵌入SELECT語句的子查詢技術(shù):高級查詢技術(shù)主要是涉及多個表的鏈接查詢技術(shù)、嵌入SELECT語句的子查詢技術(shù),把多個查詢聯(lián)合起來的聯(lián)合技術(shù)等。 1. 連接查詢 需要同時從兩個或者連個以上的表中檢索數(shù)據(jù)。鏈接就是允許同時從兩個表或者兩個以上的表中檢索數(shù)據(jù),指定這些表中的某個或者某些列

高級查詢技術(shù)主要是涉及多個表的鏈接查詢技術(shù)、嵌入SELECT語句的子查詢技術(shù),把多個查詢聯(lián)合起來的聯(lián)合技術(shù)等。 1. 連接查詢 需要同時從兩個或者連個以上的表中檢索數(shù)據(jù)。鏈接就是允許同時從兩個表或者兩個以上的表中檢索數(shù)據(jù),指定這些表中的某個或者某些列

  高級查詢技術(shù)主要是涉及多個表的鏈接查詢技術(shù)、嵌入SELECT語句的子查詢技術(shù),把多個查詢聯(lián)合起來的聯(lián)合技術(shù)等。

  1. 連接查詢

  需要同時從兩個或者連個以上的表中檢索數(shù)據(jù)。鏈接就是允許同時從兩個表或者兩個以上的表中檢索數(shù)據(jù),指定這些表中的某個或者某些列作為連接條件。在SQL Server中,可以使用兩種連接語法的形式,一種是ANSI鏈接語法形式,這是連接條件出現(xiàn)在FROM子句中;另外一種SQL Server鏈接語法形式,這是連接條件出現(xiàn)在WHERE條件中。

  1. ANSI鏈接

  鏈接錯做可以同時查詢兩個或者多個表中的數(shù)據(jù),所生成的結(jié)果集包含多個表中的字段,需要使用連個表中共同擁有的字段以連接多個表。

  進行連接操作時,SQL一行一行地比較所指定的字段,然后把比較后的結(jié)果和滿足條件的數(shù)據(jù)合并,并生成新的記錄。

  有三種連接方式:內(nèi)連接、外連接和交叉連接。在一個SELECT語句中,可以連接多個表;鏈接通過擴展SELECT語句的FROM字句,增加了兩個關(guān)鍵字:JOIN和ON

  JOIN:指定要了鏈接的表

  ON:指定這些表共同擁有的字段

  在表的主鍵和外部鍵的基礎(chǔ)上,指定連接條件。

  ANSI鏈接語法形式如下所示:

  SELECT table_name.column_name, table_name.column_name,……

  FROM { table_name[ join_type] JOIN table_name ON search_conditions}

  WHERE[ search_conditions]

  其中[ join_type ]可以為如下三個關(guān)鍵字形式:

  INNER(內(nèi)連接):鏈接查詢結(jié)果集中僅包含滿足條件的行,內(nèi)連接是SQL Server缺省的連接方式,可以把INNER JOIN簡寫成 JOIN;

  OUTER(外連接):鏈接查詢結(jié)果集中既包含哪些滿足條件的行,,還包含其中某個表的全部行,有三種形式的外連接:左外連接、右外連接、全外連接。

  例如:已經(jīng)選修了4號課程的同學(xué)信息的示例,該示例涉及到了學(xué)生表和選修課:

  SELECT 學(xué)生表

  FROM 學(xué)生表 JOIN 選課表 ON 學(xué)生表.學(xué)號 選課表.學(xué)號

  WHERE 選課表 課程號=4

  2. SQL Server鏈接

  多表連接,可以在FROM子句后直接指定多個表,語義上表示從這幾個表的笛卡爾積中檢索數(shù)據(jù),可以用WHERE子句設(shè)定過濾條件。

  SQL Server鏈接語法形式如下:

  SELECT table_name.column_name,table_name.column_name,……

  FROM { table_name,table_name,……}

  WHERE table_name.column_name join_operator table_name.column_name

  在此種語法形式中,F(xiàn)ROM子句列出了連接時所使用到的全部表名,WHERE子句指定哪些行應(yīng)該出現(xiàn)在結(jié)果集中,即用WHERE子句設(shè)定過濾條件。在WHERE子句中,在兩個連接的列中使用鏈接運算符。

  例如:檢索出至少已經(jīng)有一門課程及格的同學(xué)的信息示例:

  SELECT DISTINCT 學(xué)生表 *

  FROM 學(xué)生表 選課表

  WHERE 學(xué)生表.學(xué)號=選課表.學(xué)號 AND 選課表.成績=60

  3. 子查詢

  子查詢是一系列SELECT語句。SELECT語句可以嵌套在其他許多語句中,例如SELECT、INSERT、UPDATE、DELETE等,這些嵌套的SELECT語句就稱為子查詢。子查詢可以把一個復(fù)雜的查詢分解成一系列的邏輯步驟,這樣就可以用一個單個的語句解決一個復(fù)雜的查詢問題。當(dāng)一個查詢依賴于另一個查詢的結(jié)果時,子查詢會很有用。

  使用子查詢時,應(yīng)注意:

  子查詢要用括號起來

  只需要一個值或一系列的值,就可以用子查詢代替一個表達(dá)式

  子查詢中不能查詢包含數(shù)據(jù)類型是text或image的字段

  子查詢中也可以再包含子查詢,嵌套可以多至32層

  1. 把子查詢用作派生的表

  可以用子查詢產(chǎn)生一個派生的表,用于代替FROM子句中的表。派生表示FROM子句中子查詢的一個特殊用法,用一個別名或用戶自定義的名字來引用這個派生表。FROM子句中的子查詢將返回一個結(jié)果集,這個結(jié)果集所形成的表將被外層SELECT語句使用。

  例如:內(nèi)層查詢用子查詢產(chǎn)生了一個派生的表,外層查詢將使用內(nèi)層查詢的結(jié)果集。在功能上,派生表本身就等同于一個完整的查詢

  SLECT A *

  FROM select 學(xué)號,姓名,年齡 from 學(xué)生表

  Where 班級=‘GZ02計6’ as a

  2. 把子查詢用作表達(dá)式

  在T-SQL中,所有使用表達(dá)式的地方,都可以用子查詢來代替。此時子查詢必須返回單個的值或某一個字段的值。子查詢可以返回一系列的值來代替出現(xiàn)在WHERE子句中的IN關(guān)鍵字的表達(dá)式。

  例如:查詢GZ02計7班同學(xué)的平均年齡以及每個同學(xué)年齡與平均年齡的差

  SELECT avg(年齡) FROM 學(xué)生表 as 平均年齡

  其計算結(jié)果作為選擇列表中的一個輸出列,并作為算術(shù)表達(dá)式的一部分輸出:

  年齡-(SELECT avg(年齡) FROM 學(xué)生表) as 年齡差

  3. 相關(guān)子查詢

  相關(guān)子查詢可被用作動態(tài)表達(dá)式,這個表達(dá)式的值相對于外層查詢的每一行而變化。查詢處理器為外層查詢的每一個記錄計算子查詢的值,一次一行,而這個子查詢每次都會被作為一個表達(dá)式而被計算并返回給外層查詢。相關(guān)子查詢是動態(tài)執(zhí)行的子查詢和外層查詢間的一個非常有效的聯(lián)合。

  使用相關(guān)子查詢時,內(nèi)層子查詢被反復(fù)執(zhí)行,外層查詢有多少記錄,內(nèi)層查詢就被齒形多少次。

  例如:查詢已選修課程號的1且成績在90分以上的同學(xué)的學(xué)號及姓名:

  SELECT 學(xué)號 姓名

  FROM 學(xué)生表

  WHERE 90 <=( SELECT 成績

  FROM 選課表

  WHERE 學(xué)生表.學(xué)號=選課表.學(xué)號 AND 課程號=1)

  4. 使用EXISTS和NOT EXISTS操作符

  在相關(guān)子查詢中可以使用EXISTS和NOT EXISTS操作符判斷某個值是否在一系列的值中。SQL Server處理帶有EXISTS和NOT EXISTS操作符的子查詢時:

  外層查詢測試子查詢返回的記錄是否存在

  基于查詢所指定的條件,子查詢返回TRUE或FALSE

  子查詢不產(chǎn)生任何數(shù)據(jù)

  例如:同時選修了1號課程和2號課程的同學(xué)的信息:

  SELECT 學(xué)號,姓名,班級

  FROM 學(xué)生表

  WHERE EXISTS(SELECT * FROM 選課表

  WHERE 學(xué)號=學(xué)生表.學(xué)號 AND 課程號=1)

  AND EXISTS(SELECT * FROM 選課表

  WHERE 學(xué)號=學(xué)生表.學(xué)號 AND 課程號=2)

 ?、?找外層表“學(xué)生表”的第1行,根據(jù)其“學(xué)號”值處理內(nèi)層查詢

  ② 用外層的“學(xué)號”與內(nèi)層表“選課表”的“學(xué)號”比較,由此決定外層條件的真、假,如果為真,則此記錄為符合條件的結(jié)果,反之,則不輸出。

 ?、?順序處理外層表“學(xué)生表”中的第2、3、4、。。行

  檢索出每一門選修課都幾個的同學(xué)信息

  SELECT * FROM 學(xué)生表 WHERE

  NOT EXISTS( SELECT * FROM 選課表

  WHERE 學(xué)生表.學(xué)號=選課表.學(xué)號 AND 成績<60)

  AND EXISTS( SELECT * FROM 選課表

  WHERE 學(xué)生表.學(xué)號=選課表.學(xué)號)

  使用TOP限制結(jié)果集

  在使用SELECT語句進行查詢時,有時我們希望列出前幾個結(jié)果,而不是全部結(jié)果。例如,競賽時,可能只取成績最高的前三名,這時就需要使用TOP關(guān)鍵字來選取輸出的結(jié)果

  使用TOP的格式為:

  SELECT TOP n[ percent] [with ties] 查詢列表

  其中:

  n:為非負(fù)整數(shù)

  TOP n:表示取查詢結(jié)果的前n行

  TOP n percent:表示取查詢結(jié)果的前n%行

  With ties:表示包括并列的結(jié)果

  例如:檢索出總分在前5位的同學(xué)的學(xué)號及其總分:

  SELECT TOP 5 WITH TIES 學(xué)號, SUM(成績) AS 總分

  FROM 選課表

  GROUP BY 學(xué)號

  ORDER BY 總分 DESC

  使用TOP時,注意最好與ORDER BY子句一起使用,因為這樣的前幾名才有意義。但當(dāng)使用WITH TIES時,要求必須使用ORDER BY子句

  合并多個結(jié)果集

  可以將兩個或多個查詢的結(jié)果組合為一個結(jié)果集,這就是合并多個屆國際的含義。使用UNION可以實現(xiàn)合并多個查詢結(jié)果集的目的。作用UNION的格式為:

  SELECT 語句1

  UNION

  SELECT 語句2

  UNION [ALL]

  ……

  SELECT 語句n

  使用UNION,應(yīng)注意幾點:

  在默認(rèn)情況下,UNION運算符刪除全部空余。如果使用ALL選項,那么空余行不刪除:

  所有查詢語句中的列數(shù)和列的順序必須相同

  所有查詢語句中的對應(yīng)列的數(shù)據(jù)類型必須兼容

  如果在UNION語句中,包含一個ORDER BY子句,那么整個結(jié)果集都要排序

  在結(jié)果集中,列名來自第1個SELECT子句

  例如:對GZ02計6班和GZ02計7班學(xué)生的查詢結(jié)果合并為一個結(jié)果集:

  SELECT * FROM 學(xué)生表 WHERE 班級=‘GZ02計6’

  UNION

  SELECT * FROM 學(xué)生表 WHERE 班級=‘GZ02計7’

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

文檔

SQL多表鏈接查詢、嵌入SELECT語句的子查詢技術(shù)

SQL多表鏈接查詢、嵌入SELECT語句的子查詢技術(shù):高級查詢技術(shù)主要是涉及多個表的鏈接查詢技術(shù)、嵌入SELECT語句的子查詢技術(shù),把多個查詢聯(lián)合起來的聯(lián)合技術(shù)等。 1. 連接查詢 需要同時從兩個或者連個以上的表中檢索數(shù)據(jù)。鏈接就是允許同時從兩個表或者兩個以上的表中檢索數(shù)據(jù),指定這些表中的某個或者某些列
推薦度:
標(biāo)簽: 查詢 鏈接 技術(shù)
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 日韩免费视频网站 | 自拍偷拍欧美亚洲 | 国产一区二区三区在线 | 2022国产91精品久久久久久 | 国产成人a一区二区 | 亚洲精品乱码久久久久久 | 午夜视频国产 | 精品一区二区三区亚洲 | 欧美国产中文 | 日韩另类在线 | 精品日本一区二区三区在线观看 | 欧美第1页| 国产精品久久久久久一区二区三区 | 亚洲精品高清在线观看 | 国产在线精选免费视频8x | 精品久久久久久久中文字幕 | 欧美国产激情二区三区 | 亚洲另类第一页 | 国产精品免费视频播放 | 国产亚洲欧美一区二区 | 欧美a色爱欧美综合v | 亚洲国产精品成人综合久久久 | 久久久一区二区三区 | 永久在线观看 | 黄色a一级视频 | 国产欧美日韩在线不卡第一页 | 伊人久久大香线蕉综合爱婷婷 | 日本久久精品免视看国产成人 | 国产亚洲精品va在线 | 国产在线日韩 | 国产欧美日韩在线不卡第一页 | 欧美在线观看网站 | 欧美雌雄双性人交xxxx | 美女视频黄a视频全免费网站色 | 欧美极品尤物在线播放一级 | 国产精品亚洲综合一区 | 伊人久久综合成人网小说 | 影音先锋亚洲综合小说在线 | 亚洲国产精品热久久 | a天堂专区一区二区三区 | 免费精品国产日韩热久久 |