一种有向图数据库。
Neo4j图形数据库的主要构建块是:
节点:是图表的基本单位。 它包含具有键值对的属性
关系:连接两个节点,具有方向:单向和双向。每个关系包含“开始节点”或“从节点”和“到节点”或“结束节点”。关系也可以包含属性作为键值对。
属性:是用于描述图节点和关系的键值对。Key =值,其中Key是一个字符串,值可以通过使用任何Neo4j数据类型来表示
标签:将节点分组为集合。将一个公共名称与一组节点或关系相关联。 节点或关系可以包含一个或多个标签。 我们可以为现有节点或关系创建新标签。 我们可以从现有节点或关系中删除现有标签。
数据浏览器:用于执行CQL命令并查看输出输出。
个人安装的为Neo4j Desktop版本,Neo4j Desktop开箱就用,内置jdk和环境配置,但是只支持同时启用一个数据库。如果是个人部署再服务器中,则推荐使用社区版本,多点配置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-edLEt9lN-1667042612426)(D:\program files\Typora\home\image\image-20221029191606303.png)]
安装教程:https://www.bilibili.com/video/BV1MR4y1L7zG
Neo4j使用Cypher语言
create (节点名:标签值 {属性名:'属性名值'}) return n
CREATE (:)
create (n:Class {name:'大学英语Ⅱ'}) RETURN n
CREATE是创建操作,Class是标签值,相当于这个节点叫啥。花括号{}代表节点的属性,属性类似Python的字典。这条语句的含义就是创建一个标签为Class的节点,该节点具有一个name属性,属性值是大学英语Ⅱ。
注意:
1、Neo4j数据库服务器使用此将此节点详细信息存储在Database.As中作为Neo4j DBA或Developer,我们不能使用它来访问节点详细信息。
2、Neo4j数据库服务器创建一个作为内部节点名称的别名。作为Neo4j DBA或Developer,我们应该使用此标签名称来访问节点详细信息。
3、简单来说这里的节点名相当于mysql的表名,标签值相当于一条数据,而里面的属性则相当一条数据中多个列值
4、定位一个节点用标签值,但是这里的标签值不是这个节点上显示的备注名,在节点中显示的备注名是id或者name
举例:
CREATE (n1:Class {name:'大学英语Ⅱ'})
CREATE (n2:Class {name:'大学英语Ⅲ'})
CREATE (n3:Class {name:'大学英语Ⅳ'})
RETURN n1,n2,n3
CREATE (m1:profession {name:'计算机专业'})
CREATE (m2:profession {name:'软件工程'})
CREATE (m3:profession {name:'大数据'})
CREATE (m4:profession {name:'信管'})
RETURN m1,m2,m3,m4
CREATE (::.....:)
create (高校:浙江师范大学:东华理工大学)
create (节点一)-[关系类型:关系类型值]->(节点二) //单向关系
create (节点一)<-[关系类型:关系类型值]->(节点二) //双向关系
CREATE (n1:class {name: "大英Ⅱ"})
CREATE (n2:class {name: "大英Ⅲ"})
CREATE (n1)-[r:BASIC]->(n2)
RETURN n1, n2
这里的方括号[]即为关系,BASIC为关系的类型。注意这里的箭头–>是有方向的,表示是从n1到n2的关系。
MATCH (:),(:)
CREATE
()-[:
{}]->()
RETURN
有时,根据我们的客户端要求,我们需要向现有节点或关系添加新属性。
要做到这一点,Neo4j CQL提供了一个SET子句。
Neo4j CQL已提供SET子句来执行以下操作。
set子句语法,一般配合match使用
set 节点名.属性名=节点属性值
SET .,....
MATCH (dc:DebitCard)
SET dc.atm_pin = 3456
RETURN dc
//如果查询到多个节点,则多个相当于对多个节点操作
MATCH (book:Book)
SET book.title = 'superstar'
RETURN book
create (节点一)-[关系类型名:关系类型值 {关系类型属性名:关系类型属性值}]->(节点二)
CREATE (n1:class {name: "大英Ⅱ"})
CREATE (n2:class {name: "大英Ⅲ"})
CREATE (n1)-[r:BASIC {since:2021}]->(n2)
RETURN n1, n2
在关系中,同样的使用花括号{}来增加关系的属性,也是类似Python的字典,这里给BASIC关系增加了since属性,属性值为2021,表示他们建立前置关系的时间。
match (节点类型名:节点类型值)
MATCH (:)
match (高校:浙江师范大学)
Neo4j CQL return子句用于 -
return 节点类型值.属性名
return
.,
........
.
注意这里的match要和return配合使用才会显示返回值
正确用法如下:
match (节点类型名:节点类型值) return 节点类型值
WHERE
像SQL一样,Neo4j CQL在CQL MATCH命令中提供了WHERE子句来过滤MATCH查询的结果
Neo4j使用CQL DELETE子句
DELETE节点子句语法
delete
MATCH (节点类型名: 节点类型值) DELETE 节点类型名
match(n) detach delete n