Neo4j Cypher语法教程 实体、关系增删改、高级查询

这篇具有很好参考价值的文章主要介绍了Neo4j Cypher语法教程 实体、关系增删改、高级查询。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Neo4j示例

安装完neo4j ,访问对应的web页面端口,输入以下命令进行学习

节点操作

创建节点

  • 创建一个标签为stu的节点 (标签:将数据进行分类,方便管理)
create(n:stu);// 这里的n就是随便起的一个变量名,代指当前实体或者关系,下文会使用到。
  • 创建一个标签为stu 且带有属性值的节点
create(n:stu{id:1,name:'小明',age:20});

cypher教程,neo4j,大数据,后端

查询节点

  • 按照标签查询
match (n:stu) return n; 
 // 上文说到 n类似变量名, 一般可用于后续操作,
 // match n:stu 指查询到标签为stu的节点 赋值给变量n ,return n则是将这批节点返回;

运行结果如下图
cypher教程,neo4j,大数据,后端
neo4j默认是将name属性用于展示

  • 按照id进行查询
match (n:stu) where id(n) = 38023 return n;
//此id是neo4j默认分配给实体的id 不是上面定义的属性“id”
  • 按照属性进行查询
match (n:stu) where n.name = '小明' return n;
  • 多属性条件查询
match (n:stu) where n.name = '小明'and n.age = 20 and n.id = 1 return n;

编辑实体

  • 添加多标签
// neo4j 支持多标签
match (n:stu) where id(n) = 38023 set n:stu1 return n;
match (n:stu) where id(n) = 38023 set n:stu2 return n;

可以看到该节点有三个标签cypher教程,neo4j,大数据,后端

  • 移除标签
match (n:stu) where id(n) = 38023 remove n:stu2 return n;
match (n:stu) where id(n) = 38023 remove n:stu1 return n;
  • 修改某属性
match (n:stu) where n.name='小明' set n.name = '小红' return n;
  • 修改多个属性值
match (n:stu) where n.name='小红' set n.age = '200' set n.id = 2 return n;

可以看到右侧已经修改成功
cypher教程,neo4j,大数据,后端

删除实体

//创建测试数据
create(n:stu{id:1,name:'小王',age:20});
//查询出来并删除
match (n:stu) where n.name = '小王' delete n;

删除成功可以看到返回提示 已删除一条实体
cypher教程,neo4j,大数据,后端

关系操作

新建关系和实体

该操作不需要提前创建实体

//创建标签为stu 属性name 的两个实体、标签为test的关系一个 
create (n:stu{name:'小张'})-[r:test] -> (m:stu{name:'小李'})

//关系和实体同理  关系新建时也可以添加属性
create (n:stu{name:'小黄'})-[r:test{name:'夫妻'}] -> (m:stu{name:'小八'})

注:使用 match (n:stu) return n 该命令查询搜索stu标签的实体与关系

已存在实体新建关系

该操作需要提前创建实体

// 这两行是一条命令   分割一下看的清晰  第一步就是查出来 m、n实体 第二布就是给他俩创建关系
match (n:stu),(m:stu) where n.name = '小李' and m.name = '小八' 
create (n)-[r:test{name:'儿子'}]->(m) ;

这时候我们 match一下 可以看到 这四个实体已经连接上了
cypher教程,neo4j,大数据,后端

编辑关系

  • 修改属性
// 修改关系属性
match p = (n)-[r:test]->(m) where r.name='夫妻' set r.name='朋友';

// 我们想修改完后直接可以看到修改结果 我们在后面加一个return即可 将n-r-m赋值给一个变量 然后return这个变量 如下
match p = (n)-[r:test]->(m) where r.name='朋友' set r.name='闺蜜' return p;
//可以看到下放返回的不是提示信息 而是实体和关系 如下图

cypher教程,neo4j,大数据,后端文章来源地址https://www.toymoban.com/news/detail-739299.html

  • 关系添加属性
// 直接set 新属性赋值即可 
match p = (n)-[r:test]->(m) where r.name='闺蜜' set r.color='红色' return p;
  • 修改标签
    注意neo4j是不支持修改关系标签的,所以我们修改标签的操作是重新创建一个关系删除原关系,这样操作其实使用起来没有什么影响,需要注意的是关系的id会变
// 四行是一条命令  第一行 搜出来想要修改的关系  第二行新建关系 第三行复制原属性  第四行删除原关系 
MATCH (n)-[r:test]->(m) where r.name='闺蜜'
CREATE (n)-[r2:relation]->(m)
SET r2 = r 
DELETE r

删除关系

//直接match 锁定到某个或某几个关系 delete即可
match (n)-[r:relation]->(m) where r.name = '闺蜜' delete r;
//不确定的话 可以将delete换成return 先看一下返回的是不是要删的 然后再进行删除 命令如下
match p = (n)-[r:relation]->(m) where r.name = '闺蜜' return p;

高级搜索

contains

//包含
match (n:stu) where n.name Contains '小' return n

starts with

//开始于某条件  类似 like 小%
match (n:stu) where n.name starts with '小' return n

ends with

//结束于某条件 类似 like %红
match (n:stu) where n.name ends with '红' return n

limit

//限制返回条数 放在最后使用 return 后面
match (n:stu) return n limit 2;

SKIP

// 跳过几条 然后返回
match (n:stu) return n skip 3;

分页

//limit 和skip组合使用就是分页
match (n:stu) return n skip 2 limit 2;

order by

  • 升序
//默认是升序 也可以加上 asc 效果一样 
// 注意 id(n) 这个写法只针对于 默认生成的id 如果是你添加的属性不可以这么写 
match(n:stu) return n order by id(n) ;

match(n:stu) return n order by id(n) asc;


//自己添加的属性要用 n.name 
match(n:stu) return n order by n.id asc;

  • 降序
match(n:stu) return n order by n.id desc;

待续

到了这里,关于Neo4j Cypher语法教程 实体、关系增删改、高级查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Neo4j导入CSV文件(实体和关系)

    打开cmd切换到neo4j安装目录的bin下,输入以下命令 如果想读取不在import directory中的CSV,则: (1)先改变neo4j默认设置,即:删除dbms.directories.import=import或者在该语句前加“#”; (2)使用 “LOAD CSV FROM file:///C:/XXX/name.csv”(即:file:///+绝对路径), 导入本地CSV文件 。

    2024年02月15日
    浏览(54)
  • 图数据库_Neo4j学习cypher语言_使用CQL_构建明星关系图谱_导入明星数据_导入明星关系数据_创建明星关系---Neo4j图数据库工作笔记0009

    首先找到明星数据   可以看到有一个sheet1,是,记录了所有的关系的数据   然后比如我们搜索一个撒贝宁,可以看到撒贝宁的数据   然后这个是构建的CQL语句   首先我们先去启动服务 neo4j console     然后我们再来看一下以前导入的,可以看到导入很简单, 就是上面有CQL 看一下节

    2024年02月12日
    浏览(42)
  • Neo4j---(2)批量导入实体和关系csv文件之neo4j-admin import

    要点: neo4j-admin import命令的适用情况:未初始化空数据库or新建数据库 csv文件的编码:有中文用 “UTF-8” 节点csv和关系csv文件的固定格式以及必要的属性列 一、neo4j-admin import命令 1.作用:批量导入csv数据 2.条件:必须有权限对dbmis.directories.data 和dbms.directories.log进行写入操作

    2024年02月06日
    浏览(45)
  • Neo4j---(3)批量导入实体和关系csv文件之LOAD CSV

    一、几大导入方式的差异 1. neo4j-admin import: 只能初始化,若要用的话必需清空之前的数据库。 不能很好的适应不断要添加新节点和关系的需求。 必需关闭数据库 neo4j stop 2. LOAD CSV 可以在原数据库基础上新增数据,导入中小型数据,1kw条左右 不用关闭数据库,可以直接在b

    2024年02月07日
    浏览(62)
  • 图数据库_Neo4j学习cypher语言_常用函数_关系函数_字符串函数_聚合函数_数据库备份_数据库恢复---Neo4j图数据库工作笔记0008

    然后再来看一些常用函数,和字符串函数,这里举个例子,然后其他的 类似   可以看到substring字符串截取函数   可以看到截取成功   聚合函数   这里用了一个count(n) 统计函数,可以看到效果   关系函数,我们用过就是id(r) 可以取出对应的r的id来这样..

    2024年02月12日
    浏览(59)
  • neo4j cypher查询

    1. 创建节点和关系   使用CREATE命令创建节点和关系。例如,要创建一个名为“John”的人节点,可以使用以下命令:   ``` CREATE (:Person {name: \\\'John\\\'}) ```   这将创建一个类型为“Person”的节点,并将其属性“name”设置为“John”。   要创建一个名为“likes”的关系,将“John”节点

    2024年02月08日
    浏览(42)
  • Neo4j 与 Cypher 基础

    更好的阅读体验 huge{color{red}{更好的阅读体验}} 更好的阅读体验 Neo4j 是用 Java 实现的开源 NoSQL 图数据库。从2003年开始开发,2007年正式发布第一版,其源码托管于 GitHub。 与常见的关系型数据库不同, Neo4j 基于图图结构来表示和存储数据,并提供了申明式的查询语言 Cypher

    2024年02月07日
    浏览(45)
  • neo4j查询语言Cypher详解(三)--函数

    Cypher中的函数如果输入参数为null,则返回null。 以字符串作为输入的函数都对Unicode字符进行操作,而不是对标准字符进行操作。例如,size()函数应用于任何Unicode字符将返回1,即使该字符不适合一个字符的16位。 可以通过 SHOW FUNCTIONS 查看函数定义。 函数签名中参数格式:e

    2024年02月14日
    浏览(46)
  • springboot整合neo4j-使用原生cypher

    该文的实现有更简单的方式,详见我的另一篇博客springboot整合neo4j–采用Neo4jClient和Neo4jTemplate方式 Neo4j 提供 JAVA API 以编程方式执行所有数据库操作。它支持三种类型的API: 1、Neo4j 原生的 Java API 原生 Java API 是一种低级别的纯 JAVA API,用于执行数据库操作。 2、Neo4j Cypher Jav

    2024年02月12日
    浏览(48)
  • 图数据库Neo4j——Neo4j简介、数据结构 & Docker版本的部署安装 & Cypher语句的入门

    MySQL是一种开源的关系型数据库管理系统,使用SQL作为其查询语言,常见的关系型数据库有MySQL、Oracle、SQL Server、PostgreSQL等。相关博客文章如下: 【合集】MySQL的入门进阶强化——从 普通人 到 超级赛亚人 的 华丽转身 PostgreSQL数据库——Docker版本的postgres安装 Navicat连接方式

    2024年02月06日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包