Neo4j的Cypher Query Language(CQL)是专门为图数据库设计的查询语言,其语法类似于SQL,但是专门用于描述和查询图数据。以下是一些常见的Cypher查询示例和用法,包括创建数据、查询数据、更新数据和删除数据的操作。

 

1. 创建节点和关系

创建单个节点:

1
2
3
CREATE (node:Label {property: value})
 
CREATE (n:Person {name: 'Alice', age: 30})CREATE (c:Company {name: 'xx公司'})

在这个例子中,我们创建了一个具有两个属性(nameage)的Person节点。

创建两个节点之间的关系:

1
2
3
MATCH (node1:Label1), (node2:Label2)
WHERE node1.property = value1 AND node2.property = value2
CREATE (node1)-[:RELATIONSHIP_TYPE]->(node2)<br><br>MATCH (n:Person {name: 'Alice', age: 30}), (c:Company {name: 'xx公司'}) <br>CREATE (n)-[:WORKS_FOR]->(c)<br><br>

 

2. 查询数据

查询所有Person节点:

1
2
MATCH (p:Person)
RETURN p

查询特定属性的节点:

1
2
MATCH (p:Person {name: 'Alice'})
RETURN p

查询具有特定关系的节点:

1
2
3
MATCH (p:Person)-[:FRIENDS_WITH]->(friend)
WHERE p.name = 'Alice'
RETURN friend

这里我们返回了所有与名为Alice的人是朋友的节点。

3. 更新数据

更新节点属性:

1
2
3
MATCH (p:Person {name: 'Alice'})
SET p.age = 31
RETURN p

这里我们将名为Alice的Person的年龄更改为31。

添加关系:

1
2
3
MATCH (a:Person), (b:Person)
WHERE a.name = 'Alice' AND b.name = 'Bob'
CREATE (a)-[:FRIENDS_WITH]->(b)

这里我们在Alice和Bob之间创建了一个新的FRIENDS_WITH关系。

 

4. 删除数据

删除一个没有关系的节点:

1
2
MATCH (n:Person {name: 'Alice'})
DELETE n

删除一个节点和它的所有关系:

1
2
MATCH (n:Person {name: 'Alice'})
DETACH DELETE n

DETACH DELETE语句将删除节点及其所有关系

5. 复杂查询

使用多个匹配和条件:

1
2
3
4
MATCH (a:Person {name: 'Alice'})
MATCH (b:Person {name: 'Bob'})
MATCH (a)-[r:FRIENDS_WITH]-(b)
RETURN r

  

这里我们查询Alice和Bob之间是否存在朋友关系,并返回这个关系。

聚合和排序:

1
2
3
MATCH (p:Person)
RETURN p.name, COUNT(p) as num_friends
ORDER BY num_friends DESC

这个查询返回每个人的名字和他们朋友的数量,并按朋友数量降序排序。

posted on   黑逍逍  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
历史上的今天:
2023-02-23 2023/2/24 再次安装darknet
2023-02-23
2023-02-23 apt和pip



点击右上角即可分享
微信分享提示