最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQL中exists的使用方法

 更新時(shí)間:2011年11月15日 23:20:20   作者:  
EXISTS用于檢查子查詢是否至少會(huì)返回一行數(shù)據(jù),該子查詢實(shí)際上并不返回任何數(shù)據(jù),而是返回值True或False
有一個(gè)查詢?nèi)缦拢?
復(fù)制代碼 代碼如下:

SELECT c.CustomerId, CompanyName
FROM Customers c
WHERE EXISTS(
SELECT OrderID FROM Orders o
WHERE o.CustomerID = cu.CustomerID)

這里面的EXISTS是如何運(yùn)作呢?子查詢返回的是OrderId字段,可是外面的查詢要找的是CustomerID和CompanyName字段,這兩個(gè)字段肯定不在OrderID里面啊,這是如何匹配的呢?
EXISTS用于檢查子查詢是否至少會(huì)返回一行數(shù)據(jù),該子查詢實(shí)際上并不返回任何數(shù)據(jù),而是返回值True或False。
EXISTS 指定一個(gè)子查詢,檢測(cè)行的存在。語(yǔ)法:EXISTS subquery。參數(shù) subquery 是一個(gè)受限的 SELECT 語(yǔ)句 (不允許有 COMPUTE 子句和 INTO 關(guān)鍵字)。結(jié)果類型為 Boolean,如果子查詢包含行,則返回 TRUE。
在子查詢中使用 NULL 仍然返回結(jié)果集
這個(gè)例子在子查詢中指定 NULL,并返回結(jié)果集,通過(guò)使用 EXISTS 仍取值為 TRUE。
復(fù)制代碼 代碼如下:

SELECT CategoryName
FROM Categories
WHERE EXISTS (SELECT NULL)
ORDER BY CategoryName ASC

比較使用 EXISTS 和 IN 的查詢
這個(gè)例子比較了兩個(gè)語(yǔ)義類似的查詢。第一個(gè)查詢使用 EXISTS 而第二個(gè)查詢使用 IN。注意兩個(gè)查詢返回相同的信息。
復(fù)制代碼 代碼如下:

SELECT DISTINCT pub_name
FROM publishers
WHERE EXISTS
(SELECT *
FROM titles
WHERE pub_id = publishers.pub_id
AND type = \'business\')

復(fù)制代碼 代碼如下:

SELECT distinct pub_name
FROM publishers
WHERE pub_id IN
(SELECT pub_id
FROM titles
WHERE type = \'business\')

比較使用 EXISTS 和 = ANY 的查詢
本示例顯示查找與出版商住在同一城市中的作者的兩種查詢方法:第一種方法使用 = ANY,第二種方法使用 EXISTS。注意這兩種方法返回相同的信息。
復(fù)制代碼 代碼如下:

SELECT au_lname, au_fname
FROM authors
WHERE exists
(SELECT *
FROM publishers
WHERE authors.city = publishers.city)

復(fù)制代碼 代碼如下:

SELECT au_lname, au_fname
FROM authors
WHERE city = ANY
(SELECT city
FROM publishers)

比較使用 EXISTS 和 IN 的查詢
本示例所示查詢查找由位于以字母 B 開(kāi)頭的城市中的任一出版商出版的書名:
復(fù)制代碼 代碼如下:

SELECT title
FROM titles
WHERE EXISTS
(SELECT *
FROM publishers
WHERE pub_id = titles.pub_id
AND city LIKE \'B%\')

復(fù)制代碼 代碼如下:

SELECT title
FROM titles
WHERE pub_id IN
(SELECT pub_id
FROM publishers
WHERE city LIKE \'B%\')

使用 NOT EXISTS
NOT EXISTS 的作用與 EXISTS 正相反。如果子查詢沒(méi)有返回行,則滿足 NOT EXISTS 中的 WHERE 子句。本示例查找不出版商業(yè)書籍的出版商的名稱:
復(fù)制代碼 代碼如下:

SELECT pub_name
FROM publishers
WHERE NOT EXISTS
(SELECT *
FROM titles
WHERE pub_id = publishers.pub_id
AND type = \'business\')
ORDER BY pub_name

又比如以下 SQL 語(yǔ)句:
復(fù)制代碼 代碼如下:

select distinct 姓名 from xs
where not exists (
select * from kc
where not exists (
select * from xs_kc
where 學(xué)號(hào)=xs.學(xué)號(hào) and 課程號(hào)=kc.課程號(hào)
)

把最外層的查詢xs里的數(shù)據(jù)一行一行的做里層的子查詢。
中間的 exists 語(yǔ)句只做出對(duì)上一層的返回 true 或 false,因?yàn)椴樵兊臈l件都在 where 學(xué)號(hào)=xs.學(xué)號(hào) and 課程號(hào)=kc.課程號(hào)這句話里。每一個(gè) exists 都會(huì)有一行值。它只是告訴一層,最外層的查詢條件在這里成立或都不成立,返回的時(shí)候值也一樣回返回上去。直到最高層的時(shí)候如果是 true(真)就返回到結(jié)果集。為 false(假)丟棄。
復(fù)制代碼 代碼如下:

where not exists
select * from xs_kc
where 學(xué)號(hào)=xs.學(xué)號(hào) and 課程號(hào)=kc.課程號(hào)

這個(gè) exists 就是告訴上一層,這一行語(yǔ)句在我這里不成立。因?yàn)樗皇亲罡邔樱赃€要繼續(xù)向上返回。
select distinct 姓名 from xs where not exists (這里的 exists 語(yǔ)句收到上一個(gè)為 false 的值。他在判斷一下,結(jié)果就是為 true(成立),由于是最高層所以就會(huì)把這行的結(jié)果(這里指的是查詢條件)返回到結(jié)果集。
幾個(gè)重要的點(diǎn):
最里層要用到的醒詢條件的表比如:xs.學(xué)號(hào)、kc.課程號(hào)等都要在前面的時(shí)候說(shuō)明一下select * from kc,select distinct 姓名 from xs
不要在太注意中間的exists語(yǔ)句.
把exists和not exists嵌套時(shí)的返回值弄明白

相關(guān)文章

  • SQL?Server實(shí)現(xiàn)group_concat函數(shù)的詳細(xì)舉例

    SQL?Server實(shí)現(xiàn)group_concat函數(shù)的詳細(xì)舉例

    這篇文章主要給大家介紹了關(guān)于SQL?Server實(shí)現(xiàn)group_concat函數(shù)的詳細(xì)舉例,GROUP_CONCAT函數(shù)可以拼接某個(gè)字段值成字符串,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • SQL中case?when用法及使用案例詳解

    SQL中case?when用法及使用案例詳解

    這篇文章主要介紹了SQL中case?when用法詳解及使用案例,Case具有兩種格式,簡(jiǎn)單Case函數(shù)和Case搜索函數(shù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • sql更新語(yǔ)句中update set from用法實(shí)現(xiàn)

    sql更新語(yǔ)句中update set from用法實(shí)現(xiàn)

    本文主要介紹了sql更新語(yǔ)句中update set from用法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 淺析SQL Server中的執(zhí)行計(jì)劃緩存(上)

    淺析SQL Server中的執(zhí)行計(jì)劃緩存(上)

    這篇文章主要介紹了淺析SQL Server中的執(zhí)行計(jì)劃緩存(上)的相關(guān)資料,需要的朋友可以參考下
    2015-12-12
  • SQL Server在T-SQL語(yǔ)句中使用變量

    SQL Server在T-SQL語(yǔ)句中使用變量

    這篇文章介紹了SQL Server在T-SQL語(yǔ)句中使用變量的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • SQL?Server中如何給表添加注釋詳解

    SQL?Server中如何給表添加注釋詳解

    這篇文章主要給大家介紹了關(guān)于SQL?Server中如何給表添加注釋的相關(guān)資料,在SQL Server數(shù)據(jù)庫(kù)應(yīng)用程序開(kāi)發(fā)中,可以在數(shù)據(jù)庫(kù)表結(jié)構(gòu)創(chuàng)建時(shí)為它們添加注釋,以便更好地描述其作用、含義或其他相關(guān)信息,需要的朋友可以參考下
    2023-11-11
  • SQL語(yǔ)句的執(zhí)行原理分析

    SQL語(yǔ)句的執(zhí)行原理分析

    SQL語(yǔ)句的執(zhí)行原理分析,想提高執(zhí)行效率的朋友可以參考下。
    2012-01-01
  • jdbc連接sql server數(shù)據(jù)庫(kù)問(wèn)題分析

    jdbc連接sql server數(shù)據(jù)庫(kù)問(wèn)題分析

    SQL Server連接中問(wèn)題還真多。不進(jìn)行設(shè)置還真連接不上,這里總結(jié)一下,需要的朋友可以參考
    2012-12-12
  • 磁盤緩存專題之一 緩存命中和緩存未命中&緩存與緩沖間的差異

    磁盤緩存專題之一 緩存命中和緩存未命中&緩存與緩沖間的差異

    在大多數(shù)計(jì)算機(jī)中,緩存是一個(gè)很重要的技術(shù)。事實(shí)上,計(jì)算機(jī)中的所有數(shù)據(jù)訪問(wèn)都可以看成是基本緩存概念的某種變體
    2012-08-08
  • 將Excel數(shù)據(jù)導(dǎo)入到SQL?Server數(shù)據(jù)庫(kù)的操作指南

    將Excel數(shù)據(jù)導(dǎo)入到SQL?Server數(shù)據(jù)庫(kù)的操作指南

    這篇文章主要介紹了將Excel數(shù)據(jù)導(dǎo)入到SQL?Server數(shù)據(jù)庫(kù)的操作指南,文中通過(guò)圖文結(jié)合的方式給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-08-08

最新評(píng)論

金塔县| 大庆市| 洪雅县| 甘泉县| 张家界市| 保德县| 蓬安县| 垣曲县| 广昌县| 云安县| 青河县| 石楼县| 兴城市| 讷河市| 桐柏县| 龙山县| 禹州市| 永新县| 炎陵县| 临邑县| 定日县| 疏附县| 南丹县| 余干县| 利川市| 淮安市| 邳州市| 大兴区| 塔城市| 察隅县| 渝中区| 广南县| 什邡市| 株洲县| 清水河县| 陇川县| 洞口县| 新源县| 淮北市| 务川| 宜章县|