sql 多表查詢結果驗證
阿新 • • 發佈:2018-10-26
插入數據 create reat sql語句 ont creat 卡爾 nbsp 總結
1.笛卡爾積
定義:
設A,B為集合,用A中元素為第一元素,B中元素為第二元素構成的有序對,所有這樣的有序對組成的集合
,叫做A與B的笛卡爾積,記作AxB.
上面有一個很關鍵的詞為“有序”,因此,我們來看一個例子:
例如,A={a,b},B={0,1,2},則
AxB={<a,o>,<a,1>,<a,2>,<b,0>,<b,1>,<b,2>,}
BxA={<0,a>,<0,b>,<1,a>,<1,b>,<2,a>,<2,b>}
因此,一般地說,笛卡爾積運算不滿足交換律,即AxB≠BxA
2. sql語句:
MSSQL的多表查詢(笛卡爾積原理)
驗證過程:
建立表A,B,C,D,且每個表都只創建一列
代碼如下:
創建表
- create table A (id int not null)
- create table B (id2 int not null)
- create table C (id3 int not null)
- create table D (id4 int not null)
插入數據
- insert into A values(1),(2),(3)
- insert into B values(1),(2),(3)
- insert into C values(1),(2),(3),(4),(5)
- insert into D values(1),(2)
表示:
A={1,2,3}
B={1,2,3}
C={1,2,3,4,5}
D={1,2}
查詢數據:
select * from A,B select * from A,C select * from A,D
笛卡爾積為 B X A 笛卡爾積為 A X C 笛卡爾積為 D X A
總結:
記 A表的記錄行的行數為n,B表的記錄行的行數為m
當 n 》m時,select * from A,B的結果集為笛卡爾積 B X A
當 n < m時,select * from A,B的結果集為笛卡爾積 A X B
sql 多表查詢結果驗證