作品怎么推广,seo 整站优化,国外做鞋子的网站吗,佛山网站建设科技公司前言
MySQL是一种开源的关系型数据库管理系统#xff0c;使用SQL作为其查询语言#xff0c;常见的关系型数据库有MySQL、Oracle、SQL Server、PostgreSQL等。相关博客文章如下#xff1a;
【合集】MySQL的入门进阶强化——从 普通人 到 超级赛亚人 的 华丽转身PostgreSQL数…
前言
MySQL是一种开源的关系型数据库管理系统使用SQL作为其查询语言常见的关系型数据库有MySQL、Oracle、SQL Server、PostgreSQL等。相关博客文章如下
【合集】MySQL的入门进阶强化——从 普通人 到 超级赛亚人 的 华丽转身PostgreSQL数据库——Docker版本的postgres安装 Navicat连接方式导入向导使用 SpringBoot结合Jpa使用PostgreSQL初步
还有就是非关系型数据库也称为NoSQL数据库它不使用表格来存储数据而是使用键值对、文档、图形等方式来存储数据。常见的非关系型数据库有MongoDB、Redis、Cassandra等。相关博客文章如下
【合集】Redis——Redis的入门到进阶 结合实际场景的Redis的应用
此外还有一种图数据库图形数据库是专门用于存储图形数据的数据库它使用图形模型来存储数据并且支持复杂的图形查询。常见的图形数据库有Neo4j、OrientDB等。
本篇博客介绍Neo4j图数据库Neo4j是用Java实现的开源NoSQL图数据库本篇博客介绍docker版本的安装Neo4j的数据结构基本的创建、查询的Cypher语句。 目录 前言引出Neo4j什么是Neo4j部署安装数据结构 Cypher入门创建数据删除数据查询语句按照转运次数最少按照费用最少 附录构造数据 总结 引出 1.Neo4j是用Java实现的开源NoSQL图数据库; 2.dokcer版本的Neo4j部署安装数据结构介绍 3.Cypher是Neo4j的查询语言创建和查询入门
Neo4j
什么是Neo4j
Neo4j是用Java实现的开源NoSQL图数据库。从2003年开始开发2007年正式发布第一版其源码托管于GitHtb。Neo4j作为图数据库中的代表产品已经在众多的行业项目中进行了应用如网络管理、软件分析、组织和项目管理、社交项目等方面。
官网https://neo4j.com/ Neo4j实现了专业数据库级别的图数据模型的存储提供了完整的数据库特性包括ACID事务的支持、集群的支持、备份和故障转移等。
Neo4j提供了申明式的查询语言Cypher它类似于关系型数据库中的SQL语言其具有表现力丰富、使用简单、查询效率高、高扩展性等特点。
其中紫色圆圈是【人】数据橙色圆圈是【电影】数据表示人与电影之间参演或导演的数据关系。 部署安装
Neo4j支持众多平台的部署安装如Windows、Mac、Linux等系统。Neo4j是基于Java平台的所以部署安装前先保证已经安装了Java虚拟机。 7474是web管理工具的端口7687是neo4j协议端口进行数据通信 docker run \
-d \
--restartalways \
--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) RETURN tom,tomHanksMovies数据结构 节点 存储实体数据在上图中演员、电影都是节点。可以理解为关系型数据库中的表。 关系 存储节点之间的关系。关系只能有一个类型必须有开始节点和结束节点以及指向。关系可以自我循环引用但是两头永远不能为空。 属性 节点和关系都可以有属性它是由键值对组成的。节点的属性可以理解为关系型数据库中的字段。关系中的属性进一步的明确了关系。 标签 标签是对节点的分类这样使得构建Neo4j数据模型更加简单。在上面的电影案例中Movie、Person就是标签
Cypher入门
Cypher是Neo4j的查询语言类似与关系型数据库中的SQL一些关键词来源于SQL比如CREATE、WHERE、RETRUN等。下面我们一起学习Cypher的基本语句。
Cypher语句的关键字对大小写不敏感。
创建数据
使用CREATE命令来创建节点、关系、属性数据。语法如下
//查询所有数据
MATCH (n) RETURN n
//删除所有节点和关系慎用
MATCH (n) DETACH DELETE n
CREATE (n {name: $value}) RETURN n //创建节点,该节点具备name属性n为该节点的变量,创建完成后返回该节点
CREATE (n:$Tag {name: $value}) //创建节点指定标签
CREATE (n)-[r:KNOWS]-(m) //创建n指向m的关系并且指定关系类型为KNOWS删除数据
//删除节点
MATCH (n:AGENCY {name:航头营业部}) DELETE n
//有关系的节点是不能直接删除的
MATCH (n:AGENCY {name:北京市昌平区新龙城}) DELETE n
//删除节点和关系
MATCH (n:AGENCY {name:北京市昌平区新龙城}) DETACH DELETE n
//删除所有节点和关系慎用
MATCH (n) DETACH DELETE n查询语句
[MATCH WHERE] //条件查询
[WITH [ORDER BY] [SKIP] [LIMIT]] //查询的结果以管道的形式传递给下面的语句聚合查询必须使用WITH
RETURN [ORDER BY] [SKIP] [LIMIT] //返回、排序、跳过、返回个数MATCH (n) RETURN n //查询所有的数据//查询关系relationships()获取结果中的关系WITH向后传递数据
MATCH path (n:OLT {name:北京市转运中心}) -[*..2]-(m)
WITH n,m, relationships(path) AS r
RETURN rMATCH p (n:OLT {name:北京市转运中心}) -- (m:OLT) RETURN p //将查询赋值与变量MATCH (n:OLT {name: 北京市转运中心}) -- (m) RETURN n,m
//查询所有与“北京市转运中心”有关系的节点//查询两个网点之间所有的路线最大深度为6可以查询到2条路线
MATCH path (n:AGENCY) -[*..6]-(m:AGENCY)
WHERE n.name 北京市昌平区定泗路 AND m.name 上海市浦东新区南汇
RETURN path按照转运次数最少
//查询两个网点之间最短路径查询深度最大为10
MATCH path shortestPath((n:AGENCY) -[*..10]-(m:AGENCY))
WHERE n.name 北京市昌平区定泗路 AND m.name 上海市浦东新区南汇
RETURN path按照费用最少
//查询两个网点之间所有的路线中成本最低的路线最大深度为10如果成本相同转运节点最少
MATCH path (n:AGENCY) -[*..10]-(m:AGENCY)
WHERE n.name 北京市昌平区定泗路 AND m.name 上海市浦东新区南汇
UNWIND relationships(path) AS r
WITH sum(r.cost) AS cost, path
RETURN path ORDER BY cost ASC, LENGTH(path) ASC LIMIT 1
//UNWIND是将列表数据展开操作
//sum()是聚合统计函数类似还有avg()、max()、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的查询语言创建和查询入门