暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Neo4j: 你还不会cpl?

PuShkin 2020-10-14
371

CPL

CQL代表Cypher查询语言。像Oracle数据库具有查询语言SQL,Neo4j具有CQL作为查询语言


基础点

1. cpl特征

  • 它是Neo4j图形数据库的查询语言。

  • 它是一种声明性模式匹配语言

  • 它遵循SQL语法。

  • 它的语法是非常简单且人性化、可读的格式。


2.常用命令关键词

CPL命令关键词用法
CREATE创建节点,关系和属性
MATCH检索有关节点,关系和属性数据
RETURN返回查询结果
WHERE提供条件过滤检索数据
DELETE删除节点和关系
REMOVE删除节点和关系的属性
ORDER BY排序检索数据
SET添加或更新标签
Aggregation用于对CQL查询结果执行一些聚合操作。
Relationship用于获取关系的细节,如startnode,endnode等。



一. 创建节点

Neo4j使用CQL“CREATE”命令

  • 创建没有属性的节点

  • 使用属性创建节点

  • 在没有属性的节点之间创建关系

  • 使用属性创建节点之间的关系

  • 为节点或关系创建单个或多个标签


命令格式

CREATE (<node-name>:<label-name>)
   
// PS:也可以创建多个标签到节点
CREATE (<node-name>:<label-name1>:<label-name2>.....:<label-namen>)

node-name :  节点代表的是查询得到的实例对象集合,或者创建的对应对象

可以简单的理解为: 就是一个对象的引用(名)变量名, 可以方便我们对其进行操作

不需要对对象操作时,可以不写node-name, 比如在创建节点的时候


label-name:   节点标签名称. 作为内部节点名称的别名,

标签可以看做是图数据库的分类,

相当于mysql  ---------- 表名


实例

1. 创建一个Person人的标签, 3个节点, 属性: id, name, desc 
CREATE (men:Person {id:1,name:"nandi1",age:100,desc:"test1"})
CREATE (women:Person {id:2,name:"nandi2",age:100,desc:"test2"})
CREATE (x:Person {id:3,name:"nandi3",age:100,desc:"test3"})
// 不写node-name 也是可以的
CREATE (:Person {id:4,name:"nandi4",age:100,desc:"test4"})

查看结果


二. 关系

创建统一用create命令,而关系的创建,实际上和创建节点差不多,唯一区别就是,关系是有方向的,而且关系用‘[]’表示,而节点用’()'表示

关系标记

关系标记(->)包含两个节点

  • 从节点

  • 到节点

从节点 -> 到节点

命令格式

// <node1-details>是“From Node”节点详细信息
// <node2-details>是“到节点”节点详细信息
// relationship-details>是关系详细信息
CREATE (<node1-details>)-[<relationship-details>]->(<node2-details>)

实例

MATCH (a:Person), (b:Person) where a.name="nandi1" and b.name="nandi2" 
create(a)-[r:兄弟{des:"兄弟关系测试"}]->(b) return a,r,b

// 省略标签
MATCH (a), (b) where a.name="nandi1" and b.name="nandi3"
create(a)-[r:兄弟{des:"兄弟关系测试"}]->(b) return a,r,b

MATCH (a), (b) where a.name="nandi1" and b.name="nandi3"
create(b)-[r:兄弟{des:"兄弟关系测试"}]->(a) return a,r,b


三. 查找

Neo4j CQL MATCH命令用于 -

  • 从数据库获取有关节点和属性的数据

  • 从数据库获取有关节点,关系和属性的数据


命令格式

MATCH 
(
  <node-name>:<label-name>
)


查找实例

// 查找标签Person所有节点
match (x: Person) return x
// 查找标签Person, 节点id=1的节点
match (x: Person) where x.id = 1 return x



查找关系

MATCH (a)-[r]-(b) where a.name="nandi1" and b.name="nandi2" return a, r, b


四. 其他

DELETE

REMOVE

SET

UNION

LIMIT

ORDER BY

COUNT

MAX

MIN

AVG

SUM

...省略1万字...


文章转载自PuShkin,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论