前言
系列文章:
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等 |