日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

ORACLE SQL笛卡尔集

發(fā)布時間:2025/3/15 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ORACLE SQL笛卡尔集 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

ORACLE SQL笛卡爾集

開發(fā)工具與關(guān)鍵技術(shù):Oracle sql*plus PLSQL Developer 作者:何任賢 撰寫時間:2019年01月01日 笛卡爾集是所有表連接中最特殊的一個,它是所有表連接無效,或者沒有連接條件時產(chǎn)生。

假如有A、B兩張表,那么當A表的第一列和B表的所有列相連然后A表第二列繼續(xù)和B表的所有列相連依此類推,這時A表和B表的相連產(chǎn)生的數(shù)據(jù)集,叫做笛卡爾集。
笛卡爾集的作用和其他連接不一樣,所有連接都是笛卡爾集加上連接條件而成,然而我們可以不寫連接條件,直接篩選數(shù)據(jù)或獲得某些數(shù)據(jù),例子如下:

例一:圖1是表數(shù)據(jù) 、圖2是表結(jié)構(gòu)

圖1 圖2

其中SNO代表學號、CNO代表科目號、SCORE代表成績。
題目當我要查詢科目號為C001,比自己成績低的人數(shù)至少一人、學號、科目號、成績。
那么這個時候我們就可以利用笛卡爾集加上條件篩選數(shù)據(jù)。

代碼:
SELECT A.SNO,A.CNO,A.SCORE,COUNT(A.SNO) AS “人數(shù)”
FROM (SELECT * FROM SC WHERE CNO = ‘C001’) A ,
(SELECT * FROM SC WHERE CNO = ‘C001’) B
WHERE A.SCORE > B.SCORE
GROUP BY A.SNO,A.CNO,A.SCORE

代碼詳解:
該代碼只用了一個分組函數(shù)“COUNT”,作用是返回某分組中的記錄條數(shù),查詢的是兩張一樣的表,該表的數(shù)據(jù)是圖1進行CNO 為C001的篩選而成的,數(shù)據(jù)如圖3。只有一個WHERE條件,就是讓A表的成績大于B表的成績

結(jié)果如圖4:

圖3 圖4

例二:圖1是表數(shù)據(jù) 、圖2是表結(jié)構(gòu)
題目:當我要查詢所有科目最高分中最低分的科目的最低成績和科目號。
意思是查詢每個科目最高分中最低分的科目,該科目最低的成績和該科目號

代碼:
SELECT A.CNO,A.SIN FROM
(SELECT CNO,MAX(SCORE) SAX,MIN(SCORE) SIN FROM SC GROUP BY CNO) A,
(SELECT CNO,MAX(SCORE) SAX,MIN(SCORE) SIN FROM SC GROUP BY CNO) B
HAVING MIN(A.SAX) = MIN(B.SAX)
GROUP BY A.CNO,A.SIN

代碼詳解:
該代碼用到了兩個分組函數(shù),一個是“MAX”獲得該分組的最大值,一個是“MIN”
獲得該分組的最小值,查詢的也是兩張一樣的表,該表的數(shù)據(jù)是圖1進行CNO分組然后獲取分組后的最大值和最小值,數(shù)據(jù)如圖5,只有一個HAVING條件,該條件的意思是在圖5的A表中SAX列最小的數(shù)據(jù)并且等于B表中SAX列最小的數(shù)據(jù),這就是笛卡爾集的作用。
因為笛卡爾集會把兩張表的列以1對多的形式連接,而我們要查詢的科目最低的成績
和該科目號在圖5中就把數(shù)據(jù)查詢出來了,而我們只需要篩選所有科目最高分中最低
分的科目就行了,那么我們通過A表中SAX列最小值和B表中SAX列最小值作為條件
那么查詢出來的數(shù)據(jù)就是我們所需要的數(shù)據(jù)。

結(jié)果如圖6

圖5 圖6

通過以上例子我們可以發(fā)現(xiàn)笛卡爾集的連接方式,可以讓我們靈活的篩選一些數(shù)據(jù)或者獲得一些數(shù)據(jù),以上就是笛卡爾集的運用和理解。

總結(jié)

以上是生活随笔為你收集整理的ORACLE SQL笛卡尔集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。