三、Neo4j查询语言Cypher相关命令介绍

上一篇文章我们介绍的图数据库Neo4j,这篇文章我们来看一下它的查询语言——Cypher。Cypher是一种声明式图查询语言,表达高效查询和更新图数据库。关注专栏《知识图谱系列》了解更多相关知识~

目录

一、简介

1.1 常用的命令和函数

1.2 数据类型

二、常用的命令

2.1 CREATE命令

2.1.1 创建没有属性的节点

2.1.2 创建具有属性的节点

2.2 MATCH命令

2.3 RETURN命令

2.4 关系

2.4.1 创建没有属性的关系

2.4.2 创建有属性的关系

2.5 WHERE命令

2.5.1 布尔运算符

2.5.2 比较运算符

2.5.3 使用WHERE子句创建关系

2.6 DELETE命令

2.6.1 删除节点

2.6.2 删除节点和关系

2.7 REMOVE命令

2.8 SET命令

2.9 ORDER BY 命令

2.10 UNION命令

2.11 LIMIT和SKIP命令

2.12 MERGE命令

2.13 NULL值

2.14 IN命令

一、简介

1.1 常用的命令和函数

Cypher查询语言也叫做CQL,它常用的命令如下:

三、Neo4j查询语言Cypher相关命令介绍

CQL常用的函数如下所示:

三、Neo4j查询语言Cypher相关命令介绍

1.2 数据类型

CQL的数据类型跟Java语言类似,它们用于定义节点或关系的属性。

三、Neo4j查询语言Cypher相关命令介绍

二、常用的命令

2.1 CREATE命令

2.1.1 创建没有属性的节点

语法如下:

CREATE (:)

其中,node-name是节点的名称,label-name是节点标签名称。

例如:

CREATE(person:Person)

三、Neo4j查询语言Cypher相关命令介绍

2.1.2 创建具有属性的节点

语法如下:

CREATE (
   :
   {
      :
      ........

      :
   }
)

其中,Propertyn-name是创建节点属性的名称,Propertyn-Value是创建节点属性的值。

例如:

CREATE (person:Person { name:"xzw",sex:"m",location:"QD" })

三、Neo4j查询语言Cypher相关命令介绍

2.2 MATCH命令

MATCH命令用于从数据库获取有关节点、关系和属性的数据。语法如下:

MATCH
(
   :
)

MATCH命令通常与RETURN命令一起使用。

2.3 RETURN命令

RETURN命令用于检索节点和关联关系的属性。语法如下:

RETURN
   .,
   ........

   .

例如:

CREATE (t: test {name:"xzw", sex:"m", loc: "QD"})
MATCH (t: test)
RETURN t.name,t.sex

三、Neo4j查询语言Cypher相关命令介绍

2.4 关系

基于方向性,Neo4j关系被分为两种主要类型:单向关系和双向关系。

2.4.1 创建没有属性的关系

语法如下:

CREATE
   (:)-
   [:]->
   (:)
RETURN

其中,relationship-name是关系的名称,relationship-label-name是关系的标签名称。上述语法中的return子句不是必须的。

例如:

CREATE (f1:Favorite1)-[like:LIKES]->(f2:Favorite2)
RETURN like

三、Neo4j查询语言Cypher相关命令介绍

2.4.2 创建有属性的关系

语法如下:

CREATE
    (:{})-
    [:{}]
    ->(:{})
RETURN

例如:

CREATE (v1:Video1{title:"Action1",updated_by:"A",uploaded_date:"10/10/2020"})
-[movie:ACTION_MOVIES{rating:1}]->
(v2:Video2{title:"Action2",updated_by:"X",uploaded_date:"12/12/2020"})

三、Neo4j查询语言Cypher相关命令介绍
MATCH (v1:Video1)-[movie:ACTION_MOVIES]->(v2:Video2)
RETURN movie

三、Neo4j查询语言Cypher相关命令介绍

2.5 WHERE命令

像SQL一样,Neo4j CQL在CQL MATCH命令中提供了WHERE子句来过滤MATCH查询的结果,语法如下:

1、简单语法:WHERE
2、复杂语法:WHERE
其中,condition的语法为:

其中,

例如:

MATCH (p:People)
RETURN p.name,p.sex,p.location

三、Neo4j查询语言Cypher相关命令介绍
MATCH (p:People)
WHERE p.name = 'xzw'
RETURN p

三、Neo4j查询语言Cypher相关命令介绍

2.5.1 布尔运算符

三、Neo4j查询语言Cypher相关命令介绍

2.5.2 比较运算符

三、Neo4j查询语言Cypher相关命令介绍

2.5.3 使用WHERE子句创建关系

语法如下:

MATCH (:),(:)
WHERE
CREATE ()-[:
       {}]->()

例如:

CREATE (c:Customer {id:"1", name: "xzw", sex:"m"})
CREATE (f:Fav {id:"1", favor: "sleep"})

MATCH (c:Customer)
RETURN c.id,c.name,c.sex

MATCH (f:Fav)
RETURN f.id, f.favor

三、Neo4j查询语言Cypher相关命令介绍
MATCH (c:Customer),(f:Fav)
WHERE c.id = "1" AND f.id= "1"
CREATE (c)-[r:Relat{location:"QD"}]->(f)
RETURN r

三、Neo4j查询语言Cypher相关命令介绍

2.6 DELETE命令

删除节点及相关节点和关系。

2.6.1 删除节点

语法如下:

DELETE

例如:

MATCH (p:People)
RETURN p.name

三、Neo4j查询语言Cypher相关命令介绍
MATCH (p:People) DELETE p

三、Neo4j查询语言Cypher相关命令介绍
MATCH (p:People)
RETURN p.name

三、Neo4j查询语言Cypher相关命令介绍

2.6.2 删除节点和关系

语法如下:

DELETE ,,

为了节省篇幅,以下无特殊说明,不再给出示例,因为这些语法都比较简单,感兴趣的朋友可以自己测试一下。

这里值得注意的是,可以通过以下命令,删除数据库中的所有节点和关系:

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r

2.7 REMOVE命令

删除现有节点或关系的属性或标签。值得注意的是DELETE和REMOVE两个命令都应该与MATCH命令一起使用。REMOVE命令语法如下:

REMOVE /

其中,是一个属性列表,其用法如下:

.,
.,
....

.

它是一个标签列表,其用法如下:

:,
....

:

2.8 SET命令

SET命令用来向现有节点或者关系添加或更新属性值,其语法如下:

SET

其中,是一个属性列表,其语法如下:

.,
.,
....

.

2.9 ORDER BY 命令

Neo4j CQL在MATCH命令中提供了”ORDER BY”子句,对MATCH查询返回的结果进行排序。默认情况下,它按升序对行进行排序。 如果我们要按降序对它们进行排序,我们需要使用DESC子句。其语法如下:

ORDER BY    [DESC]

其中,是属性列表,其语法如下:

.,
.,
....

.

2.10 UNION命令

它将两组结果中的公共行组合并返回到一组结果中, 它不从两个节点返回重复的行。跟SQL类似,UNION ALL是返回所有的数据。语法如下:


   UNION

2.11 LIMIT和SKIP命令

LIMIT命令来过滤或限制查询返回的行数,它修剪CQL查询结果集底部的结果。如果我们要修整CQL查询结果集顶部的结果,那么我们应该使用SKIP命令。他们的语法如下:

LIMIT

SKIP

2.12 MERGE命令

MERGE命令是CREATE命令和MATCH命令的组合。它在图中搜索给定模式,如果存在,则返回结果,如果它不存在于图中,则它创建新的节点/关系并返回结果。其语法如下:

MERGE (:
{
   :
   .....

   :
})

2.13 NULL值

Neo4j CQL将空值视为对节点或关系的属性的缺失值或未定义值。当我们创建一个具有现有节点标签名称但未指定其属性值的节点时,它将创建一个具有NULL属性值的新节点。

2.14 IN命令

与SQL一样,Neo4j CQL提供了一个IN运算符,以便为CQL命令提供值的集合。其语法如下:

IN[]

本文到此已经接近尾声了,本文主要讲述了一些Neo4j CQL常用命令,下一篇会讲一下CQL常用的函数命令。你们在此过程中遇到了什么问题,欢迎留言,让我看看你们都遇到了什么问题~

Original: https://blog.csdn.net/gdkyxy2013/article/details/109489063
Author: 象在舞
Title: 三、Neo4j查询语言Cypher相关命令介绍

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/558160/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球