SQL中笛卡爾積的實際應(yīng)用
1.概念
百度百科:
笛卡爾乘積是指在數(shù)學中,兩個集合X和Y的笛卡爾積(Cartesian product),又稱直積,表示為X × Y,第一個對象是X的成員而第二個對象是Y的所有可能有序?qū)Φ钠渲幸粋€成員
百度百科有點繞,定義自己解釋自己,意思大概是這個意思,可以簡單理解成兩個集合的乘積
2.sql笛卡爾積語法
select * from table1,table2
其中table1和table2 分別表示兩個表的表名
示例:
2.1 表1有2條數(shù)據(jù)

2.2 表2有3條數(shù)據(jù)

2.3 笛卡爾積有6條數(shù)據(jù)

從行和列兩個維度來觀察上例笛卡爾積的結(jié)果集可以發(fā)現(xiàn),
結(jié)果集的行是表1的行數(shù)乘表2的行數(shù)(2x3)
結(jié)果集的列是表1的列加表2的列(3+4)
3.sql中的應(yīng)用
3.1 高中數(shù)學集合中有介紹交集、并集、差集、笛卡爾積,一個sql語句可以理解成一個結(jié)果集,多個表的關(guān)聯(lián)查詢底層實際上是數(shù)學中集合和集合的關(guān)系。
進一步可以發(fā)現(xiàn)笛卡爾積和內(nèi)連接的sql語句可以相互轉(zhuǎn)化,這對我們理解內(nèi)連接的本質(zhì)和笛卡爾積的查詢條件很重要
內(nèi)連接也可以得到2.3笛卡爾積的結(jié)果

3.2 笛卡爾積加查詢條件

轉(zhuǎn)化成內(nèi)連接查詢

總結(jié)
從結(jié)果上來看:內(nèi)連接不加關(guān)聯(lián)條件的結(jié)果就是笛卡爾積
從執(zhí)行效率和底層實現(xiàn)來看,內(nèi)連接和笛卡爾積有區(qū)別,內(nèi)連接會先通過on條件過濾兩張表的數(shù)據(jù),再取交集;笛卡爾積會先將兩個表取乘積再過濾數(shù)據(jù),所以理論上內(nèi)連接效率更高
笛卡爾積在表數(shù)據(jù)量大的情況下查詢結(jié)果會倍增,實際應(yīng)用中要加查詢條件過濾數(shù)據(jù)
怎么理解笛卡爾積中的查詢條件,可以將笛卡爾積sql轉(zhuǎn)化成內(nèi)連接sql去理解
到此這篇關(guān)于SQL中笛卡爾積的文章就介紹到這了,更多相關(guān)SQL中笛卡爾積內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL運行報錯:“Expression?#1?of?SELECT?list?is?not?in?GR
這篇文章主要給大家介紹了關(guān)于MySQL運行報錯:“Expression?#1?of?SELECT?list?is?not?in?GROUP?BY?clause?and?contains?nonaggre”的解決方法,文中將解決方法介紹的非常詳細,需要的朋友可以參考下2022-06-06
MySQL數(shù)據(jù)庫數(shù)據(jù)類型的注意點和應(yīng)用實例
這篇文章主要介紹了MySQL數(shù)據(jù)庫數(shù)據(jù)類型的注意點和應(yīng)用的相關(guān)資料,MySQL數(shù)據(jù)類型主要包括tinyint、bit、float、decimal、char和varchar等,每種類型都有其特定的存儲范圍和適用場景,需要的朋友可以參考下2024-12-12
mysql show processlist 顯示mysql查詢進程
processlist命令的輸出結(jié)果顯示了有哪些線程在運行,可以幫助識別出有問題的查詢語句,兩種方式使用這個命令2012-03-03
連接MySQL時出現(xiàn)1449與1045異常解決辦法
這篇文章主要介紹了連接MySQL時出現(xiàn)1449與1045異常解決辦法的相關(guān)資料,通過IP鏈接MySQL的時候會出現(xiàn)1499與1054錯誤異常的情況,這里提供解決辦法,需要的朋友可以參考下2017-09-09
mysql使用教程之分區(qū)表的使用方法(刪除分區(qū)表)
mysql分區(qū)表使用方法,新增分區(qū)、刪除分區(qū)、分區(qū)的合并、分區(qū)的拆分等使用方法2013-12-12
Mysql主從數(shù)據(jù)庫(Master/Slave)同步配置與常見錯誤
今天小編就為大家分享一篇關(guān)于Mysql主從數(shù)據(jù)庫(Master/Slave)同步配置與常見錯誤,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03

