Neo4j设置及数据关联命令
Neo4j 是一款Graph Database(图形数据库),Graph Database主要用于存储更多的连接数据。
使用 RDBMS 数据库来存储更多连接的数据,那么它们不能提供用于遍历大量数据的适当性能。 在这些情况下,Graph Database 提高了应用程序性能。
创建新的数据库
Neo4j创建新的数据库,需要修改他的配置文件,在Neo4j目录下conf/neo4j.conf里,修改dbms.default_database=数据库名。
注意:修改配置文件需要先停止Neo4j服务,在命令行输入如下命令停止服务
1 2 |
neo4j stop |
修改完成后,重新启动neo4j服务,打开http://localhost:7474/ 新增的数据库名就出现在database里面。可以点击使用新增的数据库。
CQL简介
CQL代表Cypher查询语言。 Neo4j具有CQL作为查询语言。
- 它是Neo4j图形数据库的查询语言。
- 它是一种声明性模式匹配语言
- 它遵循SQL语法。
- 它的语法是非常简单且人性化、可读的格式。
CREATE命令
- 创建没有属性的节点
- 使用属性创建节点
- 在没有属性的节点之间创建关系
- 使用属性创建节点之间的关系
- 为节点或关系创建单个或多个标签
命令语法 CREATE (node-name:label-name) node-name:节点名 label-name:标签名
创建一条电影信息,示例如下
1 2 |
CREATE (movie:movie {movieid:"m001", name:"盗梦空间 ( 2010 )",posters:"http://img5.mtime.cn/img2x/pi/2010/11/25/094749.96555434_1000X1000.jpg",year:"2010",plots:"多姆·柯布能够潜入人们的梦境中,窃取潜意识中有价值的秘密,这也使他成为了一名国际逃犯。为了重回原本的生活,柯布和他的团队接受了一项任务,这次不是窃取思想,而是植入思想。如果他们成功,这就是一次完美犯罪。" }) |
创建演员信息,示例如下
1 2 3 |
<meta charset="utf-8">CREATE (movie:actor {actorid:"a001", name:" 莱昂纳多·迪卡普里奥",posters:"http://img31.mtime.cn/ph/2016/01/31/141703.43012792_1280X720X2.jpg",record:"莱昂纳多·迪卡普里奥1974年11月11日出生在美国洛杉矶一个富足家庭。说起莱昂纳多的名字还有一段小小的故事。当时已身怀六甲的母亲在看莱昂纳多达芬奇的画展时,肚子里的小宝贝踢了妈妈一脚似乎对莱昂纳多达芬奇的画也感兴趣,因此妈妈给小宝贝取名莱昂纳多。" }) |
创建电影和演员关系,示例如下
1 2 |
MATCH (entity1:movie{movieid:"m001"}), (entity2:actor{actorid:"a001"}) CREATE (entity2)-[:ACTED_IN]->(entity1); |
ACTED_IN可以换成中文角色名,如导演、演员等,到这里,电影和演员关联就完成了,返回如下效果

MATCH命令
- 从数据库获取有关节点和属性的数据
- 从数据库获取有关节点,关系和属性的数据
返回所有节点数据,示例如下
1 2 |
MATCH (n) return n; |
返回指定movie节点数据,示例如下
1 2 |
<meta charset="utf-8">MATCH (n:movie) return n; |
返回指定节点中的指定数据,示例如下
1 2 |
match(n:actor) where n.name='约瑟夫·高登-莱维特' return n; |
返回指定节点中的包含关键词的数据,示例如下
1 |
<meta charset="utf-8">match(n:actor) where n.name=~'.*高登*.' return n; |
更新某标签的数据,示例如下
1 |
<meta charset="utf-8">match(n {actorid:"a001"}) set n.name="New name" return n; |
查询关系数据,示例如下
1 |
match (n:movie)<-[r](b:actor) return n,r,b |
也可以写成如下
match data=(n:movie)<-[]-(b:actor) return data
查询多层关系,查询3层关系示例如下
1 |
<meta charset="utf-8">match data=(n:movie)<-[*1..3]-(b:actor) return data |