关于neo4j初入门(2)
DELETE删除
- 删除节点及相关节点和关系。
-
DELETE <node-name-list>
-
DELETE <node1-name>,<node2-name>,<relationship-name>
-
使用逗号(,)运算符来分隔节点名称和关系名称。
MATCH (cc:CreditCard)-[r]-(c:Customer)RETURN r 检查是否存在
MATCH (cc: CreditCard)-[rel]-(c:Customer)
DELETE cc,c,rel 删除
MATCH (cc:CreditCard)-[r]-(c:Customer) RETURN r 检查是否删除
REMOVE删除
SET子句向现有节点或关系添加新属性。
REMOVE子句来删除节点或关系的现有属性。
REMOVE <property-name-list>
<property-name-list> <属性名称列表>语法
<node-name>.<property1-name>, <node-name>.<property2-name>, .... <node-name>.<propertyn-name>
REMOVE <label-name-list>
<label-name-list>语法
<node-name>:<label2-name>, .... <node-name>:<labeln-name>
SET子句
向现有节点或关系添加新属性
SET <property-name-list>
<属性名称列表>语法:
<node-label-name>.<property1-name>, <node-label-name>.<property2-name>, .... <node-label-name>.<propertyn-name>
例如
MATCH (dc:DebitCard) SET dc.atm_pin = 3456 RETURN dc
Sorting排序
对MATCH查询返回的结果进行排序。
ORDER BY <property-name-list> [DESC]
MATCH (emp:Employee) RETURN emp.empid,emp.name,emp.salary,emp.deptno ORDER BY emp.name
UNION联盟
- 将两个不同的结果合并成一组结果
- UNION
- UNION ALL
-
UNION子句语法
<MATCH Command1> UNION <MATCH Command2>
- 具有相同的属性名有不同的节点名称前缀。UNION命令显示此错误消息。为了避免这种错误,Neo4j的CQL提供“AS”子句。
-
MATCH (cc:CreditCard) RETURN cc.id as id,cc.number as number,cc.name as name, cc.valid_from as valid_from,cc.valid_to as valid_to UNION MATCH (dc:DebitCard) RETURN dc.id as id,dc.number as number,dc.name as name, dc.valid_from as valid_from,dc.valid_to as valid_to
-
UNION ALL子句语法
<MATCH Command1> UNION ALL <MATCH Command2>
- UNION ALL子句不过滤它们重复行
-
MATCH (cc:CreditCard) RETURN cc.id as id,cc.number as number,cc.name as name, cc.valid_from as valid_from,cc.valid_to as valid_to UNION ALL MATCH (dc:DebitCard) RETURN dc.id as id,dc.number as number,dc.name as name, dc.valid_from as valid_from,dc.valid_to as valid_to
LIMIT子句语法
LIMIT <number>
减少MATCH + RETURN查询返回的记录数
MATCH (emp:Employee) RETURN emp LIMIT 2
SKIP子句语法:
SKIP <number>
“SKIP”子句来过滤或限制查询返回的行数
MATCH (emp:Employee) RETURN emp SKIP 2
合并
MERGE命令是CREATE命令和MATCH命令的组合。
MERGE = CREATE + MATCH
Neo4j CQL MERGE语法
MERGE (<node-name>:<label-name> { <Property1-name>:<Pro<rty1-Value> ..... <Propertyn-name>:<Propertyn-Value> })
CREATE命令检查此节点是否可用,它只是在数据库中创建新节点。
MERGE命令检查该节点在数据库中是否可用。 如果它不存在,它创建新节点。 否则,它不创建新的。
我们可以说CREATE命令总是向数据库添加新的节点。CQL MERGE命令将新的节点添加到数据库,只有当它不存在。
NULL值
WHERE IS NOT NULL
这里我们使用IS NOT运算符来过滤NULL行。
IN操作符语法
IN[<Collection-of-values>]
例如
MATCH (e:Employee) WHERE e.id IN [123,124] RETURN e.id,e.name,e.sal,e.deptno
Neo4j数据浏览器包含两种视图来显示查询结果 -
- UI查看
- 网格视图
鼠标指针选择节点以查看其属性窗口。
此属性窗口包含两个taps:
-
属性选项卡 - 它显示了节点或关系的属性详细信息。
-
样式选项卡(Eye Symbol): - 它显示节点或关系的字体或大小选择。
ID属性
“Id”是节点和关系的默认内部属性。 这意味着,当我们创建一个新的节点或关系时,Neo4j数据库服务器将为内部使用分配一个数字。 它会自动递增。
Node id的值是递增的,并且赋值为1
- 节点的Id属性的最大值约为35亿。
- Id的最大值关系的属性的大约35亿。
Caption标题
在Neo4j数据中,当我们在Neo4j DATA浏览器中执行MATCH + RETURN命令以查看UI视图中的数据时,通过使用它们的Id属性显示节点和/或关系结果。 它被称为“CAPTION”的id属性。
我们可以通过使用它的其他属性值来更改节点或关系的CAPTION。
更改节点或Neo4j数据浏览器UI视图中的关系的“CAPTION”。
方向关系
在Neo4j中,两个节点之间的关系是有方向性的。 它们是单向或双向的。
CREATE (<node1-details>)-[<relationship-details>]->(<node2-details>)
使用一个箭头标记:() - []→()。 它表示从左侧节点到右侧节点的方向。