Skip to content

第二章 Neo4j概述 v1.0 ​

第一部分 Neo4j简介 ​

一、优点 ​

  • 容易表示连接的数据
  • 检索/遍历/导航更多的连接数据是非常容易和快速的
  • 它非常容易地表示半结构化数据
  • Neo4j CQL查询语言命令是人性化的可读格式,非常容易学习
  • 使用简单而强大的数据模型
  • 它不需要复杂的连接来检索连接的/相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引​

二、数据模型 ​

1.组成部分 ​

image.png

图形数据库数据模型的主要构建块:

  1. 节点
  2. 关系
  3. 属性

2.属性图模型规则 ​

  1. 表示节点,关系和属性中的数据
  2. 节点和关系都包含属性
  3. 关系连接节点
  4. 属性是键值对
  5. 节点用圆圈表示,关系用方向键表示。
  6. 关系具有方向:单向和双向。
  7. 每个关系包含“开始节点”或“从节点”和“到节点”或“结束节点”

第二部分 CQL简介 ​

一、CQL概念 ​

  • 它是Neo4j图形数据库的查询语言
  • 它是一种声明性模式匹配语言
  • 遵循SQL语法
  • 它的语法是非常简单且人性化、可读的格式

二、数据类型 ​

类型说明示例
boolean布尔值true, false
byte字节值0-255
short短整型-32768~32767
int整型2147483647
long长整型9223372036854775807
float单精度浮点3.14
double双精度浮点3.14159265359
char单个字符'A'
String字符串"Hello"

三、常用命令 ​

1.CREATE - 创建节点/关系 ​

cypher
// 创建节点
CREATE (n:Person {name: 'Tom', age: 18})

// 创建带关系的节点
CREATE (n1:Person {name: 'Tom'})-[:KNOWS]->(n2:Person {name: 'Jerry'})

2.MATCH - 查询数据 ​

cypher
// 查询所有Person节点
MATCH (n:Person) RETURN n

// 按条件查询
MATCH (n:Person {name: 'Tom'}) RETURN n

// 查询关系
MATCH (n1:Person)-[:KNOWS]->(n2:Person) RETURN n1, n2

3.SET - 更新属性 ​

cypher
MATCH (n:Person {name: 'Tom'})
SET n.age = 20
RETURN n

4.DELETE - 删除节点/关系 ​

cypher
// 删除节点(需先删除关系)
MATCH (n:Person {name: 'Tom'}) DETACH DELETE n

// 删除关系
MATCH ()-[r:KNOWS]->() DELETE r

5.常用函数 ​

cypher
// count() 统计
MATCH (n:Person) RETURN count(n)

// 根据关系数排序
MATCH (n:Person)
RETURN n.name, size((n)-[:KNOWS]->()) AS friends
ORDER BY friends DESC