插入查询用户以及建立关系

neo4j新手教程 neo4j新手教程 本文通过一个实际的案例来一步一步使用Cypher来操作Neo4j。 这个案例的节点主要包括专业和课程两类,课程和课程之间有前置、并列等关系,专业和课程之间有包含等关系。 1、(可选)首先,我们删除数据库中以往的图,确保一个空白的环境进行操作: MATCH (n) DETACH DELETE n MATCH是匹配操作,而小括号()代表一个节点node(可理解为括号类似一个圆形),括号里面的n为标识符。 2、我们创建一个课程节点: CREATE (n:Class {name:'大学英语Ⅱ'} 阅读详情

序言:本节接着上一章简单的介绍之后,继续学习Neo4j这门语言文笔不好尽量用简单的语言来让读者易读易懂,本文的内容都是我在学习的过程中一点点积累的.

1.建立一个数据库

CREATE ( dot : User {age : “”,name: “”});

解释:建立一个节点名称是 dot,节点标签是User 的数据库,它包含两个属性,age 和 name.

说明:

  • Neo4j 数据库服务器用此 <node -name> (dot) 将此节点详细信息存储在Database.As中作为
    Neo4j DBA或Developer,我们不能使用它来访问节点详细信息

  • Neo4j数据库服务器创建一个 <label -name> 作为内部节点名称的别名.作为Neo4j DBA或 Developer
    ,我们应该使用此标签名称来访问节点详细信息.

注意:一定要注意

查询数据库时,match 和 return 语句不能单独使用,必须结合使用

如下:

match (dot  : User)
return dot.name,dot.age

结果返回:该数据库中所有的name 和age 字段

例:查询标签是 User 下的所用用户:

match (dot  : User)
return dot

结果:

返回dot 该节点下,所有的数据.可以以表展示,可以以节点展示…

2.CQL — 关系基础

说明:

  • Neo4j 图形数据库遵循属性图模型来存储和管理其数据.

  • 根据属性图形模型,关系应该是定向的.否则,Neo4j将抛出一个错误消息

基于方向性,Neo4j关系被分为两种主要类型.
  • 1.单向关系

  • 2.双向关系

在下列场景中,我们可以使用Neo4j CQL CREATE 命令来创建两个节点之间的关系

1.在两个现有节点之间创建无属性的关系
2.在两个现有节点之间创建于属性的关系
3.在两个节点之间创建无属性的关系.
4.在两个新节点之间创建于属性的关系.
5.在具有WHERE 子句的两个退出节点之间创建/不使用属性的关系.

如下事例:

在User中的两个用户之间,建立一条TestShip,起点是Test1,结束点是Test2,单向关系

CREATE(userA:User{name:"Test1",age:"35"})
CREATE(userB:User{name:"Test2",age:"36"})
CREATE (userA)-[:TestShip]->(userB)

说明:建立关系时一定要注意指明关系的方向性,也就是一定要有起始点结束点,否则会报错.

查询在User用户表中,name 为 Test1,以及name 为Test2之间的关系:

查询代码如下:

MATCH p =  (userA:User{name:"Test1"}) -[]-(userB:User{name:"Test2"})
RETURN p

结果如下:
image

对代码进行解释:

  • 1.在User 表中查询name 为 "Test1"的用户.

  • 2.与User中查询name为"Test2"之间的联系.

  • 3.在本例中没有指明方向,所以关系从userA->userB,以及userB->userA都是本例要查询的.

  • 4.由于我们再建立关系时的方向是userA->userB,所以查询的结果就是 "Test1"的用户 ->"Test2"的用户.

3.对于本章课程总结

  • 1.在插入用户时,最好在声明的属性中有一个是唯一的不重复的,例如uid属性,就类似于mysql中的主键,方便根据唯一标识符进行用户查询,更新信息,以及关系的建立以及查询.

  • 2.在插入用户时,可以用CREATE或者MERGE命令,二者区别就在于,如果你插入两条或以上的数据完全相同,CREATE不管是否重复只管添加新数据,但是MERGE会合并也可以理解为更新相同的数据.

  • 3.在建立关系时,可以根据需要来创建单向或者双向关系,无论单向还是双向在建立关系时一定要指明关系的方向.

  • 4.在查询关系时,查询的方向可以指定起始节点,也可以不指定,具体由需求而定.

  • 5.本例中建立的TestShip关系,只是一个简单的事例,关系中也可以和节点中一样,包含属性相关事宜,具体可根据需求来定.

备注:转载请注明,请尊重原创者的劳动成果,谢谢配合
如果有不明白或者有什么建议,欢迎在评论下方留言,我会尽力在第一时间回复的.欢迎大家来共同讨论学习.
### iOS 张袁旭
Neo4j 入门级使用 使用@Node注解定义节点实体类。@Node// 空构造方法、带参数构造方法、getter 和 setter 方法// getter 和 setter 方法return id;return age; 阅读详情

相关推荐

【新手向】 07.SpringBootJPA对象映射解决联表查询

本篇文章是基于06的jpa数据查询写的,首先我们创建一个emp用户表,一个deptno外键关联dept部门表。 然后,创建实体类,对应table,自动注入,如图,在属于外键的字段我们用对象代替,标明一对多的关系,以及对应的关联字段。生成get&set方法 在dao层继承JpaRespository<Emp,Integer>并使用持久化查询语言定义方法,通过deptno这...

伯nulee 1024

手把手Neo4j教程,超全!!!

本教程向您介绍了Neo4j的基本概念和使用方法,以及一些进阶操作。Neo4j是一种强大的图形数据库,可以帮助您更好地管理和理解您的数据。如果您需要更深入的学习和了解,建议参考官方文档或参加培训课程。

m0_72410588的博客 1万+

AD23导出Gerber文件保姆级教程:从PCB到嘉立创下单,一步不落(附常见问题排查)

本文提供AD23导出Gerber文件的详细教程,涵盖从PCB设计检查到嘉立创下单的全流程,特别针对两层板设计场景,帮助新手工程师避免常见错误。内容包括Gerber文件生成步骤、钻孔文件设置、文件检查工具推荐以及嘉立创下单实操指南,确保PCB打样顺利。

weixin_30924239的博客 440

图文并茂教你学会操作图数据库Neo4j

点击上方蓝色字体,选择“设为星标”优质文章,及时送达从上篇文章中我们了解到了什么是Neo4j、为什么要用Neo4j、什么场景使用 以及怎么安装,如果您还不想熟悉,点击此处,传送过去哦~既...

码农小胖哥 8606

如何加快香山处理器Chisel->Verilog编译速度

相比使用默认的scala firrtl complier,使用CIRCT能够将香山代码编译到Verilog的速度提高50%左右。在执行make命令时加上MFC=1,例如make verilog MFC=1或make emu MFC=1。在本地从源码编译CIRCT,在编译完成后将circt/bin路径加入PATH中。使用GraalVM免费版作为JVM编译香山比OpenJDK快10%-20%。我们推荐使用GraalVM代替OpenJDK。使用CIRCT编译香山。

专业技术人员的归宿 865

使用电荷放大器处理压电加速度计输出

电阻器 R p模拟传感器的绝缘电阻,为产生的电荷创建泄漏路径。在此图中,顶部波形显示传感器产生的电荷,而底部波形显示电荷放大器的输出。这需要具有大输入阻抗的放大级,以防止产生的电荷通过与传感元件并联的放大器的输入阻抗泄漏。换句话说,电荷放大器补偿传感器产生的电荷 q p ,反馈电容器 C F中具有相反极性的等量电荷。因此,任何与传感器并联的绝缘电阻,如电缆的绝缘电阻或传感器的漏电电阻Rp,都不能流过电流。漂移是指电荷放大器输出在一段时间内发生的变化,而不是由被测物理参数的变化(我们讨论的加速度)引起的。

weixin_45260069的博客 3905

Neo4j的使用(基础)

Neo4j的简单使用

warcarlyp的博客 6280

小梅哥Xilinx FPGA学习笔记15——基于SPI接口的ADC芯片驱动

ADC(Analog to Digital Conver),通常是指一个将转变为数字信号(二进制表示的离散信号)的转换器。先将输入模拟电压转换成时间或频率,再把中间量转换成数字量双积分型 ADC,先对输入采样电压和基准电压进行两次积分,获得与采样电压平均值成正比的时间间隔,同时用计数器对标准时钟脉冲计数。抗干扰能力强,稳定性好,但转换速度低。①并联比较型 ADC,采用各量级同时并行比较,各位输出码也是同时并行产生,转换速度快。缺点是成本高、功耗大。

m0_51430584的博客 5507

【ORACLE】用户锁定与连接关系

锁定用户只影响建立连接,数据库连接池中已建立连接的查询和插入不受影响。当然,如果要新建连接,还是会失败。

weixin_39037208的博客 316

Qt | 开发过程中总结的经验

关于如何判断自己的Qt库是多少位,有个误区就是很多人要么看成了QtCreator的关于信息中列出的位数,要么以为自己是64位的系统就认为是64位的Qt,最终要在Qt构建套件中查看具体位数,大概从Qt5.14开始基本上很少提供32位的库,尤其是Qt6.0以后基本上默认就是只有64位的库了,这也是顺应时代潮流,毕竟不久的将来(个人预计2030年以前)基本上32位的系统占比不超过1%,放心大胆的用64位的库吧,抛弃烦人的32位以及XP系统。Qt常用类的头文件的函数看完学完使用一遍并加以融会贯通,月薪30K起步。

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 496

OpenClaw 技术架构解析-网关层(上)

OpenClaw 网关层是架构核心中枢,承接Channel层消息,串联消息路由器、会话状态管理器等五大组件,负责消息分发、会话管理、状态统筹、上下文维护等关键职责,是连接Channel层与AI执行引擎的核心桥梁,保障多渠道交互稳定、有序运行。

wend的博客 714

4.ORM框架的查询

创建表对应关系代码如下: from flask import Flask, render_template from flask_sqlalchemy import SQLAlchemy app=Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI']="mysql://root:123456@127.0.0.1:3306/rupe...

weixin_30724853的博客 198

【专栏导引贴】100+智能优化算法:从背景原理到代码实战(持续更新)

本专栏系统整理100+种现代优化算法,涵盖粒子群优化(PSO)、遗传算法(GA)、鲸鱼优化(WOA)等经典方法,以及白鲸优化(BWO)、非洲秃鹫优化(AVOA)等新兴算法。每篇详解包含生物启发原理、数学模型、代码实现及工程应用,采用统一编程风格,提供可直接运行的实例代码。专栏持续更新,旨在为研究者提供系统化的智能优化算法参考资料,实现从理论到实践的完整知识链。目前已收录23种算法,包括蚁群系统(ACS)、蝙蝠算法(BA)、天牛须搜索(BAS)等自然启发式优化方法。

qq_42212808的博客 3670

android 多表联合查询语句,GreenDao建立多表之间的关联

上一篇中介绍了如何使用GreenDao保存List和实体类嵌套类型的数据, 但是在实际开发中经常会遇到List和嵌套的实体类也是需要保存的表。比如,在上一篇文章中的User代表一个用户,但是在每一个用户中可能会保存一个订单的集合–List. 那么这种情况就需要创建多个表格,并建立关系了。这篇文章主要以介绍如何使用ToMany来建立两张表格之间的关系废话不多说,直接上代码先创建MyOrder.jav...

weixin_33390899的博客 1150

【三维激光扫描】第二章:国内外三维激光扫描设备简介

地面三维激光扫描仪是地面激光扫描系统中最主要的硬件设备,近年来得到了快速发展,主要体现在品牌数量、性能指标、类型等方面的变化。本章主要介绍国内外主要设备的基本情况,对国内外研究现状进行分析,最后指出目前存在的问题与未来的发展趋势。 2.1 国外地面三维激光扫描仪简介 目前,生产地面三维激光扫描仪的公司比较多,随着地面三维激光扫描技术应用普及程度的不断提高,国外产品在中国的市场目前还占主导地位。它们各自的产品在性能指标上有所不同,以下简要介绍有代表性的公司产品。 2.1.1 奥地利 Riegl公司的.

智慧空间实验室 4645

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Mysql语句习题测试

1、建立db_text表 create database db_text; 2、使用db_text; use db_text; 3、建立user_property create table user_property( uuid varchar(100) primary key not null, usename varchar(30) not null, nickname varchar(100), email varchar(100), sex varchar(10), age int(3), hobb

weixin_45954651的博客 257

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

PHP中多对多关联的方法,PHP laravel中的多对多关系实例详解

数据表之间是纵横交叉、相互关联的,laravel的一对一,一对多比较好理解,官网介绍滴很详细了,在此我就不赘述啦,重点我记下多对多的关系一种常见的关联关系是多对多,即表A的某条记录通过中间表C与表B的多条记录关联,反之亦然。比如一个用户有多种角色,反之一个角色对应多个用户。为了测试该关联关系,我们沿用官网的用户角色示例:需要三张数据表:users、roles 和 role_user,role_us...

weixin_29666341的博客 538

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

sql脚本创建用户角色权限表

1 /******************************************/ 2 /* 名称:权限管理 */ 3 /* 编写日期:2010.5.20 */ 4 /* 开发者:dangqinghua */ 5 /******...

weixin_30667649的博客 144

MySQL练习:用户角色多对多表创建、插入和查询

一.表描述 一张用户表,一张角色表,一个用户可以对应多个角色,一个角色也可以对应多个用户,表关系为多对多,创建一个user_role表进行关联。 二.建表 -- 创建数据库 CREATE DATABASE demo; -- 切换到指定数据库 USE demo; --创建用户表 create table user( uid int(11) auto_increment not null, account varchar (32) , password varchar (32)

代码从一开始的博客 2519

数据库的索引,插入与查询。

  一、索引的建立,修改与删除   当表的数据量比较大时,查询操作会比较耗时,建立索引是加快查询速度的有效手段。根据需要可以在基 本表上建立一个或多个索引,以提供多种存取路径,加快查找速度。   数据库索引有多种类型,常见文件的索引包括顺序文件上的索引、B+数索引、散列索引、位图索引等。 1.索引的建立 一般格式为: CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名> [<次序>] [,&lt

Codingzyk的博客 1957

MySQL中三种表关系的建立

MySQL数据库,一对一表关系,一对多表关系,多对多表关系,主键,外键

Yydsaoligei的博客 4775

ClosureTable 用户上下级有关系的建立和使用

最近在弄个分佣项目,一开始使用了之前转载的那个path方式来做,但使用后发现这个方式不太合适用来做各种级差、分销、无限等分佣方式,然后百度一下午,终于找到了一个非常不错的建立上下级关系方法,ClosureTable。 ClosureTable直译过来叫闭包表?不过不重要,ClosureTable以一张表存储节点之间的关系、其中包含了任何两个有关系(上下级)节点的关联信息 定义关系表Categor...

ALIVE 1035

关系模型得数据操纵即就是建立在关系上得数据操纵,一般有(查询)、增加、删除与 修改四种操作

是的,关系模型的数据操纵是建立在关系上的数据操作,一般包括查询、增加、删除和修改四种操作。

博客域名:borter.blog.youkuaiyun.com 2182

mysql授权、关联查询、主外键关系

创建用户: 无密码: create user bbb@localhost; 加密码的: create user bbb@localhost identified by "123"; 创建用户远程登录: create user 'bbb'@'10.10.65.%' identified by "123"; // 允许10.10.65.0-10.10.65.255以bbb登录 my...

优快云 1212

mysql批量插入查询出来的数据

我整理的一些关于【MySQL,SQL】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://edu.51cto.com/surl=QDW3g3MySQL批量插入查询出来的数据指南 在数据库开发过程中,批量插入操作经常用于将查询到的数据快速插入另一张表中。本文将通过具体的步骤向你介绍如何在MySQL中实现批...

weixin_40280141的博客 198

数据库:第二章 《关系模式》概念总结

一、关系数据结构及形式化定义 1. 关系模式的相关概念: 域: 域是一组具有相同数据类型的值的集合 笛卡尔积: 域上的一种集合运算 其中每一个元素(d1,d2,d3,……dn)叫做一个元祖,元祖中的每一个值叫做一个分量。 【一个域允许的不同取值个数称为这个域的基数】 关系: D1D2…*Dn的子集叫做在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn) 这里的n是关系的...

CODE 1万+
上一篇: Neo4j的工具安装及使用
下一篇: 建立人脉关系以及可能认识的人推荐
FreshManCode
博客等级 码龄9年 8粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值