这一篇把CQL常用的命令进行收尾, 顺便会讲一下CQL的几个函数。
本篇主要内容为UNION, LIMIT, SKIP, IN语句的使用, 字符串函数, 聚合函数, 关系函数的简单使用。
UNION合并
Neo4j的union和sql一样, 包含两个子句, 可以将不同的结果合成一组结果:
- UNION
- UNION ALL
<MATCH 1....>
UNION
<MATCH 2...>
注意: 两个不同的查询结果如果返回的列名和数据类型不同, 将会抛出错误, 我们需要使用as起个别名(前缀不同也会报错)
示例: 我们将student和book进行合并
MATCH (s:student) RETURN s.name as name union match (b:Book) RETURN b.name as name
LIMIT和SKIP
LIMIT命令和SKIP命令比较简单, LIMIT就是限制查询多少条, 比如我们值查询student中的前两条数据
MATCH (n:student) RETURN n LIMIT 2
SKIP命令就是跳过多少条数据:
MATCH (n:student) RETURN n SKIP 3
通过上面两条命令我们就能实现分页的操作, 比较简单, 可以自定尝试下
IN命令
和sql语句中几乎一样, 直接上示例, 查询出student中age为22, 33的节点(注意用的是方括号)
MATCH (n:student) WHERE n.age in ['22','33'] RETURN n
CQL函数 - 字符串函数
语法元素 | 描述 |
---|---|
UPPER | 转大写 |
LOWER | 转小写 |
SUBSTRING | 截取字符串 |
REPLACE | 替换字符串 |
... |
这里拿其中一个做示例, 其他的可自行尝试, 我们对book节点地name进行截取
MATCH (b:Book) RETURN substring(b.name, 1, 3)
聚合函数
语法元素 | 描述 |
---|---|
COUNT | match返回的行数 |
MAX | match返回的最大值 |
MIN | match返回的最小值 |
SUM | match返回的求和 |
AVG | match返回的平均值 |
关系函数
关系函数的作用主要是获取开始节点, 结束节点, 节点的信息等
语法元素 | 描述 |
---|---|
STARTNODE | 开始节点 |
ENDNODE | 结束节点 |
ID | 关系id |
TYPE | 关系TYPE的字符串 |
示例: 我们可以查看购买关系的开始节点:
MATCH p=()-[r:`购买`]->() RETURN startnode(r)
到这里, CQL一些简单的使用就暂时告一段落了, 下一篇将介绍如何整合spring data neo4j。
网友评论