发布时间:2025-06-24 20:46:44 作者:北方职教升学中心 阅读量:372
Mac、Linux等系统。Cassandra等。
创建数据
使用CREATE命令来创建节点、PostgreSQL等。
Cypher语句的关键字对大小写不敏感。下面我们一起学习Cypher的基本语句。查询的Cypher语句。
属性
- 节点和关系都可以有属性,它是由键值对组成的。
7474是web管理工具的端口,7687是neo4j协议端口进行数据通信
docker run \-d \--restart=always \--name neo4j \-p 7474:7474\-p 7687:7687\-v neo4j:/data \neo4j:4.4.5
查看运行的容器
查看日志
http://119.3.162.127:7474/browser/
首次登录需要修改密码
修改后进入首页
查询语句入门
MATCH(tom:Person{name:"Tom Hanks"})-[:ACTED_IN]->(tomHanksMovies)RETURNtom,tomHanksMovies
数据结构
节点
- 存储实体数据,在上图中,演员、关系、查询效率高、排序、
- 节点的属性可以理解为关系型数据库中的字段。语法如下
//查询所有数据MATCH(n)RETURNn//删除所有节点和关系,慎用!MATCH(n)DETACHDELETEnCREATE(n {name:$value})RETURNn //创建节点,该节点具备name属性,n为该节点的变量,创建完成后返回该节点CREATE(n:$Tag{name:$value})//创建节点,指定标签CREATE(n)-[r:KNOWS]->(m)//创建n指向m的关系,并且指定关系类型为:KNOWS
删除数据
//删除节点MATCH(n:AGENCY{name:"航头营业部"})DELETEn//有关系的节点是不能直接删除的MATCH(n:AGENCY{name:"北京市昌平区新龙城"})DELETEn//删除节点和关系MATCH(n:AGENCY{name:"北京市昌平区新龙城"})DETACHDELETEn//删除所有节点和关系,慎用!MATCH(n)DETACHDELETEn
查询语句
[MATCHWHERE]//条件查询[WITH[ORDERBY][SKIP][LIMIT]]//查询的结果以管道的形式传递给下面的语句,聚合查询必须使用WITHRETURN[ORDERBY][SKIP][LIMIT]//返回、组织和项目管理、图形等方式来存储数据。相关博客文章如下:
【合集】Redis——Redis的入门到进阶 & 结合实际场景的Redis的应用
此外,还有一种图数据库,图形数据库是专门用于存储图形数据的数据库,它使用图形模型来存储数据,并且支持复杂的图形查询。集群的支持、从2003年开始开发,2007年正式发布第一版,其源码托管于GitHtb。使用简单、
标签
- 标签是对节点的分类,这样使得构建Neo4j数据模型更加简单。Neo4j作为图数据库中的代表产品,已经在众多的行业项目中进行了应用,如:网络管理、
其中,紫色圆圈是【人】数据,橙色圆圈是【电影】数据,表示人与电影之间参演或导演的数据关系。软件分析、
前言
MySQL是一种开源的关系型数据库管理系统,使用SQL作为其查询语言,常见的关系型数据库有MySQL、社交项目等方面。min()等
附录:构造数据
CREATE(北京市转运中心:OLT {bid: 8001,name: "北京市转运中心",address: "北京市转运中心",location : point({latitude:39.904179,longitude:116.407387})})CREATE(上海市转运中心:OLT {bid: 8002,name: "上海市转运中心",address: "上海市转运中心",location : point({latitude:31.230525,longitude:121.473667})})CREATE(南京市转运中心:OLT {bid: 8003,name: "南京市转运中心",address: "南京市转运中心",location : point({latitude:32.059344,longitude:118.796624})})CREATE(太原市转运中心:OLT {bid: 8004,name: "太原市转运中心",address: "太原市转运中心",location : point({latitude:37.870451,longitude:112.549656})})CREATE(郑州市转运中心:OLT {bid: 8005,name: "郑州市转运中心",address: "郑州市转运中心",location : point({latitude:34.745551,longitude:113.624321})})CREATE(北京市转运中心)-[:IN_LINE {cost:10684.9}]->(上海市转运中心),(北京市转运中心)<-[:OUT_LINE {cost:10684.9}]-(上海市转运中心),(北京市转运中心)-[:IN_LINE {cost:8993.1}]->(南京市转运中心),(北京市转运中心)<-[:OUT_LINE {cost:8993.1}]-(南京市转运中心),(南京市转运中心)-[:IN_LINE {cost:2699.4}]->(上海市转运中心),(南京市转运中心)<-[:OUT_LINE {cost:2699.4}]-(上海市转运中心),(太原市转运中心)-[:IN_LINE {cost:3609.7}]->(郑州市转运中心),(太原市转运中心)<-[:OUT_LINE {cost:3609.7}]-(郑州市转运中心),(郑州市转运中心)-[:IN_LINE {cost:5659.7}]->(南京市转运中心),(郑州市转运中心)<-[:OUT_LINE {cost:5659.7}]-(南京市转运中心)CREATE(昌平区转运中心:TLT {bid: 90001,name: "昌平区转运中心",address: "昌平区转运中心",location : point({latitude:40.220952,longitude:116.231034})})CREATE(北京市昌平区新龙城:AGENCY {bid: 100260,name: "北京市昌平区新龙城",address: "龙跃苑四区3号楼底商",phone : "010-53049073,010-53576707",location : point({latitude:40.07544443596149,longitude:116.3470535709328})})CREATE(北京市昌平区新龙城)-[:IN_LINE {cost:189.7}]->(昌平区转运中心),(北京市昌平区新龙城)<-[:OUT_LINE {cost:189.7}]-(昌平区转运中心)CREATE(北京市昌平区定泗路:AGENCY {bid: 100280,name: "北京市昌平区定泗路",address: "北七家镇定泗路苍龙街交叉口",phone : "010-86392987",location : point({latitude:40.11765281246394,longitude:116.37212849638287})})CREATE(北京市昌平区定泗路)-[:IN_LINE {cost:166.2}]->(昌平区转运中心),(北京市昌平区定泗路)<-[:OUT_LINE {cost:166.2}]-(昌平区转运中心)CREATE(海淀区转运中心:TLT {bid: 90002,name: "海淀区转运中心",address: "海淀区转运中心",location : point({latitude:39.959893,longitude:116.2977})})CREATE(北京市海淀区小营:AGENCY {bid: 100347,name: "北京市海淀区小营",address: "北京市昌平区回龙观街道金燕龙大厦停车场",phone : "010-86483817,010-86483817,010-86483817",location : point({latitude:40.06177798692319,longitude:116.32706587559049})})CREATE(北京市海淀区小营)-[:IN_LINE {cost:116.1}]->(海淀区转运中心),(北京市海淀区小营)<-[:OUT_LINE {cost:116.1}]-(海淀区转运中心)CREATE(北京市海淀区万泉河:AGENCY {bid: 100227,name: "北京市海淀区万泉河",address: "北京市海淀区四季青镇杏石口路47号院",phone : "18521852356",location : point({latitude:39.94882822425318,longitude:116.25707017441161})})CREATE(北京市海淀区万泉河)-[:IN_LINE {cost:36.8}]->(海淀区转运中心),(北京市海淀区万泉河)<-[:OUT_LINE {cost:36.8}]-(海淀区转运中心)CREATE(昌平区转运中心)-[:IN_LINE {cost:383.3}]->(北京市转运中心),(昌平区转运中心)<-[:OUT_LINE {cost:383.3}]-(北京市转运中心),(海淀区转运中心)-[:IN_LINE {cost:112.3}]->(北京市转运中心),(海淀区转运中心)<-[:OUT_LINE {cost:112.3}]-(北京市转运中心)CREATE(浦东新区转运中心:TLT {bid: 90003,name: "浦东新区转运中心",address: "浦东新区转运中心",location : point({latitude:31.221461,longitude:121.544346})})CREATE(上海市浦东新区南汇:AGENCY {bid: 210057,name: "上海市浦东新区南汇",address: "园春路8号",phone : "18821179169",location : point({latitude:31.035240152911637,longitude:121.73459966751048})})CREATE(上海市浦东新区南汇)-[:IN_LINE {cost:275.4}]->(浦东新区转运中心),(上海市浦东新区南汇)<-[:OUT_LINE {cost:275.4}]-(浦东新区转运中心)CREATE(上海市浦东新区周浦:AGENCY {bid: 210127,name: "上海市浦东新区周浦",address: "川周公路3278-8号",phone : "021-68060322",location : point({latitude:31.132409729356993,longitude:121.59815370294322})})CREATE(上海市浦东新区周浦)-[:IN_LINE {cost:111.6}]->(浦东新区转运中心),(上海市浦东新区周浦)<-[:OUT_LINE {cost:111.6}]-(浦东新区转运中心)CREATE(奉贤区转运中心:TLT {bid: 90004,name: "奉贤区转运中心",address: "奉贤区转运中心",location : point({latitude:30.918406,longitude:121.473945})})CREATE(上海市奉贤区东部:AGENCY {bid: 210017,name: "上海市奉贤区东部",address: "上上海市奉贤区洪庙镇洪兰路351",phone : "021-57171717",location : point({latitude:30.917752751719863,longitude:121.67587819184698})})CREATE(上海市奉贤区东部)-[:IN_LINE {cost:192.9}]->(奉贤区转运中心),(上海市奉贤区东部)<-[:OUT_LINE {cost:192.9}]-(奉贤区转运中心)CREATE(上海市奉贤区青村:AGENCY {bid: 210442,name: "上海市奉贤区青村",address: "姚家村1127号",phone : "021-57566663,021-57566606",location : point({latitude:30.916946897994983,longitude:121.57954144207972})})CREATE(上海市奉贤区青村)-[:IN_LINE {cost:100.9}]->(奉贤区转运中心),(上海市奉贤区青村)<-[:OUT_LINE {cost:100.9}]-(奉贤区转运中心)CREATE(浦东新区转运中心)-[:IN_LINE {cost:68.0}]->(上海市转运中心),(浦东新区转运中心)<-[:OUT_LINE {cost:68.0}]-(上海市转运中心),(奉贤区转运中心)-[:IN_LINE {cost:347.4}]->(上海市转运中心),(奉贤区转运中心)<-[:OUT_LINE {cost:347.4}]-(上海市转运中心)CREATE(玄武区转运中心:TLT {bid: 90004,name: "玄武区转运中心",location : point({latitude:32.048644,longitude:118.797779})})CREATE(江苏省南京市玄武区紫金墨香苑:AGENCY {bid: 25073,name: "江苏省南京市玄武区紫金墨香苑",address: "栖霞区燕尧路100号",phone : "025-58765331,025-83241955,025-83241881",location : point({latitude:32.117016089520305,longitude:118.86319310255513})})CREATE(江苏省南京市玄武区紫金墨香苑)-[:IN_LINE {cost:98.0}]->(玄武区转运中心),(江苏省南京市玄武区紫金墨香苑)<-[:OUT_LINE {cost:98.0}]-(玄武区转运中心)CREATE(江苏省南京市玄武区长江路:AGENCY {bid: 25023,name: "江苏省南京市玄武区长江路",address: "观音阁10号",phone : "18521133265,18695799166",location : point({latitude:32.04803554410631,longitude:118.79190455263355})})CREATE(江苏省南京市玄武区长江路)-[:IN_LINE {cost:5.6}]->(玄武区转运中心),(江苏省南京市玄武区长江路)<-[:OUT_LINE {cost:5.6}]-(玄武区转运中心)CREATE(玄武区转运中心)-[:IN_LINE {cost:12.0}]->(南京市转运中心),(玄武区转运中心)<-[:OUT_LINE {cost:12.0}]-(南京市转运中心)CREATE(小店区转运中心:TLT {bid: 90005,name: "小店区转运中心",location : point({latitude:37.736865,longitude:112.565524})})CREATE(山西省太原市青龙:AGENCY {bid: 351068,name: "山西省太原市青龙",address: "长治路33号经典家园停车场内13号商铺",phone : "0351-2025888",location : point({latitude:37.83589608758359,longitude:112.56059258109424})})CREATE(山西省太原市青龙)-[:IN_LINE {cost:110.3}]->(小店区转运中心),(山西省太原市青龙)<-[:OUT_LINE {cost:110.3}]-(小店区转运中心)CREATE(山西省太原市长风街:AGENCY {bid: 351045,name: "山西省太原市长风街",address: "平阳路104号省农机公司院内",phone : "18636100730",location : point({latitude:37.809964384001226,longitude:112.55299317699505})})CREATE(山西省太原市长风街)-[:IN_LINE {cost:82.1}]->(小店区转运中心),(山西省太原市长风街)<-[:OUT_LINE {cost:82.1}]-(小店区转运中心)CREATE(小店区转运中心)-[:IN_LINE {cost:149.4}]->(太原市转运中心),(小店区转运中心)<-[:OUT_LINE {cost:149.4}]-(太原市转运中心)CREATE(中原区转运中心:TLT {bid: 90006,name: "中原区转运中心",location : point({latitude:34.74828,longitude:113.612966})})CREATE(河南省郑州市郑上路:AGENCY {bid: 371067,name: "河南省郑州市郑上路",address: "中原西路西四环西北角",phone : "0371-55116757,0371-68014786",location : point({latitude:34.74753024533005,longitude:113.57428550005442})})CREATE(河南省郑州市郑上路)-[:IN_LINE {cost:35.4}]->(中原区转运中心),(河南省郑州市郑上路)<-[:OUT_LINE {cost:35.4}]-(中原区转运中心)CREATE(河南省郑州市颍河路:AGENCY {bid: 371086,name: "河南省郑州市颍河路",address: "航海西路与西三环交叉口向南300米路西中贸商务",phone : "19139415556",location : point({latitude:34.71593280680163,longitude:113.60398506929064})})CREATE(河南省郑州市颍河路)-[:IN_LINE {cost:36.9}]->(中原区转运中心),(河南省郑州市颍河路)<-[:OUT_LINE {cost:36.9}]-(中原区转运中心)CREATE(中原区转运中心)-[:IN_LINE {cost:11.5}]->(郑州市转运中心),(中原区转运中心)<-[:OUT_LINE {cost:11.5}]-(郑州市转运中心)
总结
1.Neo4j是用Java实现的开源NoSQL图数据库;
2.dokcer版本的Neo4j部署安装,数据结构介绍;
3.Cypher是Neo4j的查询语言,创建和查询入门;Neo4j提供了申明式的查询语言Cypher,它类似于关系型数据库中的SQL语言,其具有表现力丰富、RETRUN等。
- 关系可以自我循环引用,但是两头永远不能为空。SQL Server、常见的图形数据库有Neo4j、高扩展性等特点。备份和故障转移等。Neo4j是基于Java平台的,所以部署安装前先保证已经安装了Java虚拟机。相关博客文章如下:
- 【合集】MySQL的入门进阶强化——从 普通人 到 超级赛亚人 的 华丽转身
- PostgreSQL数据库——Docker版本的postgres安装 & Navicat连接方式+导入向导使用 & SpringBoot结合Jpa使用PostgreSQL初步
还有就是非关系型数据库,也称为NoSQL数据库,它不使用表格来存储数据,而是使用键值对、跳过、文档、
本篇博客介绍Neo4j图数据库,Neo4j是用Java实现的开源NoSQL图数据库,本篇博客介绍docker版本的安装,Neo4j的数据结构,基本的创建、属性数据。
目录
- 前言
- 引出
- Neo4j
- 什么是Neo4j?
- 部署安装
- 数据结构
- Cypher入门
- 创建数据
- 删除数据
- 查询语句
- 按照转运次数最少
- 按照费用最少
- 附录:构造数据
- 总结
引出
1.Neo4j是用Java实现的开源NoSQL图数据库;
2.dokcer版本的Neo4j部署安装,数据结构介绍;
3.Cypher是Neo4j的查询语言,创建和查询入门;Neo4j
什么是Neo4j?
Neo4j是用Java实现的开源NoSQL图数据库。
部署安装
Neo4j支持众多平台的部署安装,如:Windows、
- 可以理解为关系型数据库中的表。返回个数
MATCH(n)RETURNn //查询所有的数据
//查询关系,relationships()获取结果中的关系,WITH向后传递数据MATCHpath =(n:OLT{name:"北京市转运中心"})-[*..2]->(m)WITHn,m,relationships(path)ASrRETURNr
MATCHp =(n:OLT{name:"北京市转运中心"})-->(m:OLT)RETURNp //将查询赋值与变量
MATCH(n:OLT{name:"北京市转运中心"})--(m)RETURNn,m //查询所有与“北京市转运中心”有关系的节点
//查询两个网点之间所有的路线,最大深度为6,可以查询到2条路线MATCHpath =(n:AGENCY)-[*..6]->(m:AGENCY)WHEREn.name ="北京市昌平区定泗路"ANDm.name ="上海市浦东新区南汇"RETURNpath
按照转运次数最少
//查询两个网点之间最短路径,查询深度最大为10MATCHpath =shortestPath((n:AGENCY)-[*..10]->(m:AGENCY))WHEREn.name ="北京市昌平区定泗路"ANDm.name ="上海市浦东新区南汇"RETURNpath
按照费用最少
//查询两个网点之间所有的路线中成本最低的路线,最大深度为10(如果成本相同,转运节点最少)MATCHpath =(n:AGENCY)-[*..10]->(m:AGENCY)WHEREn.name ="北京市昌平区定泗路"ANDm.name ="上海市浦东新区南汇"UNWIND relationships(path)ASrWITHsum(r.cost)AScost,pathRETURNpath ORDERBYcost ASC,LENGTH(path)ASCLIMIT1//UNWIND是将列表数据展开操作//sum()是聚合统计函数,类似还有:avg()、
- 标签是对节点的分类,这样使得构建Neo4j数据模型更加简单。Neo4j作为图数据库中的代表产品,已经在众多的行业项目中进行了应用,如:网络管理、
关系
- 存储节点之间的关系。
- 在上面的电影案例中,Movie、
官网:https://neo4j.com/
Neo4j实现了专业数据库级别的图数据模型的存储,提供了完整的数据库特性,包括ACID事务的支持、max()、Oracle、Person就是标签
Cypher入门
Cypher是Neo4j的查询语言,类似与关系型数据库中的SQL,一些关键词来源于SQL,比如:CREATE、Redis、
- 关系中的属性进一步的明确了关系。常见的非关系型数据库有MongoDB、电影都是节点。