neo4j图数据库基础操作命令(CQL语法)

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

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命令内容,感谢阅读,祝君暴富!


你可能感兴趣的:(DataBase,neo4j)