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

Oracle如何利用交叉連接生成數(shù)字序列

 更新時間:2024年06月11日 09:35:01   作者:梁萌  
這篇文章主要介紹了Oracle如何利用交叉連接生成數(shù)字序列問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Oracle用交叉連接生成數(shù)字序列

建表并插入記錄

CREATE TABLE t_number(n INTEGER PRIMARY KEY);
INSERT INTO t_number VALUES (0);
INSERT INTO t_number VALUES (1);
INSERT INTO t_number VALUES (2);
INSERT INTO t_number VALUES (3);
INSERT INTO t_number VALUES (4);
INSERT INTO t_number VALUES (5);
INSERT INTO t_number VALUES (6);
INSERT INTO t_number VALUES (7);
INSERT INTO t_number VALUES (8);
INSERT INTO t_number VALUES (9);

實現(xiàn)SQL:

SELECT hundred.n * 100 + ten.n * 10 + one.n AS n
FROM t_number hundred
CROSS JOIN t_number ten
CROSS JOIN t_number one
ORDER BY n

執(zhí)行結(jié)果:

查詢返回了一個0~999的數(shù)字序列。

顯然,我們可以通過更多的自連接生成更大的數(shù)字序列。

還有其他生成序列的方法:

例如connect by結(jié)合rownum實現(xiàn)

select rownum from dual connect by rownum<=10;

使用level實現(xiàn)

select level from dual connect by level<=10;

Oracle表的連接(交叉連接 ,內(nèi)連接,自然連接,外連接,全外連接)

核心:交叉連接

select A.column1,A.column2,B.column1,B.column2 from A cross join B;

交叉連接就是做笛卡爾積 計算 原理如下 具體原理百度

解讀示例: A表有2行數(shù)據(jù) , B表有3行數(shù)據(jù) 交叉連接后,產(chǎn)生一個新表 C。

A ----------B
1 a2 —1 b2
2 a4 —2 b4
------ —3 b6
C
1 a2 1 b2
1 a2 2 b4
1 a2 3 b6
2 a4 1 b2
2 a4 2 b4
2 a4 3 b6

表C左邊為 A表數(shù)據(jù), 右邊為B表數(shù)據(jù)。 一共產(chǎn)生6行數(shù)據(jù)(2*3=6)。其實就是排列組合。

內(nèi)連接

在表C中 根據(jù)on 關(guān)鍵字后的條件 找行數(shù)據(jù),然后 顯示出來,顯示的列就是select后的指定列;

特殊點:on 的兩個判斷列 名字可以不同 類型大致相同

select A.column1,A.column2,B.column1,B.column2 from A inner join B on A.column1=B.column1

在C表中找 到

1 a2 1 b2
2 a4 2 b4

自然連接

就是一種內(nèi)連接

select A.column1,A.column2,B.column1,B.column2 from A natural join B

特殊在于:

1、省略了 on 語句 (條件語句) 系統(tǒng)會自動找 判斷列

2、表A和表2中 至少有各自有一列 作為判斷列,名稱相同,類型大致相同()

外連接(左外 右外)

先根據(jù)on 語句的條件 進行內(nèi)連接 得到一個結(jié)果,然后在結(jié)果的基礎(chǔ)上 ,添加行,把A側(cè)沒有顯示的 行數(shù)據(jù),顯示出來,B側(cè) 顯示為NULL;

全外連接

此連接 先根據(jù)on 語句的條件 進行內(nèi)連接 得到一個結(jié)果,然后在結(jié)果的基礎(chǔ)上,添加行,把A側(cè)沒有顯示的 行數(shù)據(jù),顯示出來,B側(cè) 顯示為NULL; 把B側(cè)沒有顯示的 行數(shù)據(jù),顯示出來,A側(cè) 顯示為NULL;

感興趣的 可以自己做幾個例子寫一寫

on 后面 可以用大于 小于 等于做判斷

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

长岭县| 勃利县| 南阳市| 剑阁县| 华容县| 临武县| 元阳县| 偏关县| 京山县| 永善县| 大同县| 余江县| 定陶县| 乐至县| 永平县| 专栏| 滦南县| 花垣县| 大渡口区| 屯昌县| 拜城县| 钟祥市| 昆山市| 河曲县| 深州市| 陵水| 奇台县| 阿坝| 永登县| 旺苍县| 东丰县| 嘉峪关市| 岚皋县| 蕲春县| 永吉县| 十堰市| 新沂市| 乐山市| 阿拉善盟| 云南省| 鱼台县|