入门neo4j数据库

简介

RDBMS 与 GDBMS

RDBMS 是以 表、行、列存储数据的数据库;GDBMS是以图形存储的数据库。

neo4j就是图数据库,GDBMS的一种。它很适用于遍历大量数据。

数据模型

属性图模型规则

图形数据库数据模型是由:节点,关系,属性构成的,就像这样

属性图的例子

CQL

CQL是Cypher查询语言,Neo4j选用CQL作为查询语言

CQL 数据类型

image-20210707005515196

CREATE\&MERGE

CREATE 用于创建节点,关系,以及为节点或关系添加标签

创建无属性节点:CREATE (<node-name>:<label-name>)
CREATE (<node-name>:<label-name1>:<label-name2>.....:<label-namen>) 创建多个标签到节点

node-name : 节点名 lable-name: 标签名,我们一般用标签名来访问某个节点的详细信息

创建有属性节点:
CREATE (
   <node-name>:<label-name>
   {   
      <Property1-name>:<Property1-Value>
      ........
      <Propertyn-name>:<Propertyn-Value>
   }
)

: : 键值对,name为属性名,value为属性值

而MERGE和CREATE是差不多的,唯一区别是MERGE在插入新的节点,属性或关系时会先检索数据库,若添加到是重复项则不会添加,不重复才会添加。 具体语法与CREATE一致

MERGE (
   <node-name>:<label-name>
   {   
      <Property1-name>:<Property1-Value>
      ........
      <Propertyn-name>:<Propertyn-Value>
   }
)

SET

SET用于添加新属性

常用:MATCH (test:TestDB) SET test.age=10 return TestDB

MATCH\&RETURN

从数据库获得节点,关系,属性的数据

MATCH 
(
   <node-name>:<label-name>
) return <node-name>.<propertyn-name>

值得注意的是,MATCH和RETURN函数不能单独使用,常配合使用,如。

MATCH(dept:Dept) return dept  //查询Dept下的内容

MATCH(dept:Dept) return dept.location  //查询Dept下的所有location属性

# 查询Employee标签下 id=123,name="Lokesh"的节点
MATCH (p:Employee {id:123,name:"Lokesh"}) RETURN p

关系

Neo4j的节点间有两种关系:单向关系与双向关系。其被用作来描述节点与节点之间的关系

CREATE (<node1-name>:<label1-name>)-
  [<relationship-name>:<relationship-label-name>]
  ->(<node2-name>:<label2-name>)
  创建新节点与新关系
MATCH (a:Chinese),(b:Dog) 
where a.name="Yangfan" AND b.name="ergu" 
create (a)-[r:Relationship{ref:"Leader"}]->(b)
return r
从现有节点创建关系

WHERE

和MYSQL的where语句很类似,即MATCH查询的限制函数

WHERE <property-name> <comparison-operator> <value> 简单的WHERE子句

它是节点或关系的属性名称。

比较运算符

DELETE\&REMOVE

DELETE用于删除节点或关系

常用: MATCH(e:Employee) DELETE e

REMOVE用于删除属性

常用:MATCH (book { id:122 }) REMOVE book.price