Neo4j CQL常用关系操作与查询技巧汇总

需积分: 50 70 下载量 200 浏览量 更新于2024-09-10 3 收藏 3KB TXT 举报
Neo4j 是一款强大的图形数据库,主要用于存储和处理复杂的关系数据。本文档提供了一份关于 Neo4j 常用 Cypher(CQL)语句的汇总,这些语句涵盖了关系查询、创建和修改关系、查询关系类型以及执行更高级的数据筛选和排序操作。 **关系查询** - `MATCH`: 这是查询语句的核心部分,用于找到符合特定条件的节点和关系。例如: - `match(n:Data{name:"一些数据"})-[:包含]->(m:Data{name:"aaaa"})` 用于查找具有特定属性且存在包含关系的节点。 - `match(n:Data{name:'数据'}),(m:BigData{name:'大数据'})create(n)-[:rel]->(m)` 创建一个新的关系。 - **别名**: 使用 `as` 关键字可以为关系类型定义别名,如 `matchp=(n:Data{name:'数据'})-[role:包含]->(m:Data{name:'数据1'})return p`,`role` 为包含关系的别名。 - **创建关系**: `CREATE` 语句用于添加新的节点和关系,如 `match(n:Data{name:'qqq'}) create(m:Data{name:'qq'}) create(n)-[:包含]->(m)`,表示在已有节点间创建包含关系。 - **访问关系**: `MATCH p=()-[r:rel]->()` 查询两个节点之间的关系路径。 - **查询关系类型**: `RETURN type(r)` 或 `MATCH(n:BigData)-->(m:Data{name:'大数据'}) return type(r)` 分别用于获取指定关系的类型。 - **查询所有关系**: `MATCH (:Data{name:'QQQ'})-[r:包含]->(Data) RETURN Data;` 可以获取一个节点的所有关系。 - **查询节点属性和关系**: `MATCH(n:Data)-[r]->(m:Data) return n.name, m.name, type(r)` 显示两个节点的名字和它们之间的关系类型。 - **高级查询**: 包括范围查询 (`WHERE` 子句),如根据节点属性过滤结果 (`where '数据分析' in n.name`),以及聚合函数(`count(*)`, `sum`, `avg`, `min`, `max`)的使用。 - **排序和分页**: `ORDER BY cdesc` 对结果进行降序排序,`skip 0` 跳过前几条记录,`limit 1` 设置返回结果的数量,如 `MATCH(n:BigD`。 这些语句展示了如何在实际开发中灵活运用 Neo4j 的查询语言来处理和检索数据。了解和掌握这些基础和进阶的 Cypher 语句,对于在 Neo4j 中构建和管理复杂的图数据库至关重要。无论是数据的读取、分析还是维护,都可以通过组合这些语法实现高效的工作流程。