Neo4j CQL(附springboot集成neo4j)

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

常用的Neo4j CQL命令/条款如下:

S.No.CQL命令/条用法
1。CREATE
创建
创建节点,关系和属性
2。MATCH
匹配
检索有关节点,关系和属性数据
3。RETURN
返回
返回查询结果
4。WHERE
哪里
提供条件过滤检索数据
5。DELETE
删除
删除节点和关系
6。REMOVE
移除
删除节点和关系的属性
7。

ORDER BY

以…排序

排序检索数据
8。SET
添加或更新标签

以下是常用的Neo4j CQL函数:

S.No.定制列表功能用法
1。String
字符串
它们用于使用String字面量。
2。Aggregation
聚合
它们用于对CQL查询结果执行一些聚合操作。
3。Relationship
关系
他们用于获取关系的细节,如startnode,endnode等。

Neo4j CQL - CREATE命令

CREATE (<node-name>:<label-name>)
语法元素描述
CREATE它是一个Neo4j CQL命令。
<node-name>它是我们要创建的节点名称。
<label-name>它是一个节点标签名称

Neo4j CQL创建具有属性的节点 

CREATE (
   <node-name>:<label-name>
   { 	
      <Property1-name>:<Property1-Value>
      ........
      <Propertyn-name>:<Propertyn-Value>
   }
)
语法元素描述
<node-name>它是我们将要创建的节点名称。
<label-name>它是一个节点标签名称
<Property1-name>...<Propertyn-name>属性是键值对。 定义将分配给创建节点的属性的名称
<Property1-value>...<Propertyn-value>属性是键值对。 定义将分配给创建节点的属性的值

create (dept:Dept{no: 10, name:"市场部", address: "成都"})

Neo4j CQL - MATCH命令

MATCH 
(
   <node-name>:<label-name>
)
语法元素描述
<node-name>这是我们要创建一个节点名称。
<label-name>这是一个节点的标签名称

match (n:Dept) return n

match必须和return一起使用

Neo4j CQL - 关系基础

CREATE (p1:Profile1)-[r1:LIKES]->(p2:Profile2)

这里p1和profile1是节点名称和节点标签名称“From Node”

p2和Profile2是“To Node”的节点名称和节点标签名称

r1是关系名称

LIKES是一个关系标签名称

Neo4j CQL - WHERE子句

match (n:Employee) where n.name = "frank" return n

 Neo4j CQL - DELETE删除

MATCH (e: Employee) DELETE e

先查询出来再删除掉。

删除指定节点的属性

MATCH (book { id:122 })

REMOVE book.price

RETURN book

Neo4j CQL - ORDER BY排序

MATCH (n:Employee) RETURN n order by n.deptno desc

UNION子句语法

<MATCH Command1>
   UNION
<MATCH Command2>

 下面就是返回两个相同的列名

MATCH (cc:CreditCard) RETURN cc.id,cc.number
UNION
MATCH (dc:DebitCard) RETURN dc.id,dc.number

UNION ALL子句

它结合并返回两个结果集的所有行成一个单一的结果集。它还返回由两个节点重复行。

MATCH (cc:CreditCard)
RETURN cc.id as id,cc.number as number,cc.name as name,
   cc.valid_from as valid_from,cc.valid_to as valid_to
UNION ALL
MATCH (dc:DebitCard)
RETURN dc.id as id,dc.number as number,dc.name as name,
   dc.valid_from as valid_from,dc.valid_to as valid_to

MATCH (n:Employee) RETURN n skip 3

skip跳过3个节点返回最后两条数据

MERGE命令是CREATE命令和MATCH命令的组合。

MERGE = CREATE + MATCH

Neo4j CQL MERGE命令在图中搜索给定模式,如果存在,则返回结果

如果它不存在于图中,则它创建新的节点/关系并返回结果。

Neo4j - 方向关系

CREATE (<node1-details>)-[<relationship-details>]->(<node2-details>)

<node1-details>是“From Node”节点详细信息

<node2-details>是“到节点”节点详细信息

relationship-details>是关系详细信息

使用一个箭头标记:() - []→()。 它表示从左侧节点到右侧节点的方向。

如果我们尝试使用相同的语法,没有箭头标记like() - [] - (),这意味着没有方向的关系。 然后Neo4j DB服务器应该抛出一个错误消息

CREATE (n1:Node1)-[r1:Relationship]->(n2:Node2)

CREATE (n1:Node3)<-[r1:Relationship]-(n2:Node2) 

Neo4J索引操作

  • Create Index 创建索引
  • Drop Index 丢弃索引
  • CREATE INDEX ON :Customer (name)

Neo4j CQL - UNIQUE约束

CREATE CONSTRAINT ON (cc:CreditCard)

ASSERT cc.number IS UNIQUE

给节点creditcard的节点的number设置唯一约束

DROP CONSTRAINT ON (cc:CreditCard)
ASSERT cc.number IS UNIQUE

删除唯一约束

Neo4j CQL - 关系函数_w3cschoolNeo4j CQL提供了一组关系函数,以在获取开始节点,结束节点等细节时知道关系的细节。 在这里,我们将讨论一些重要的和经常使用的功能。关系函数列表S.No.功能描述1。STARTNODE它用于知道关系的开始节点。2。ENDNODE它用于知道关系的结束节点。3。ID它用于知道关系的ID。4。TYP_来自neo4j 教程,w3cschool编程狮。https://www.w3cschool.cn/neo4j/neo4j_cql_relationship_functions.html

springboot集成neo4j的demo 

https://gitee.com/chenxb/springboot-neo4jhttps://gitee.com/chenxb/springboot-neo4j

1.match (n: Class{name: "大学英语"}) delete n   删除指定的节点

match (n:profession) detach delete n 删除节点!!!

match (n) delete n
match是匹配操作,小括号代表一个节点 n为标识符

match (n: Profession) delete n 删除整个节点下的所有数据

2.create (n: Class{name: "大学英语", address: "北京大学"}) return n 创建节点

create是创建操作, Class是标签,代表节点的类型,花括号代表节点的属性。里面有两个属性

create (n1: Class{name: "大学英语", address: "北京大学"})
create (n2: Class{name: "大学物理", address: "北京大学"})
create (n3: Class{name: "高等数学", address: "北京大学"})
return n1,n2,n3


create (n1: Profession{name: "计算机专业", address: "北京大学"})
create (n2: Profession{name: "软件工程", address: "北京大学"})
create (n3: Profession{name: "大数据", address: "北京大学"})
return n1,n2,n3

3.创建关系
create (n1: class{name: "大英2"})
create (n2: class{name: "大英3"})
create (n1)-[r: BASIC] ->(n2)
return n1,n2

create (n:class{name: "大学英语6"})-[r:BASIC{name: "基础"}]->(m:class{name: "大学英语7"}) return r
create (n:class{name: "大学英语10"})<-[r:BASIC{name: "基础"}]-(m:class{name: "大学英语9"}) return n,m

create (a:Person{name:'Frank'}) -[r:BORN_IN{year: 2001}]-> (b:Location{city:'beijing'}) return a,b
create (a:Person{name:'kangkang'}) -[r:Friends{sicen: 2020}] -> (b:Person{name:'xiaoxiao'}) return a, b


这里的[]即为关系,BASIC为关系类型,这里的箭头是有方向的,表示从n1到n2的关系。

match (n:Person{name: 'tom'}) -[rel:FriendShip]-(m:Person{name:'jack'}) delete rel 删除关系

match (n:Person{name: 'xiaoxiao'}) -[rel:Friends]-(m:Person{name:'chenchen'}) delete rel

MATCH (n: ENTERPRISE {enterpriseId: $enterpriseId}) <- [r: CONTRIBUTE ] - (m) delete r

4.关系增加属性
create (n1: class{name: "大英2"})
create (n2: class{name: "大英3"})
create (n1)-[r: BASIC{since: 2021}] ->(n2)
return n1,n2


create (n1: class{name: "大英1"})
create (n2: class{name: "大英2"})
create (n3: class{name: "大英3"})
create (n1)-[r1: BASIC{since: 2021}] ->(n2)
create (n2)-[r2: BASIC{since: 2021}] ->(n3)
return n1,n2,n3

5.不同类型节点之间的关系->课程和专业的关系
create (n1: class{name:"大英1"})
create (n2: class{name:"大英2"})
create (n3: class{name:"大英3"})
create (m1: profession{name:"计算机专业"})
create (m2: profession{name:"软件工程"})
create (m3: profession{name:"大数据"})
create (n1)-[r1: BASIC] ->(n2)
create (n2)-[r2: BASIC] ->(n3)
create (m1)-[r3: QEQUIRE] ->(n1)
create (m2)-[r4: QEQUIRE] ->(n1)
create (m3)-[r5: QEQUIRE] ->(n1)
return n1,n2,n3,m1,m2,m3


MATCH p=(n:Enterprise{name:'合肥新立信信息科技有限公司'})-[r:Contribute]-()  RETURN p

查询该企业的 关系为Contribute的 都有关系的数据


 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值