Neo4j的Cypher查询与操作指南

需积分: 0 0 下载量 93 浏览量 更新于2024-08-03 收藏 8KB MD 举报
"Cypher增删改查.md" Cypher是Neo4j图数据库系统中的一种强大的查询和更新语言,专为处理图数据而设计。它以其简洁的语法和高效的操作而闻名,用户可以通过Cypher执行复杂的图查询,无需关注底层实现细节。Cypher受到SQL的影响,但更专注于图形表示,使用ASCII艺术风格来表示图中的模式。 ### Cypher的主要操作 #### 1. 查询(MATCH) MATCH语句是Cypher中最基础的查询工具,用于定位图中的节点和关系。 **节点查询** - **基本节点查找**:查询所有节点。 ```cypher MATCH (n) RETURN n ``` - **按标签查找**:查找特定标签的节点。 ```cypher MATCH (n:标签) RETURN n ``` - **按属性查找**:根据指定属性值查找节点。 ```cypher MATCH (n:标签 {属性名: '属性值'}) RETURN n ``` **关系查询** - **所有关系**:获取图中的所有关系。 ```cypher MATCH r=()-[]->() RETURN r ``` - **按标签查找关系**:查找特定标签的节点间的关系。 ```cypher MATCH r=(n:标签1)-[]->(m:标签2) RETURN r ``` - **按属性查找关系**:根据关系属性值查找。 ```cypher MATCH r=(n:标签1 {属性名: '属性值'})-[]->() RETURN r ``` #### 2. 插入(CREATE) CREATE用于在图中创建新的节点和关系。 例如,创建一个名为`device`的节点: ```cypher CREATE (:device {name: '设备1'}) ``` 创建一个`device`节点到`规定`节点的关系: ```cypher CREATE (:device {name: '设备1'})-[:使用规定]->(:规定 {name: '规则1'}) ``` #### 3. 更新(SET) SET语句用于更新节点或关系的属性。 例如,更新`device`节点的`name`属性: ```cypher MATCH (n:device {name: '设备1'}) SET n.name = '新设备1' ``` #### 4. 删除(DELETE) DELETE用于移除图中的节点、关系,甚至整个模式。 删除一个节点及其所有关系: ```cypher MATCH (n:device {name: '新设备1'}) DETACH DELETE n ``` 删除一个关系: ```cypher MATCH ()-[r]->() WHERE r.type = '使用规定' DELETE r ``` Cypher的灵活性和易读性使得它成为处理图数据的强大工具,无论是简单的查询还是复杂的图模式匹配,都能轻松应对。通过掌握Cypher,用户可以高效地管理和操作Neo4j中的图数据。