neo4j学习总结--第三课 Cypher(CQL)命令一

本文详细介绍Neo4j图形数据库的Cypher查询语言(CQL),涵盖CQL的基本概念、常用命令如CREATE、MATCH、RETURN及WHERE子句的使用方法,包括节点和关系的创建、查询、属性过滤等高级技巧。

目录

 

一.CQL简介

二.Neo4j CQL命令/条款

三、命令

3.1 、CREATE命令

3.1.1 创建节点

3.1.2 创建关系

3.1.3、创建一个完整路径

3.1.4、创建索引

3.2 MATCH 命令

3.2.1、查询节点

3.2.2 、查找关系

3.2.3  查询路径

3.2.4、单条最短路径

3.2.5 通过id查询节点或关系

四、OPTIONAL MATCH

五、WHERE子句

Neo4j CQL中的布尔运算符

Neo4j CQL中的比较运算符

5.1 、基本使用

5.1.1 布尔运算

5.1.2 、字符串匹配

5.1.3、正则表达式 =~ 'regexp'

5.1.4 在WHERE中使用路径模式

5.1.5 列表

六、RETURN返回

6.1、返回节点

6.2、返回关系

6.3、返回属性

6.4、返回所有元素

6.5、变量中的特殊字符

6.6、列别名

6.7、其他表达式

6.8 唯一性结果


一.CQL简介

CQL代表Cypher查询语言。 像Oracle数据库具有查询语言SQL,Neo4j具有CQL作为查询语言。

Neo4j CQL -

  • 它是Neo4j图形数据库的查询语言。
  • 它是一种声明性模式匹配语言
  • 它遵循SQL语法。
  • 它的语法是非常简单且人性化、可读的格式。

如Oracle SQL -

  • Neo4j CQL 已命令来执行数据库操作。
  • Neo4j CQL 支持多个子句像在哪里,顺序等,以非常简单的方式编写非常复杂的查询。
  • NNeo4j CQL 支持一些功能,如字符串,Aggregation.In 加入他们,它还支持一些关系功能。

二.Neo4j CQL命令/条款

常用的Neo4j CQL命令/条款如下:

S.No.

CQL命令/条

用法

1。

CREATE 创建

创建节点,关系和属性

2。

MATCH 匹配

检索有关节点,关系和属性数据

3。

RETURN 返回

返回查询结果

4。

WHERE 哪里

提供条件过滤检索数据

5。

DELETE 删除

删除节点和关系

6。

REMOVE 移除

删除节点和关系的属性

7。

ORDER BY以…排序

排序检索数据

8。

SET 组

添加或更新标签

三、命令

3.1 、CREATE命令

Neo4j使用CQL“CREATE”命令

  • 创建节点

  • 使用关系

  • 创建一个完整路径

  • 创建索引

3.1.1 创建节点

Neo4j CQL创建一个没有属性的节点

CREATE (<node-name>:<label-name>)

语法说明

规范说法是节点标签名称,其实相当于Mysql数据库中的表名,而是节点名称,其实代指创建的此行数据。

示例

CREATE (emp:Employee) return emp 或者 CREATE (:Employee)

Neo4j CQL创建具有属性的节点

Neo4j CQL“CREATE”命令用于创建带有属性的节点。 它创建一个具有一些属性(键值对)的节点来存储数据。

CREATE (<node-name>:<label-name>  {<key>:<Value>,...<n-key>:<n-Value>})

示例

CREATE (dept:Dept { deptno:10,dname:"Accounting",location:"Hyderabad" })

创建带有多个标签的节点

CREATE (n:Person:Swedish)

返回创建的节点

CREATE (a { name: 'Andres' }) RETURN a

3.1.2 创建关系

  注意:关系必须有箭头指向

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

//先创建2个节点

CREATE (n:Person {name: 'Node A'}),(m:Person {name: 'Node B'})

//查询节点并为其创建关系

MATCH (a:Person),(b:Person)

WHERE a.name = 'Node A' AND b.name = 'Node B'

CREATE (a)-[r:RELTYPE]->(b)

RETURN r

创建关系并为关系设置属性

Match (a:Person {name:'Node A'}),(b:Person {name:'Node B'})

CREATE (a)-[r:RELTYPE { name: 'abc' }]->(b)

RETURN r

3.1.3、创建一个完整路径

当使用CREATE和模式时,模式中所有还不存在的部分都会被创建。

create p = (m:Andres {name:'南京'})-[r:SHUYU]->(jiangsu:Andres {name:'江苏省'})<-[s:SHUYU]-(andres:Andres {name:'徐州'}) return p

3.1.4、创建索引

CREATE INDEX ON :Person(name)

3.2 MATCH 命令

 MATCH命令用于 -

  • 从数据库获取有关节点和属性的数据
  • 从数据库获取有关节点,关系和属性的数据

3.2.1、查询节点

查询所有节点

通过指定一个不带标签的节点的模式,图中的所有节点将返回。

MATCH (n)

RETURN n

        

返回数据库中的所有节点。

查询带有某个标签的所有节点

通过指定带有一个标签的节点的模式,可以获取满足该标签的所有节点。

查询

MATCH (movie:Movie)

RETURN movie.title

返回数据库中的所有电影。

查询关联节点

符号——意为相关的,这个关系不带有类型和方向。

MATCH ({ name: 'Lilly Wachowski' })--(movie)

RETURN movie.title

返回’Lilly Wachowski’相关的所有电影。

匹配标签

可以为查询的节点增加标签约束。如下

MATCH (:Person { name: 'Lilly Wachowski' })--(movie:Movie)

RETURN movie.title

返回与Person 'Oliver'相连的带有Movie标签的所有节点。

3.2.2 、查找关系

外向关系

关系的方向通过-->或者<--来表示。如:

MATCH

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值