第二章 Neo4j概述 v1.0
第一部分 Neo4j简介
一、优点
- 容易表示连接的数据
- 检索/遍历/导航更多的连接数据是非常容易和快速的
- 它非常容易地表示半结构化数据
- Neo4j CQL查询语言命令是人性化的可读格式,非常容易学习
- 使用简单而强大的数据模型
- 它不需要复杂的连接来检索连接的/相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引
二、数据模型
1.组成部分

图形数据库数据模型的主要构建块:
- 节点
- 关系
- 属性
2.属性图模型规则
- 表示节点,关系和属性中的数据
- 节点和关系都包含属性
- 关系连接节点
- 属性是键值对
- 节点用圆圈表示,关系用方向键表示。
- 关系具有方向:单向和双向。
- 每个关系包含“开始节点”或“从节点”和“到节点”或“结束节点”
第二部分 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, n23.SET - 更新属性
cypher
MATCH (n:Person {name: 'Tom'})
SET n.age = 20
RETURN n4.DELETE - 删除节点/关系
cypher
// 删除节点(需先删除关系)
MATCH (n:Person {name: 'Tom'}) DETACH DELETE n
// 删除关系
MATCH ()-[r:KNOWS]->() DELETE r5.常用函数
cypher
// count() 统计
MATCH (n:Person) RETURN count(n)
// 根据关系数排序
MATCH (n:Person)
RETURN n.name, size((n)-[:KNOWS]->()) AS friends
ORDER BY friends DESC