网站维护报价表安阳十大著名景点
 天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
neo4jCQL命令
- 一、内容简介
 - 二、缩写解释及注意点
 - 1. Node节点
 - 2. Label标签
 - 3. Property属性
 - 4. Relationship关系
 - 5. 大小写
 - 6. 分割符
 - 7. 下面需要用到的缩写
 
- 三、Node节点操作
 - 1. 创建节点
 - 2. 查询节点
 - 2.1 查询全部节点
 - 2.2 查询指定标签的节点
 - 2.3 查询指定标签指定属性的节点
 
- 3. 修改节点
 - 4. 删除节点
 - 4.1 删除指定标签指定属性的节点
 - 4.2 删除指定标签节点
 - 4.3 删除全部节点
 - 4.4 永久删除
 
- 三、Relationship关系操作
 - 1. 创建关系
 - 2. 查询关系
 - 2.1 查询所有的关系
 - 2.2 条件查询关系
 - 2.3 条件查询关系-where
 - 2.4 查询指定两个节点的关系
 
- 3. 修改关系
 - 3.1 批量修改关系信息
 - 3.2 修改指定两个节点的关系
 - 3.3 指定开始节点来修改关系信息
 - 3.4 指定结束节点来修改关系信息
 
- 4. 删除关系
 - 4.1 批量删除指定标签的所有关系
 - 4.2 删除指定标签指定属性为开始节点的所有关系
 - 4.3 删除指定标签指定属性为结束节点的所有关系
 - 4.5 删除指定标签指定属性的两个节点的所有关系
 - 4.2 删除指定标签为开始节点的所有关系
 - 4.1 批量删除所有关系
 
一、内容简介
以下内容为neo4j数据库相关操作命令,包含节点的增删改查和关系的增删改查
 请先安装neo4j数据库,运行服务,使用neo4j浏览器访问数据库来进行操作。
 neo4j介绍
 neo4j数据库安装及浏览器访问
 以下内容均为neo4j浏览器界面输入命令操作
 命令语法内容涵盖大部分常用内容,变化很多但可举一反三。
二、缩写解释及注意点
1. Node节点
节点是Neo4j数据库最小单位
 一个节点相当于mysql中的一条记录
 以下命令中用n表示,多个节点时用n1,n2,n3。。。
2. Label标签
标签是对节点的归类,多个节点可归属同一个标签
 标签和节点的关系可以理解为java中类和实例的关系
 以下命令中用L表示标签,多个标签时用L1 ,L2,L3。。。
3. Property属性
属性是节点的数据,一个节点可以有多个属性,属性和节点的关系可以理解为Java中实例对象和属性的关系。属性以键值的形式存在,一个属性名对应一个属性值。
 以下命令中用p表示属性名,用v表示属性值,如果含有多个属性加数字来表示p1:v1,p2:v2。。。
4. Relationship关系
关系是用来连接节点的,表示节点与节点之间的关系,关系也和节点一样有属性,同一个节点可以有多个关系。关系也有标签,通常指定一个关系时用[r:R],r类似于节点,R类似于节点对应的标签。
 因为关系不会一次性用多个,所以以下命令中只会用到r和R
5. 大小写
CQL命令的关键字如create、delete、match、set等是不区分大小写的
 可以用大写也可以用小写,以下命令中均以小写(个人习惯)
6. 分割符
命令中当有多个参数并列时需要用到分隔符
 正常都用逗号隔开,但如where这种子句条件时用and分割
7. 下面需要用到的缩写
n :node节点
 L :Label标签
 p :property属性名
 v :value属性值
 r  :relationship关系
 R :Relationship关系标签
文章中的语法的缩写字母并非固定,可以任意字母更换,但推荐使用对应缩写,方便理解和记忆。
以下仅为命令语法,具体演示实例请参考: neo4j的CQL命令实例演示
三、Node节点操作
对node节点的增删改查操作
1. 创建节点
create新增
create(n:L{p1:v1,p2:v2}) return n
 
2. 查询节点
match查询
2.1 查询全部节点
括号可以省略
match(n) return(n)
//或
match(n) return n
 
2.2 查询指定标签的节点
match(n:L)
 
2.3 查询指定标签指定属性的节点
match(n:L{p1:v1,p2:v2})
 
3. 修改节点
set修改,但需要配合match搜索使用
match(n:L{p1:v1,p2:v2})set n.p1=v11,n.p2=v22
 
4. 删除节点
delete删除,如果节点存在关系,则无法使用delete删除,此时需要在delete前加上detach关键字强制删除
4.1 删除指定标签指定属性的节点
match(n:L{p1:v1,p2:v2})delete n
 
4.2 删除指定标签节点
match(n:L) delete n
 
4.3 删除全部节点
match(n) delete n
 
4.4 永久删除
如果节点包含关系,则无法直接使用delete删除,需要使用detach配置delete强制删除
 使用detach可以实现永久删除数据
match(n) detach delete n
 
三、Relationship关系操作
1. 创建关系
创建两个节点之间的关系,并给关系添加属性信息,添加后返回节点和关系的图数据结果
match(n1:L1{p1:v1,p2:v2}),(n2:L2{p11:v11}) create(n1)-[r:R{p111:v111}]->(n2) return n1,r,n2
 
2. 查询关系
同样的查询关系也是用match
2.1 查询所有的关系
match(n1)-[r]-(n2)return n1,r,n2
 
2.2 条件查询关系
查询n1节点属性p1、p2对应的所有关系
match(n1:L1{p1:v1,p2:v2})-[r]->(n2) return n1,r,n2
 
2.3 条件查询关系-where
使用where子句查询属性p1值为v1属性p2值为v2的n1节点的所有关系
match(n1)-[r]->(n2) where n1.p1=v1 and n1.p2=v2 return n1,r,n2
 
2.4 查询指定两个节点的关系
match(n1:L1{p1:v1})-[r]->(n2:L2{p2:v2})return n1,r,n2
 
3. 修改关系
3.1 批量修改关系信息
修改指定关系标签的指定属性信息
 将标签为R的所有关系属性pr1改为vr1,并返回修改后的图数据
match(n1)-[r]-(n2) set r.pr1 = vr1 return n1,r,n2
//或
match(n1)-[r:R]-(n2) set r.pr1 = vr1 return n1,r,n2
 
3.2 修改指定两个节点的关系
修改两个指定节点的指定关系标签的关系属性信息
match(n1:L1{p1:v1})-[r]->(n2:L2{p2:v2}) set r.pr1=vr1 return n1,r,n2
//或
match(n1:L1{p1:v1})-[r:R]->(n2:L2{p2:v2}) set r.pr1=vr1 return n1,r,n2
 
3.3 指定开始节点来修改关系信息
match(n1:L1{p1:v1})-[r:R]->(n2) set r.pr1=vr1  return n1,r,n2
 
3.4 指定结束节点来修改关系信息
箭头可指向右侧也可指向左侧
match(n1:L1{p1:v1})<-[r:R]-(n2) set r.pr1=vr1  return n1,r,n2
 
4. 删除关系
4.1 批量删除指定标签的所有关系
match(n1)-[r:R]->(n2) delete r
 
4.2 删除指定标签指定属性为开始节点的所有关系
match(n1:L1{p1:v1})-[r]->(n2) delete r
 
4.3 删除指定标签指定属性为结束节点的所有关系
match(n1:L1{p1:v1})<-[r]-(n2) delete r
 
4.5 删除指定标签指定属性的两个节点的所有关系
match(n1:L1{p1:v1})-[r]-(n2:L2{p2:v2}) delete r
 
4.2 删除指定标签为开始节点的所有关系
match(n1:L1)-[r]->(n2) delete r
 
4.1 批量删除所有关系
match(n1)-[r]->(n2) delete r
 
以上就是CQL命令内容,感谢阅读,祝君暴富!
