Neo4j简洁版介绍、安装和使用

Neo4j

一、介绍

一种有向图数据库。
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

三、使用

(1)增加

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,表示他们建立前置关系的时间。

(2)查询

match查询

  • 从数据库获取有关节点和属性的数据
  • 从数据库获取有关节点,关系和属性的数据
match (节点类型名:节点类型值)
MATCH (:)
match (高校:浙江师范大学)

return返回

Neo4j CQL return子句用于 -

  • 检索节点的某些属性
  • 检索节点的所有属性
  • 检索节点和关联关系的某些属性
  • 检索节点和关联关系的所有属性
return 节点类型值.属性名
return 
   .,
   ........
   .

注意这里的match要和return配合使用才会显示返回值

正确用法如下:

match (节点类型名:节点类型值) return 节点类型值

where子句

WHERE   

像SQL一样,Neo4j CQL在CQL MATCH命令中提供了WHERE子句来过滤MATCH查询的结果

(3)删除

delete删除

Neo4j使用CQL DELETE子句

  • 删除节点。
  • 删除节点及相关节点和关系。

DELETE节点子句语法

delete 
MATCH (节点类型名: 节点类型值) DELETE 节点类型名

删除所有节点和关系

match(n) detach delete n

你可能感兴趣的:(neo4j)