資料庫基礎 子查詢詳解

2021-10-05 02:02:20 字數 1285 閱讀 7822

比較子查詢

exists查詢

.說明:in子查詢用於進行乙個給定的值是否在子查詢中,當表示式與子查詢的某個值相等時,in謂詞返回true,否則返回false,若使用not,則返回結果的值剛好相反,格式如下:

表示式[

not]

in(子查詢)

例項:查詢選修課程號為206的學生情況:

select

*from xsb

where 學號 in

(select 學號 from cjb where 課程=

206)

例項:查詢未選修離散數學的學生學號和姓名

select 學號,姓名

from xsb

where 學號 in

(select 學號

from cjb

where 課程 notin(

select 課程號

from kcb

where 課程名=

'離散數學'

))

.這種子查詢可以認為是in子查詢的擴充套件,它使得表示式的值與子查詢的結果進行比較運算,格式為:

表示式 	(子查詢)
說明:

all指定表示式要與子查詢結果集中的每乙個值都進行比較,當表示式與每個值都滿足比較的關係時,才返回true,否則返回false

some和any表示式只要與子查詢結果集中的某個值滿足比較關係,就返回true,否則就返回false

.例項:查詢比所有計算機系學生年齡都大的學生

select

*from xsb

where 出生日期<

all(

select 出生日期

from xsb

where 專業=

'計算機'

)

exists用於測試子查詢的結果是否為空表,空表返回false,不為空返回true;exists還可與not結合使用

[

not]

[exists

](子查詢)

例子:查詢選修206課程的學生姓名

select 姓名

from xsb

where

exists

(select

*from cjb

where 學號=xsb.學號 and 課程=『206』

)

資料庫子查詢

概念 當乙個查詢是另乙個查詢的條件時,這個查詢稱之為子查詢 內層查詢 主要有以下三種表現形式 1.select 列 from 子查詢 2.select 列 from 表 where 列 比較運算子 子查詢 3.select 列 from 表 left join 子查詢 left join 子查詢 字...

資料庫多表查詢 子查詢

子查詢 查詢中巢狀查詢,稱巢狀巢狀查詢為子查詢 下面要使用的表如下,放在此處便於更好地理解 emp 員工資訊表 dept 部門表 例 查詢公司員工工資最高的員工資訊 首先要得到公司員工的最高工資的值 select max salary from emp 假設查詢結果為10000然後根據上一句sql語...

資料庫的子查詢

1 子查詢 使用子查詢是指,在乙個select語句中還巢狀著另乙個select語句 示例 select cust id from orders where order num in select order num from orderitems where prod id rgan01 注意 作為...