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