前言
刚刚我们介绍了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等