欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

SQL和nGQL區(qū)別有哪些

這篇文章主要講解了“SQL和nGQL區(qū)別有哪些”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“SQL和nGQL區(qū)別有哪些”吧!

創(chuàng)新互聯(lián)公司專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、鷹潭網(wǎng)站定制設(shè)計、自適應品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、電子商務商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應式網(wǎng)頁設(shè)計等建站業(yè)務,價格優(yōu)惠性價比高,為鷹潭等各大城市提供網(wǎng)站開發(fā)制作服務。

SQL (Structured Query Language) 是具有數(shù)據(jù)操縱和數(shù)據(jù)定義等多種功能的數(shù)據(jù)庫語言,這種語言是一種 特定目的編程語言,用于管理 關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS),或在 關(guān)系流數(shù)據(jù)管理系統(tǒng)(RDSMS)中進行流處理。

nGQL 是一種類 SQL 的聲明型的文本查詢語言,相比于 SQL, nGQL 為可擴展、支持圖遍歷、模式匹配、分布式事務(開發(fā)中)的圖數(shù)據(jù)庫查詢語言。

概念對比

對比項SQLnGQL
\
\
點類型\tag
邊類型\edge type
點 ID主鍵vid
邊 ID復合主鍵起點、終點、rank
點或邊的屬性
點或邊

語法對比

數(shù)據(jù)定義語言 (DDL)

數(shù)據(jù)定義語言(DDL)用于創(chuàng)建或修改數(shù)據(jù)庫的結(jié)構(gòu),也就是 schema。

SQL和nGQL區(qū)別有哪些

索引
對比項SQLnGQL
創(chuàng)建索引CREATE INDEXCREATE {TAG | EDGE} INDEX
刪除索引DROP INDEXDROP {TAG | EDGE} INDEX
列出索引SHOW INDEX FROMSHOW {TAG | EDGE} INDEXES
重構(gòu)索引ANALYZE TABLEREBUILD {TAG | EDGE} INDEX <index_name> [OFFLINE]

數(shù)據(jù)操作語言(DML)

數(shù)據(jù)操作語言(DML)用于操作數(shù)據(jù)庫中的數(shù)據(jù)。

SQL和nGQL區(qū)別有哪些

數(shù)據(jù)查詢語言(DQL)

數(shù)據(jù)查詢語言(DQL)語句用于執(zhí)行數(shù)據(jù)查詢。本節(jié)說明如何使用 SQL 語句和 nGQL 語句查詢數(shù)據(jù)。

SELECT
 [DISTINCT]
 select_expr [, select_expr] ...
 [FROM table_references]
 [WHERE where_condition]
 [GROUP BY {col_name | expr | position}]
 [HAVING  where_condition]
 [ORDER BY {col_name | expr | position} [ASC | DESC]]
GO [[<M> TO] <N> STEPS ] FROM <node_list>
 OVER <edge_type_list> [REVERSELY] [BIDIRECT]
 [WHERE where_condition]
 [YIELD [DISTINCT] <return_list>]
 [| ORDER BY <expression> [ASC | DESC]]
 [| LIMIT [<offset_value>,] <number_rows>]
 [| GROUP BY {col_name | expr | position} YIELD <col_name>]
<node_list>
   | <vid> [, <vid> ...]
   | $-.id
<edge_type_list>
   edge_type [, edge_type ...]
<return_list>
    <col_name> [AS <col_alias>] [, <col_name> [AS <col_alias>] ...]

數(shù)據(jù)控制語言(DCL)

數(shù)據(jù)控制語言(DCL)包含諸如 GRANTREVOKE 之類的命令,這些命令主要用來處理數(shù)據(jù)庫系統(tǒng)的權(quán)限、其他控件。

對比項SQLnGQL
創(chuàng)建用戶CREATE USERCREATE USER
刪除用戶DROP USERDROP USER
更改密碼SET PASSWORDCHANGE PASSWORD
授予權(quán)限GRANT <priv_type> ON [object_type] TO <user>GRANT ROLE <role_type> ON <space> TO <user>
刪除權(quán)限REVOKE <priv_type> ON [object_type] TO <user>REVOKE ROLE <role_type> ON <space> FROM <user>

數(shù)據(jù)模型

查詢語句基于以下數(shù)據(jù)模型:

RDBMS 關(guān)系結(jié)構(gòu)圖

SQL和nGQL區(qū)別有哪些

Nebula Graph 最小模型圖

SQL和nGQL區(qū)別有哪些

本文將使用 NBA 數(shù)據(jù)集。該數(shù)據(jù)集包含兩種類型的點,也就是兩個標簽,即 playerteam ;兩種類型的邊,分別是 servefollow。

在關(guān)系型數(shù)據(jù)管理系統(tǒng)中(RDBMS)中,我們用表來表示點以及與點相關(guān)的邊(連接表)。因此,我們創(chuàng)建了以下表格:player、team、servefollow。在 Nebula Graph中,基本數(shù)據(jù)單位是頂點和邊。兩者都可以擁有屬性,相當于 RDBMS 中的屬性。

Nebula Graph中,點之間的關(guān)系由邊表示。每條邊都有一種類型,在 NBA 數(shù)據(jù)集中,我們使用邊類型 servefollow 來區(qū)分兩種類型的邊。

示例數(shù)據(jù)

在 RDBMS 插入數(shù)據(jù)

首先,讓我們看看如何在 RDBMS 中插入數(shù)據(jù)。我們先創(chuàng)建一些表,然后為這些表插入數(shù)據(jù)。

CREATE TABLE player (id INT, name VARCHAR(100), age INT);
CREATE TABLE team (id INT, name VARCHAR(100));
CREATE TABLE serve (player_id INT, team_id INT, start_year INT, end_year INT);
CREATE TABLE follow (player_id1 INT, player_id2 INT, degree INT);

然后插入數(shù)據(jù)。

INSERT INTO player
VALUES
   (100, 'Tim Duncan', 42),
   (101, 'Tony Parker', 36),
   (102, 'LaMarcus Aldridge', 33),
   (103, 'Rudy Gay',32),
   (104, 'Marco Belinelli', 32),
   (105, 'Danny Green', 31),
   (106, 'Kyle Anderson', 25),
   (107, 'Aron Baynes', 32),
   (108, 'Boris Diaw', 36),
   (109, 'Tiago Splitter', 34),
   (110, 'Cory Joseph', 27);
INSERT INTO team
VALUES
   (200, 'Warriors'),
   (201, 'Nuggets'),
   (202, 'Rockets'),
   (203, 'Trail'),
   (204, 'Spurs'),
   (205, 'Thunders'),
   (206, 'Jazz'),
   (207, 'Clippers'),
   (208, 'Kings');
INSERT INTO serve
VALUES
   (100,200,1997,2016),
   (101,200,1999,2010),
   (102,200,2001,2005),
   (106,200,2000,2011),
   (107,200,2001,2009),
   (103,201,1999,2018),
   (104,201,2006,2015),
   (107,201,2007,2010),
   (108,201,2010,2016),
   (109,201,2011,2015),
   (105,202,2015,2019),
   (109,202,2017,2019),
   (110,202,2007,2009);
INSERT INTO follow
VALUES
   (100,101,95),
   (100,102,91),
   (100,106,90),
   (101,100,95),
   (101,102,91),
   (102,101,75),
   (103,102,70),
   (104,103,50),
   (104,105,60),
   (105,104,83),
   (105,110,87),
   (106,100,88),
   (106,107,81),
   (107,106,92),
   (107,108,97),
   (108,109,95),
   (109,110,78),
   (110,109,72),
   (110,105,85);

在 Nebula Graph 插入數(shù)據(jù)

Nebula Graph中插入數(shù)據(jù)與上述類似。首先,我們需要定義好數(shù)據(jù)結(jié)構(gòu),也就是創(chuàng)建好 schema。然后可以選擇手動或使用 Nebula Graph Studio (Nebula Graph 的可視化工具)導入數(shù)據(jù)。這里我們手動添加數(shù)據(jù)。

在下方的 INSERT 插入語句中,我們向圖空間 NBA 插入了球員數(shù)據(jù)(這和在 MySQL 中插入數(shù)據(jù)類似)。

INSERT VERTEX player(name, age) VALUES
100: ('Tim Duncan'42),
101: ('Tony Parker'36),
102: ('LaMarcus Aldridge'33),
103: ('Rudy Gay'32),
104: ('Marco Belinelli'32),
105: ('Danny Green'31),
106: ('Kyle Anderson'25),
107: ('Aron Baynes'32),
108: ('Boris Diaw'36),
109: ('Tiago Splitter'34),
110: ('Cory Joseph'27);

考慮到篇幅限制,此處我們將跳過插入球隊和邊的重復步驟。你可以點擊 此處下載示例數(shù)據(jù)親自嘗試。

SQL和nGQL區(qū)別有哪些

增刪改查(CRUD)

本節(jié)介紹如何使用 SQL 和 nGQL 語句創(chuàng)建(C)、讀?。≧)、更新(U)和刪除(D)數(shù)據(jù)。

插入數(shù)據(jù)

mysql> INSERT INTO player VALUES (100'Tim Duncan'42);
nebula> INSERT VERTEX player(name, age) VALUES 100: ('Tim Duncan'42);

查詢數(shù)據(jù)

查找 ID 為 100 的球員并返回其 name 屬性:

mysql> SELECT player.name FROM player WHERE player.id = 100;
nebula> FETCH PROP ON player 100 YIELD player.name;

更新數(shù)據(jù)

mysql> UPDATE player SET name = 'Tim';
nebula> UPDATE VERTEX 100 SET player.name = "Tim";

刪除數(shù)據(jù)

mysql> DELETE FROM player WHERE name = 'Tim';
nebula> DELETE VERTEX 121;
nebula> DELETE EDGE follow 100 -> 200;

建立索引

返回年齡超過 36 歲的球員。

SELECT player.name
FROM player
WHERE player.age < 36;

使用 nGQL 查詢有些不同,因為您必須在過濾屬性之前創(chuàng)建索引。更多信息請參見 索引文檔。

CREATE TAG INDEX player_age ON player(age);
REBUILD TAG INDEX player_age OFFLINE;
LOOKUP ON player WHERE player.age < 36;

示例查詢

本節(jié)提供一些示例查詢供您參考。

示例 1

在表 player 中查詢 ID 為 100 的球員并返回其 name 屬性。

SELECT player.name
FROM player
WHERE player.id = 100;

接下來使用 Nebula Graph查找 ID 為 100 的球員并返回其 name 屬性。

FETCH PROP ON player 100 YIELD player.name;

Nebula Graph使用 FETCH 關(guān)鍵字獲取特定點或邊的屬性。本例中,屬性即為點 100 的名稱。nGQL 中的 YIELD 關(guān)鍵字相當于 SQL 中的 SELECT

示例 2

查找球員 Tim Duncan 并返回他效力的所有球隊。

SELECT a.id, a.name, c.name
FROM player a
JOIN serve b ON a.id=b.player_id
JOIN team c ON c.id=b.team_id
WHERE a.name = 'Tim Duncan'

使用如下 nGQL 語句完成相同操作:

CREATE TAG INDEX player_name ON player(name);
REBUILD TAG INDEX player_name OFFLINE;
LOOKUP ON player WHERE player.name == 'Tim Duncan' YIELD player.name AS name | GO FROM $-.VertexID OVER serve YIELD $-.name, $$.team.name;

這里需要注意一下,在 nGQL 中的等于操作采用的是 C 語言風格的 ==,而不是SQL風格的 =。

示例 3

以下查詢略復雜,現(xiàn)在我們來查詢球員 Tim Duncan 的隊友。

SELECT a.id, a.name, c.name
FROM player a
JOIN serve b ON a.id=b.player_id
JOIN team c ON c.id=b.team_id
WHERE c.name IN (SELECT c.name
FROM player a
JOIN serve b ON a.id=b.player_id
JOIN team c ON c.id=b.team_id
WHERE a.name = 'Tim Duncan')

nGQL 則使用管道將前一個子句的結(jié)果作為下一個子句的輸入。

GO FROM 100 OVER serve YIELD serve._dst AS Team | GO FROM $-.Team OVER serve REVERSELY YIELD $$.player.name;

感謝各位的閱讀,以上就是“SQL和nGQL區(qū)別有哪些”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對SQL和nGQL區(qū)別有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

分享標題:SQL和nGQL區(qū)別有哪些
新聞來源:http://aaarwkj.com/article30/igoepo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、移動網(wǎng)站建設(shè)網(wǎng)站制作、企業(yè)網(wǎng)站制作、品牌網(wǎng)站設(shè)計網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
97福利影院在线观看| 亚洲欧美一区二区三区日本| 日本高清一区二区网站| 韩国日本午夜福利在线| 国产成人综合亚洲国产| 亚洲激情久热中文字幕| 日韩欧美国产精品自拍| 伊人99热这里只有精品| 麻豆人妻一区二区三区| 丰满多毛熟妇的大阴户| 91精品国产综合久蜜臂| 国产中文字幕有码视频| 国产我不卡在线观看免费| 国产精致成人免费视频| 日韩国产传媒视频在线观看| 色综合av男人的天堂| 久久精品中文字幕有码日本道 | 天堂av在线资源观看| 黄色录像黄色片黄色片| 欧美一区二区三区成人网| 亚洲av日韩精品久久久| 成年人网站一级黄色免费| 高清国产国产精品三级国产av| 女厕所偷拍一区二区三区| 蜜臀av网站在线播放| 日本欧美高清一区二区| 午夜毛片免费在线播放| 韩国久久久久三级成人| 亚洲一区日本一区二区| 欧美精品成人在线一区| 日韩高清中文字幕在线| 国产偷自一区二区三区| 国产一区精品在线免费看| 99热这里只有精品欧美| 亚洲一区二区三区在线观看| 韩国三级在线视频网站| 中文字幕日韩乱码一级在线| 久草福利视频免费播放| 日本精品三级一区二区视频| 国产精品综合久久久久久| 日本黄色大波少妇网站|