Neo4j Cypher Query Language学习(二)

Neo4j是: ·一个开源 ·无Schema ·没有SQL ·图形数据库

该篇文章主要内容包括:

1.Neo4j CQL - SET命令:

2.Neo4j CQL - Sorting排序:

3.Neo4j CQL - UNION联盟:

4.Neo4j CQL - LIMIT和SKIP子句:

5.Neo4j CQL - 合并:

6.Neo4j CQL - NULL值:

7.Neo4j CQL - IN操作符:

8.Neo4j CQL - 图形字体

9.Neo4j - ID属性

10..Neo4j - 方向关系




1.Neo4j CQL - SET命令:

·向现有节点或关系添加新属性

·更新现有节点或关系的属性值

SET子句语法

语法: SET

语法: SET 属性名列表

语法

.,

.,

......

.



Neo4j Cypher Query Language学习(二)_第1张图片
先查看一个节点已存在的属性,然后给这个节点添加新属性price

添加新属性

Neo4j Cypher Query Language学习(二)_第2张图片
为这个节点添加新属性price=100

更新属性值

Neo4j Cypher Query Language学习(二)_第3张图片
将属性price,更新为998


2.Neo4j CQL - Sorting排序:

·MATCH 搭配 ORDER BY  对返回的结果排序

·默认是升序,降序需使用DESC子句

ORDER BY子句语法

语法: ORDER BY [DESC]

语法: ORDER BY 属性名列表 [DESC]


Neo4j Cypher Query Language学习(二)_第4张图片
先查看Movie标签节点的三个属性title、tagline、released
Neo4j Cypher Query Language学习(二)_第5张图片
按照title排序
Neo4j Cypher Query Language学习(二)_第6张图片
按照released排序
Neo4j Cypher Query Language学习(二)_第7张图片
按照released降序排序


3.Neo4j CQL - UNION联盟:

·它将两组结果中的公共行组合并返回到一组结果中。 避免重复行返回

·限制: 列名称应该相同,列的数据类型应该相同

UNION子句语法

UNION

UNION ALL子句

它结合并返回两个结果集的所有行成一个单一的结果集。  它返回两节点的重复行

UNION ALL子句语法

UNION ALL


先自己创建一些节点

CREATE(p:Person {name:"布口袋_天晴了1",sex:"男",age:18})

CREATE(p:Person {name:"布口袋_天晴了2",sex:"男",age:16,school:"CQUPT"})

CREATE(p:Person {name:"布口袋_天晴了2",sex:"男",age:16,school:"CQUPT"})

CREATE(p:Person {name:"布口袋_天晴了2",sex:"男",age:16,school:"CQUPT"})

CREATE(p:Person {name:"布口袋_天晴了3",sex:"男",age:26,school:"CQUPT",school:"YANSHAN"})

Neo4j Cypher Query Language学习(二)_第8张图片
当创建两个属性名一样时,该属性也只在数据库中存了一个值
Neo4j Cypher Query Language学习(二)_第9张图片
匹配查询1
Neo4j Cypher Query Language学习(二)_第10张图片
匹配查询2
Neo4j Cypher Query Language学习(二)_第11张图片
UNION ALL 不去重复
Neo4j Cypher Query Language学习(二)_第12张图片
UNION  去重


4.Neo4j CQL - LIMIT和SKIP子句:

·LIMIT子句用来过滤或限制查询返回的行数,它修剪结果集定部的结果。

LIMIT子句语法

语法: LIMIT

语法: LIMIT 数量

SKIP子句语法 (目前这个语法不管用)

语法: SKIP

语法: SKIP 数量


Neo4j Cypher Query Language学习(二)_第13张图片
LIMIT 2
Neo4j Cypher Query Language学习(二)_第14张图片
SKIP 2  没起作用


5.Neo4j CQL - 合并:

Neo4j 使用CQL MEGER命令

·创建节点,关系,属性

·为从数据库检索数据

MERGE = CREATE +MATCH

Neo4j CQL MEGER命令在图中搜索给定模式,如果存在,则返回结果。如果不存在,则它创建新的节点、关系并返回结果。

Neo4j CQL CREATE命令总是向数据添加新的节点。

Neo4j CQL MERGE命令将新的节点添加到数据库,只有当它不存时。

MERGE语法

MERGE(: {:,

......

:})


Neo4j Cypher Query Language学习(二)_第15张图片
MERGE = MATCH + CREATE  有,就不新建,返回;没有,就新建,返回


6.Neo4j CQL - NULL值:

Neo4j CQL将空值视为对节点或关系的属性的缺失值或未定义值。


Neo4j Cypher Query Language学习(二)_第16张图片
name born age

过滤掉name为NULL的项

Neo4j Cypher Query Language学习(二)_第17张图片
WHERE p.name IS NOT NULL 过滤掉名字属性为NULL的项

过滤判断条件:

WHERE xxx IS NULL

WHERE xxx IS NOT NULL


7.Neo4j CQL - IN操作符:

IN运算符,提供值的集合。

IN操作符语法

语法: IN[]


Neo4j Cypher Query Language学习(二)_第18张图片
查询,返回
Neo4j Cypher Query Language学习(二)_第19张图片
IN[  ]  从这里面选择


8.Neo4j CQL - 图形字体:

Neo4j Cypher Query Language学习(二)_第20张图片


9.Neo4j - ID属性:

在Neo4j中,“Id”是节点和关系的默认内部属性。 这意味着,当我们创建一个新的节点或关系时,Neo4j数据库服务器将为内部使用分配一个数字。 它会自动递增。   


10.Neo4j - 方向关系:

语法上的方向: () - [] -> ()


参考文章:

【1】W3Cschool Neo4j教程

你可能感兴趣的:(Neo4j Cypher Query Language学习(二))