Neo4j的语法(3.5版本)

1.公式模式是语法范式
2.代码模式是实例,可按顺序复制执行
3.涉及所有可能的节点、节点类型、属性,关系,关系类型、属性的增删改查
4.学习本教程之后可以学习
neo4j建模规范和思想:Neo4j数据建模教程
python对neo4j的api接口框架py2neo进阶教程:py2neo框架学习全网最详细教程

1.节点规则

节点=(代表元:节点类别{属性1:属性值1,属性2:属性值2})节点=(代表元:节点类别\{属性1:属性值1,属性2:属性值2\}) 节点=(代表元:节点类别{属性1:属性值1,属性2:属性值2})

(n:Person{name:'Tony'})
(n:Person{name:'Tom', age:45, hight:175})
(n:Address{address:'guangdong'})

2.关系规则

关系=[代表元:关系类型{属性:属性值}]关系=[代表元:关系类型\{属性:属性值\}] 关系=[代表元:关系类型{属性:属性值}]

[r:Friend{value:90}]
[r:Live]
[r:transAccounts{cash:800,data:'2022-04-06'}]

3.语法

一、增

i)增加节点

create节点create\quad 节点 create节点

create (n:Person{name:'Tony'})
create (m:Person{name:'Tom', age:45, hight:175})
create (k:address{name:'guangdong'})

ii)一个节点增加标签

match节点set节点:新标签match \quad 节点 \quad set \quad 节点:新标签 match节点set节点:新标签

MATCH (n:Person{name:'Tom'})
SET n:Suspect

iii)增加关系

a 从已有节点添加关系

create节点1,节点2merge节点1−关系−>节点2create \quad 节点1,节点2 \quad merge \quad 节点1-关系->节点2 create节点1,节点2merge节点1−关系−>节点2

match (n:Person{name:'Tony'}),(m:Person{name:'Tom'})
merge (n)-[:Friend{value:90}]->(m)match (n:Person{name:'Tony'}),(m:address{name:'guangdong'})
merge (n)-[:Live]->(m)
b 新建节点添加关系

create节点1−关系−>节点2create \quad 节点1-关系->节点2 create节点1−关系−>节点2

create (n:Person{name:'Sandy'})-[:Friend{value:90}]->(m:Person{name:'Jenny'})
create (x:Person{name:'Peter'})-[:Live]->(y:address{name:'hubei'})
c 部分节点已存在

match节点1merge节点1−关系−>节点2match \quad 节点1 \quad merge \quad 节点1-关系->节点2 match节点1merge节点1−关系−>节点2

match (n:Person{name:'Tony'})
create (n)-[:Friend{value:90}]->(m:Person{name:'Jack'})match (m:address{name:'guangdong'})
create (n:Person{name:'Danny'}) -[:Live]-> (m)

iv)增加属性

a 添加节点属性

match节点1set节点1.属性名1match \quad 节点1 \quad set \quad 节点1.属性名1 match节点1set节点1.属性名1

match (n:Person{name:'Tony'}) set n.age=45
match (n:Person{name:'Tony'}) set n.hight=180
b 增加关系的属性

match关系1set节点1.属性名1match \quad 关系1 \quad set \quad 节点1.属性名1 match关系1set节点1.属性名1

match (n:Person{name:'Tony'})-[r:Friend]-(m:Person{name:'Tom'}) set r.value=45

二、删

i)删除节点

a)方式一:确保该节点连接的关系全部删除

match(n)−[h]−>节点deletehmatch节点−[r]−>(n)deletermatch节点delete节点match\quad (n)-[h]->节点 \quad delete\quad h\\match\quad 节点-[r]->(n) \quad delete\quad r\\match \quad 节点 \quad delete \quad 节点 match(n)−[h]−>节点deletehmatch节点−[r]−>(n)deletermatch节点delete节点

match (n:Person{name:'Peter'})-[h]->(m) delete h;
match (m)-[r]->(n:Person{name:'Peter'}) delete r;
match (n:Person{name:'Peter'}) delete (n)
b)方式二:删除节点同时,解放所有关系

match(n)−[h]−>(m)detachdeletemmatch \quad (n)-[h]->(m) \quad detach \quad delete \quad m match(n)−[h]−>(m)detachdeletem

match (n:Person{name:'Jenny'}) detach delete n

ii)删除关系

match(n)−[h]−>节点deletehmatch\quad (n)-[h]->节点 \quad delete\quad h match(n)−[h]−>节点deleteh

match (n:Person{name:'Danny'})-[h]->(m) delete h;

iii)删除属性

match节点1remove节点1.属性名match \quad 节点1 \quad remove \quad 节点1.属性名 match节点1remove节点1.属性名

match (n:Person{name:'Tony'}) remove n.age

三、改

i)修改属性

a)修改节点属性

match节点1set节点1.name=新名字match节点2set节点2.属性名1=属性值match \quad 节点1 \quad set \quad 节点1.name=新名字\\match \quad 节点2 \quad set \quad 节点2.属性名1=属性值 match节点1set节点1.name=新名字match节点2set节点2.属性名1=属性值

match (n:Person{name:'Jack'}) set n.name='Jacky'
match (m:Person{name:'Tony'}) set m.hight=160
b)修改关系属性

match节点1−关系−>节点2set关系.属性名=属性值match \quad 节点1-关系->节点2 \quad set\quad 关系.属性名=属性值 match节点1−关系−>节点2set关系.属性名=属性值

match (n:Person{name:'Tony'})-[r]->(m:Person{name:'Tom'}) set r.value=100

ii)修改节点(标签)

match节点1remove节点1:节点类别set节点1:新节点类别match \quad 节点1 \quad remove \quad 节点1:节点类别\quad set\quad 节点1:新节点类别 match节点1remove节点1:节点类别set节点1:新节点类别

MATCH (n:Person{name:'Sandy'})
REMOVE n:Person
SET n:Suspect

iii)修改关系

MATCH (n:Person{name:'Tony'})-[r:Friend]->(m:Person{name:'Tom'})
CREATE (n)-[r2:Couple]->(m)
SET r2 = r // 这里是复制属性
WITH r
DELETE r

四、查

i)查询节点

match节点return节点match \quad 节点\quad return \quad 节点 match节点return节点

match (n:Person{name:'Tony'}) return n

ii)查询关系

match节点1−关系−>节点2return关系match \quad 节点1-关系->节点2 \quad return \quad 关系 match节点1−关系−>节点2return关系

match (n:Person{name:'Tony'})-[r]->(m) return r

iii)查询属性

a)查询节点属性

match节点return节点.属性名1match \quad 节点\quad return \quad 节点.属性名1 match节点return节点.属性名1

match (n:Person{name:'Tony'}) return n.age
b)查询关系属性

match节点1−关系−>节点2return关系.属性名match \quad 节点1-关系->节点2 \quad return \quad 关系.属性名 match节点1−关系−>节点2return关系.属性名

match (n:Person{name:'Tony'})-[r]->(m:Person{name:'Tom'}) return r.value

Neo4j 全网最详细教程相关推荐

  1. 快速成为idc服务商----全网最详细教程----1

    本次要讲述的就如题目表述,成为idc服务商教程,而且是速成!成本肯定是有的,但是肯定低于收益! 如果您对idc不了解,我在这里给您简单介绍下: idc服务商 是什么?您知道服务器吗?如果您连服务器都不 ...

  2. 图数据库Neo4j实战(全网最详细教程)

    1.图数据库Neo4j介绍 1.1 什么是图数据库(graph database) 随着社交.电商.金融.零售.物联网等行业的快速发展,现实社会织起了了一张庞大而复杂的关系网,传统数据库很难处理关系运 ...

  3. Git版本控制器(涵盖GitHub\Gitee码云\GitLab),全网最详细教程

    Git(涵盖GitHub\Gitee码云\GitLab) 第1章 Git 概述 Git 是一个免费的.开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种 项目. Git 易于学习,占地面积 ...

  4. Fiddler抓包配置和使用(全网最详细教程)

    文章目录 Fiddler 基本工作原理 Fiddler界面熟悉 Fiddler设置过滤(抓取指定服务器地址的数据) Fiddler模拟接口测试(自定义请求) Fiddler打断点修改接口请求数据 Fi ...

  5. Tomcat下载安装及配置(全网最新详细教程)

    下载tomcat 下载地址:https://tomcat.apache.org/download-80.cgi 选择下载版本,这里用tomcat8版本来做教程的 根据自己的系统选择相对应的下载 下载完 ...

  6. 手把手教你构建一个web前端项目,全网最详细教程!

    为什么80%的码农都做不了架构师?>>>    1. 选择现成的项目模板还是自己搭建项目骨架 搭建一个前端项目的方式有两种:选择现成的项目模板.自己搭建项目骨架. 选择一个现成项目模 ...

  7. Win10安装Ubuntu18.04双系统,图文详解,全网最详细教程

    博主经历过多次双系统的安装与卸载,所以这次安装就记录下全过程,能让后面的同学少走弯路.本教程对笔记本电脑单硬盘和双硬盘通用. 安装目录 一.查看电脑信息 1.BIOS模式 2.查看硬盘数 二.制作系统 ...

  8. 魅族路由器(极速版)刷老毛子(padavad)固件-全网最详细教程

    写在前面: 魅族路由器极速版,想必有一些网友买过,本人也买过,但是因为魅族官方对路由器已经不维护了,固件万年不更新,插件也用不了了,所以我打着尝试得态度查找了相关刷路由器系统得教程,于是还真让我找到了 ...

  9. Hexo+GitHub搭建个人网站全网最详细教程

    前言 这个故事很长,还要从一只蝙蝠说起! 大二寒假在家闲来无事一直想做一个网站但是苦于没有门路,于是我去各大论坛搜索关于搭建网站的资料,这一搜还真给搜到了,于是这一套Hexo+GitHub搭建个人博客 ...

最新文章

  1. 【Qt】Log4Qt(四):周期性输出日志,并且限制日志文件数量
  2. 减法中的减数和被减数
  3. 最长连续子序列偏移_最长连续不重复子序列
  4. 单个正态总体均值的区间估计_假设检验09---单个正态总体参数的假设检验
  5. MySQL数据库:索引的实现原理
  6. 最新web 2.0 配色 (一)
  7. 非标自动化转行机器人_机器人与非标自动化这两个有什么区别?可以从结构,功能等方面谈谈吗?...
  8. Maven国内镜像 Maven阿里云镜像
  9. springboot整合Mybatis提示org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
  10. java程序报错后跳过继续执行_java笔记.基础篇.基本数据类型
  11. 叙述计算机网络的分类与拓扑结构,计算机的网络中有线网络和无线网络最主要的区别是()。...
  12. Dstream如何应用RDD特有算子?
  13. Hibernate---配置文件
  14. Android Studio升级到3.0.0后构建项目时出现的问题总结
  15. 干货 | Python之自动化报表
  16. 表格自动填充上一行_如何在Google文档电子表格上使用自动填充[快速提示]
  17. 7 类与对象,方法和函数的定义和使用,返回值,权限修饰符 public default protected private(重点)
  18. 本地无需安装数据库,实现plsql远程连接数据库
  19. [经验分享] 覃超算法训练营学习笔记
  20. 路径规划算法学习Day2

热门文章

  1. 获取ip及运营商网络
  2. 全球Internet骨干路由器IP Address
  3. 软考-软件设计师-复习整理
  4. iOS App主题皮肤切换功能简介和具体实现详解 附有源码
  5. 一道及易掉坑考察多态的面试题
  6. AndroidVideoCache源码赏析
  7. 职教云5y计算机答案,2020智慧职教云参考答案计算机文化基础
  8. (DataWhale)图神经网络Task01:基于PyG包的图数据的表示与使用
  9. qt creator提示no valid kits found
  10. 淘宝自动刷喵币靠这一个脚本就够了