Neo4J的CQL

学习NEO4J

增:(改)

我们使用Neo4j CQL SET子句向现有节点或关系添加新属性。
Neo4j CQL - SET子句 一\向现有节点或关系添加新属性 ;二\添加或更新属性值

<textarea readonly="readonly" name="code" class="xml"> 
MATCH (dc:DebitCard)
SET dc.atm_pin = 3456
RETURN dc

创建一个节点的命令:
CREATE (emp:Employee) (这里emp是一个节点名:不带属性的单个节点)
这是带有属性的节点:

<textarea readonly="readonly" name="code" class="xml"> 
CREATE (dept:Dept { 
deptno:10,dname:"Accounting",location:"Hyderabad" })

删:

区别:
DELETE操作用于删除节点和关联关系。
REMOVE操作用于删除标签和属性。
联系:
这两个命令不应单独使用。
两个命令都应该与MATCH命令一起使用。

一*delete删除*
1\删除节点。
查看是否存在:(以下任意一种格式都是可以的)

<textarea readonly="readonly" name="code" class="xml"> 
MATCH (e: 'Employee') RETURN e
MATCH (e: "Employee") RETURN e
MATCH (e: Employee) RETURN e

执行删除

<textarea readonly="readonly" name="code" class="xml"> 
MATCH (e: Employee) DELETE e

检验删除:

<textarea readonly="readonly" name="code" class="xml"> 
MATCH (e: Employee) RETURN e

2\删除节点及相关节点和关系。
此示例演示如何从数据库永久删除节点及其关联节点和关系
查看关系是否可用:

<textarea readonly="readonly" name="code" class="xml"> 
MATCH (cc:CreditCard)-[r]-(c:Customer)RETURN r 

执行删除:

<textarea readonly="readonly" name="code" class="xml"> 
MATCH (cc: CreditCard)-[rel]-(c:Customer) 
DELETE cc,c,rel

检验删除是否成功:

<textarea readonly="readonly" name="code" class="xml"> 
MATCH (cc:CreditCard)-[r]-(c:Customer) RETURN r

(如果返回的是0行则删除成功)

二\ REMOVE删除
删除节点或关系的标签
删除节点或关系的属性

我们使用Neo4j CQL REMOVE子句来删除节点或关系的现有属性。
先创建:CREATE (book:Book {id:122,title:“Neo4j Tutorial” ,pages:340,price:250})
查看:

<textarea readonly="readonly" name="code" class="xml"> 
MATCH (book : Book)
RETURN book 

删除某一属性:(相当于

<textarea readonly="readonly" name="code" class="xml"> 
ALTER TABLE BOOK REMOVE COLUMN PRICE;
SELECT * FROM BOOK WHERE ID = 122;)
MATCH (book { id:122 })
REMOVE book.price
RETURN book

REMOVE一个Label子句语法:
此示例演示如何从数据库中永久删除现有节点的属性。

<textarea readonly="readonly" name="code" class="xml"> 
MATCH (book:Book) 
REMOVE book.price
RETURN dc

此示例演示如何从数据库永久删除不需要的标签到节点。

<textarea readonly="readonly" name="code" class="xml"> 
MATCH (m:Movie) 
REMOVE m:Picture

Neo4j CQL MATCH命令用于 -
从数据库获取有关节点和属性的数据
从数据库获取有关节点,关系和属性的数据
Neo4j CQL RETURN子句用于 -
检索节点的某些属性
检索节点的所有属性
检索节点和关联关系的某些属性
检索节点和关联关系的所有属性
在Neo4j CQL中,我们不能单独使用MATCH或RETURN命令,因此我们应该合并这两个命令以从数据库检索数据。

<textarea readonly="readonly" name="code" class="xml"> 
MATCH (dept: Dept)
RETURN dept.deptno,dept.dname

关系与关系标签

CREATE命令来创建两个节点之间的关系

为一个节点创建多个标签:
CREATE (m:Movie:Cinema:Film:Picture)
这里m是一个节点名
Movie, Cinema, Film, Picture是m节点的多个标签名称

本示例演示如何为关系创建标签
CREATE (p1:Profile1)-[r1:LIKES]->(p2:Profile2)
这里p1和profile1是节点名称和节点标签名称“From Node”
p2和Profile2是“To Node”的节点名称和节点标签名称
r1是关系名称
LIKES是一个关系标签名称

WHERE子句

步骤一都是要检索出所有来

<textarea readonly="readonly" name="code" class="xml"> 
MATCH (emp:Employee)
RETURN emp.empid,emp.name,emp.salary,emp.deptno

此示例演示如何在MATCH Command中使用CQL WHERE子句根据员工名
称检索员工详细信息

<textarea readonly="readonly" name="code" class="xml"> 
MATCH (emp:Employee) 
WHERE emp.name = 'Abc'
RETURN emp

带布尔值的检索:

<textarea readonly="readonly" name="code" class="xml"> 
WHERE emp.name = 'Abc' OR emp.name = 'Xyz'
RETURN emp

使用WHERE子句创建关系
在Neo4J CQL中,我们可以以不同的方式创建拖曳节点之间的关系
创建两个现有节点之间的关系
一次创建两个节点和它们之间的关系
使用WHERE子句创建两个现有节点之间的关系

在数据浏览器上键入以下命令,以验证我们的Neo4J数据库中是否
存在所需的客户节点

<textarea readonly="readonly" name="code" class="xml"> 
MATCH (cust:Customer)
RETURN cust.id,cust.name,cust.dob

在数据浏览器上键入以下命令,验证我们的Neo4J数据库中是否存在所需的CreditCard节点。

<textarea readonly="readonly" name="code" class="xml"> 
MATCH (cc:CreditCard)
RETURN cc.id,cc.number,cc.expiredate,cc.cvv

在数据浏览器上键入以下命令以创建客户和CreditCard节点之间的关系。

<textarea readonly="readonly" name="code" class="xml"> 
MATCH (cust:Customer),(cc:CreditCard) 
WHERE cust.id = "1001" AND cc.id= "5001" 
CREATE (cust)-[r:DO_SHOPPING_WITH
{shopdate:"12/12/2014",price:55000}]->(cc) 
RETURN r

排序

降序排列
Neo4j CQL - Sorting排序

<textarea readonly="readonly" name="code" class="xml"> 
MATCH (emp:Employee)
RETURN emp.empid,emp.name,emp.salary,emp.deptno
ORDER BY emp.name DESC

升序排列

<textarea readonly="readonly" name="code" class="xml"> 
MATCH (emp:Employee)
RETURN emp.empid,emp.name,emp.salary,emp.deptno
ORDER BY emp.name

UNION联盟

与SQL一样,Neo4j CQL有两个子句,将两个不同的结果合并成一组结果,它将两组结果中的公共行组合并返回到一组结果中。 它不从两个节点返回重复的行。限制:结果列类型和来自两组结果的名称必须匹配,这意味着列名称应该相同,列的数据类型应该相同。
UNION

<textarea readonly="readonly" name="code" class="xml"> 
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
它结合并返回两个结果集的所有行成一个单一的结果集。它还返回
由两个节点重复行。不能排除掉重复行

<textarea readonly="readonly" name="code" class="xml"> 
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和SKIP子句

它修整了CQL查询结果集底部的结果。

<textarea readonly="readonly" name="code" class="xml"> 
MATCH (emp:Employee) 
RETURN emp
LIMIT 2

它修整了CQL查询结果集顶部的结果。

<textarea readonly="readonly" name="code" class="xml"> 
MATCH (emp:Employee) 
RETURN emp
SKIP 2

合并

MERGE命令是CREATE命令和MATCH命令的组合。
MATCH (gp1:GoogleProfile1)
RETURN gp1.Id,gp1.Name 执行两次相同的语句只会创建一次

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值