前言
系列文章:
Nebula Graph-01-Nebula Graph简介和安装以及客户端连接
Nebula Graph-02-NebulaGraph高阶配置、用户管理、日志
Nebula Graph-03-NebulaGraph Studio-可视化web工具安装和使用
Nebula Graph-04-NebulaGraph nGQL的介绍和使用
Nebula Graph-05-NebulaGraph nGQL和SQL区别
Nebula Graph-06-NebulaGraph Java 使用 和SpringBoot集成Nebula Graph
刚刚我们介绍了nGQL的基本用法: Nebula Graph-04-NebulaGraph nGQL的介绍和使用
现在我们来比较一下nGQL 和我们关系型数据库SQL的区别
nGQL和SQL的概念
对比项 |
SQL |
nGQL |
点 |
\ |
点 |
边 |
\ |
边 |
点类型 |
\ |
tag |
边类型 |
\ |
edge type |
点 ID |
主键 |
vid |
边 ID |
复合主键 |
起点、终点、rank |
列 |
列 |
点或边的属性 |
行 |
行 |
点或边 |
数据操作语言(DML)
- DML(Data Manipulation Language,数据操作语言):用于数据的增删改。
- DML操作对象是表里的数据(记录)
对比项 |
SQL |
nGQL |
插入数据 |
INSERT IGNORE INTO <tbl_name> [(col_name [, col_name] ...)] {VALUES | VALUE} [(value_list) [, (value_list)] |
INSERT VERTEX <tag_name> (prop_name_list[, prop_name_list]) {VALUES | VALUE} vid: (prop_value_list[, prop_value_list]) ----------或------INSERT EDGE <edge_name> ( <prop_name_list> ) VALUES | VALUE <src_vid> -> <dst_vid>[@] : ( <prop_value_list> ) |
|
|
|
更新数据 |
UPDATE <tbl_name> SET field1=new-value1, field2=new-value2 [WHERE Clause] |
UPDATE VERTEX SET <update_columns> [WHEN ] UPDATE EDGE SET <update_columns> [WHEN <condition>] |
删除数据 |
DELETE FROM <tbl_name> [WHERE Clause] |
DELETE EDGE <edge_type> -> [@] [, -> ...] DELETE VERTEX <vid_list> |
拼接子查询 |
JOIN |
| |
数据定义语言 (DDL)
- DDL(Data Definition Language,数据定义语言): 用于定义数据的结构,比如 创建、修改或者删除数据库对象。
- DDL操作的对象是表
对比项 |
SQL |
nGQL |
创建图空间(数据库) |
CREATE DATABASE <database_name> |
CREATE SPACE <space_name> |
列出图空间(数据库) |
SHOW DATABASES |
SHOW SPACES |
使用图空间(数据库) |
USE <database_name> |
USE <space_name> |
删除图空间(数据库) |
DROP DATABASE <database_name> |
DROP SPACE <space_name> |
修改图空间(数据库) |
ALTER DATABASE <database_name> alter_option |
\ |
创建 tags/edges |
\ |
CREATE TAG |
创建表 |
CREATE TABLE <tbl_name> (create_definition,...) |
\ |
列出表列名 |
SHOW COLUMNS FROM <tbl_name> |
\ |
列出 tags/edges |
\ |
SHOW TAGS |
修改 tags/edge |
\ |
ALTER TAG |
修改表 |
ALTER TABLE <tbl_name> |
\ |
数据控制语言(DCL)
- DCL(Data Control Language,数据控制语言):用于定义数据库用户的权限。
- DCL的操作对象是用户
对比项 |
SQL |
nGQL |
创建用户 |
CREATE USER |
CREATE USER |
删除用户 |
DROP USER |
DROP USER |
更改密码 |
SET PASSWORD |
CHANGE PASSWORD |
授予权限 |
GRANT <priv_type> ON [object_type] TO |
GRANT ROLE <role_type> ON TO |
删除权限 |
REVOKE <priv_type> ON [object_type] TO |
REVOKE ROLE <role_type> ON FROM |
数据查询语言(DQL)
- DQL(Data Query Language,数据库查询语言):用于查询数据
- DQL的操作对象是数据库
对比项 |
SQL |
nGQL |
查询数据 |
SELECT |
GO, FETCH等 |