Neo4j Cypher Query Language学习(二)

字数 885阅读 257

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 <property-name-list>

语法: SET 属性名列表

<property-name-list>语法

<node-label-name>.<property1-name>,

<node-label-name>.<property2-name>,

......

<node-label-name>.<propertyn-name>



先查看一个节点已存在的属性,然后给这个节点添加新属性price

添加新属性

为这个节点添加新属性price=100

更新属性值

将属性price,更新为998


2.Neo4j CQL - Sorting排序:

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

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

ORDER BY子句语法

语法: ORDER BY <property-name-list> [DESC]

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


先查看Movie标签节点的三个属性title、tagline、released
按照title排序
按照released排序
按照released降序排序


3.Neo4j CQL - UNION联盟:

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

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

UNION子句语法

<MATCH Command1>

UNION

<MATCH Command2>

UNION ALL子句

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

UNION ALL子句语法

<MATCH Command1>

UNION ALL

<MATCH Command2>


先自己创建一些节点

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"})

当创建两个属性名一样时,该属性也只在数据库中存了一个值
匹配查询1
匹配查询2
UNION ALL 不去重复
UNION  去重


4.Neo4j CQL - LIMIT和SKIP子句:

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

LIMIT子句语法

语法: LIMIT <number>

语法: LIMIT 数量

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

语法: SKIP <number>

语法: SKIP 数量


LIMIT 2
SKIP 2  没起作用


5.Neo4j CQL - 合并:

Neo4j 使用CQL MEGER命令

·创建节点,关系,属性

·为从数据库检索数据

MERGE = CREATE +MATCH

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

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

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

MERGE语法

MERGE(<node-name>:<label-name> {<property1-name>:<property1-value>,

......

<propertyn-name>:<propertyn-value>})


MERGE = MATCH + CREATE  有,就不新建,返回;没有,就新建,返回


6.Neo4j CQL - NULL值:

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


name born age

过滤掉name为NULL的项

WHERE p.name IS NOT NULL 过滤掉名字属性为NULL的项

过滤判断条件:

WHERE xxx IS NULL

WHERE xxx IS NOT NULL


7.Neo4j CQL - IN操作符:

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

IN操作符语法

语法: IN[<Collection-of-values>]


查询,返回
IN[  ]  从这里面选择


8.Neo4j CQL - 图形字体:


9.Neo4j - ID属性:

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


10.Neo4j - 方向关系:

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


参考文章:

【1】W3Cschool Neo4j教程

推荐阅读更多精彩内容