av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

創(chuàng)新互聯(lián)OceanBase教程:OceanBase 層次查詢(xún)

層次查詢(xún)(Hierarchical Query)是一種具有特殊功能的查詢(xún)語(yǔ)句,通過(guò)它能夠?qū)⒎謱訑?shù)據(jù)按照層次關(guān)系展示出來(lái)。分層數(shù)據(jù)是指關(guān)系表中的數(shù)據(jù)之間具有層次關(guān)系。這種關(guān)系在現(xiàn)實(shí)生活中十分常見(jiàn),例如:

成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),成都做網(wǎng)站公司-成都創(chuàng)新互聯(lián)公司已向上1000家企業(yè)提供了,網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)絡(luò)營(yíng)銷(xiāo)等服務(wù)!設(shè)計(jì)與技術(shù)結(jié)合,多年網(wǎng)站推廣經(jīng)驗(yàn),合理的價(jià)格為您打造企業(yè)品質(zhì)網(wǎng)站。

  • 組織架構(gòu)中組長(zhǎng)和組員之間的關(guān)系。

  • 企業(yè)中上下級(jí)部門(mén)之間的關(guān)系。

  • Web 網(wǎng)頁(yè)中,頁(yè)面跳轉(zhuǎn)的關(guān)系。

語(yǔ)法


SELECT [level], column, expr... FROM table [WHERE condition] [ START WITH start_expression ]
CONNECT BY [NOCYCLE] { PRIOR child_expr = parent_expr | parent_expr = PRIOR child_expr }
[ ORDER SIBLINGS BY …] [ GROUP BY … ] [ HAVING … ] [ ORDER BY … ]

參數(shù)

LEVEL

節(jié)點(diǎn)的層次,是偽列,表示等級(jí)。由查詢(xún)的起點(diǎn)開(kāi)始算起為 1,依次類(lèi)推。

condition

條件。

CONNECT BY

指明如何來(lái)確定父子關(guān)系,這里通常使用等值表達(dá)式,但其他表達(dá)式同樣支持。

START WITH

指明層次查詢(xún)中的根行(Root row)。

PRIOR 運(yùn)算符

NOCYCLE

當(dāng)指定該關(guān)鍵字時(shí),即使返回結(jié)果中有循環(huán)仍舊可以返回,并可以通過(guò) CONNECT_BY_ISCYCLE 虛擬列來(lái)指明哪里出現(xiàn)循環(huán);否則,出現(xiàn)循環(huán)會(huì)給客戶(hù)端報(bào)錯(cuò)。

ORDER SIBLINGS BY

指定同一個(gè)層級(jí)行之間的排列順序。

參數(shù)

說(shuō)明

CONNECT_BY_ISLEAF

當(dāng)前數(shù)據(jù)行是否是層次關(guān)系中的葉子節(jié)點(diǎn),是偽列,0表示不是,1表示是。

CONNECT_BY_ISCYCLE

當(dāng)前數(shù)據(jù)行是否在循環(huán)中,是偽列,0表示不是,1表示是。

CONNECT_BY_ROOT運(yùn)算符

CONNECT_BY_ROOT是一元運(yùn)算符,表示參數(shù)中的列來(lái)自于層次查詢(xún)的根節(jié)點(diǎn),與一元的 + 和 - 具有相同的優(yōu)先級(jí)。

PRIOR 是一元運(yùn)算符,表示參數(shù)中的列來(lái)自于父行(Parent row),與一元的 + 和 - 具有相同的優(yōu)先級(jí)。

執(zhí)行流程

使用和實(shí)現(xiàn)層次查詢(xún)最關(guān)鍵是要理解其執(zhí)行流程,層次查詢(xún)執(zhí)行流程:

  1. 執(zhí)行 FROM 后面的 SCAN 或 JOIN 操作;

  2. 根據(jù) START WITH 和 CONNECT BY 的內(nèi)容生成層次關(guān)系結(jié)果;

  3. 按照常規(guī)查詢(xún)執(zhí)行流程執(zhí)行剩下的子句(例如 WHERE、GROUP、ORDER BY......)對(duì)于 2 中生成層次關(guān)系的流程可以理解為:

  4. 根據(jù) START WITH 中的表達(dá)式得到根行(Root rows)。

  5. 根據(jù) CONNECT BY 中的表達(dá)式 選擇每個(gè)根行(Root rows)的子行(Child rows)。

  6. 將 2 中生成的子行(Child rows)作為新的根行(Root rows)進(jìn)一步生成子行(Child rows),周而復(fù)始直到?jīng)]有新行生成。

示例

展示層次查詢(xún)的使用,向表 emp中的 emp_idposition 和 mgr_id 列插入數(shù)據(jù)。執(zhí)行以下語(yǔ)句:


CREATE TABLE emp(emp_id INT,position VARCHAR(50),mgr_id INT);
INSERT INTO emp VALUES (1,'全球經(jīng)理',NULL);
INSERT INTO emp VALUES (2,'歐洲區(qū)經(jīng)理',1);
INSERT INTO emp VALUES (3,'亞太區(qū)經(jīng)理',1);
INSERT INTO emp VALUES (4,'美洲區(qū)經(jīng)理',1);
INSERT INTO emp VALUES (5,'意大利區(qū)經(jīng)理',2);
INSERT INTO emp VALUES (6,'法國(guó)區(qū)經(jīng)理',2);
INSERT INTO emp VALUES (7,'中國(guó)區(qū)經(jīng)理',3);
INSERT INTO emp VALUES (8,'韓國(guó)區(qū)經(jīng)理',3);
INSERT INTO emp VALUES (9,'日本區(qū)經(jīng)理',3);
INSERT INTO emp VALUES (10,'美國(guó)區(qū)經(jīng)理',4);
INSERT INTO emp VALUES (11,'加拿大區(qū)經(jīng)理',4);
INSERT INTO emp VALUES (12,'北京區(qū)經(jīng)理',7);

通過(guò)上面的內(nèi)容可以看見(jiàn)列 position 具有清晰的層次關(guān)系。樹(shù)狀結(jié)構(gòu)如下:

是按照層次結(jié)構(gòu)將結(jié)果展示出來(lái),執(zhí)行以下語(yǔ)句:


SELECT emp_id, mgr_id, position, level FROM emp
START WITH mgr_id IS NULL CONNECT BY PRIOR emp_id = mgr_id;

查詢(xún)結(jié)果如下:


+--------+--------+-------------------+-------+
| EMP_ID | MGR_ID | POSITION          | LEVEL |
+--------+--------+-------------------+-------+
|      1 |    NULL| 全球經(jīng)理           |     1 |
|      2 |      1 | 歐洲區(qū)經(jīng)理         |     2 |
|      5 |      2 | 意大利區(qū)經(jīng)理       |     3 |
|      6 |      2 | 法國(guó)區(qū)經(jīng)理         |     3 |
|      3 |      1 | 亞太區(qū)經(jīng)理         |     2 |
|      7 |      3 | 中國(guó)區(qū)經(jīng)理         |     3 |
|     12 |      7 | 北京區(qū)經(jīng)理         |     4 |
|      8 |      3 | 韓國(guó)區(qū)經(jīng)理         |     3 |
|      9 |      3 | 日本區(qū)經(jīng)理         |     3 |
|      4 |      1 | 美洲區(qū)經(jīng)理         |     2 |
|     10 |      4 | 美國(guó)區(qū)經(jīng)理         |     3 |
|     11 |      4 | 加拿大區(qū)經(jīng)理       |     3 |
+--------+--------+-------------------+-------+

如果僅查詢(xún)“亞太區(qū)”的層次結(jié)構(gòu),執(zhí)行以下語(yǔ)句:


SELECT emp_id, mgr_id, position, level FROM emp START WITH position = '亞太區(qū)經(jīng)理' CONNECT BY PRIOR emp_id = mgr_id;

查詢(xún)結(jié)果如下:


+--------+--------+----------------+-------+
| EMP_ID | MGR_ID | POSITION       | LEVEL |
+--------+--------+----------------+-------+
|      3 |      1 | 亞太區(qū)經(jīng)理      |     1 |
|      7 |      3 | 中國(guó)區(qū)經(jīng)理      |     2 |
|     12 |      7 | 北京區(qū)經(jīng)理      |     3 |
|      8 |      3 | 韓國(guó)區(qū)經(jīng)理      |     2 |
|      9 |      3 | 日本區(qū)經(jīng)理      |     2 |
+--------+--------+----------------+-------+

本文題目:創(chuàng)新互聯(lián)OceanBase教程:OceanBase 層次查詢(xún)
網(wǎng)頁(yè)URL:http://uogjgqi.cn/article/ccocjcc.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流