在学习笔记(一)中,我讲到了RETURN 语句。那么我就接着上一次的往下。
本次笔记的主要内容就是CREATE、MATCH等语句的组合使用。
Neo4j中,最主要的就是组成就是节点和关系。(即点与边)节点和关系都可以有属性。
首先,我们讲讲关系的创建的一些细节。
关系创建
– 表示一个无指向的关系
–> 表示一个有指向的关系
基本语法是:
CREATE(:)-[]->(:)
()表示头节点和尾节点
[ ]表示关系。
关系的语法:
[<relationship_name>:<relationship_label>
{
<Property1-name>:<Property1-Value>
}
] """"
eg:
[role]#只有名字
[role:ACTION_IN]#标签名字都有
[:ACTION_IN]#省略了名字,只有标签
[role:ACTION_IN{roles:'Neo'}]#有名字,有标签,有属性等
由于关系不能单独创建,所以这里需要与MATCH,CREATE等一起使用,即引出了模式这一说法。
Pattern 语法:
CREATE(
node_name:node_lable
{Property-name:Property-Value})-
[relationship_name:relationship_label]->
(node_name:node_label
{Property-name:Property-Value}
)
eg:
CREATE(
keanu:Person:Actor{name: "Keanu Reeves"} )
-[role:ACTED_IN{roles: ["Neo"] } ]->
(matrix:Movie{title: "The Matrix"}
)
较为高级的用法:
MATCH +RETURN:
先创建一个节点:
CREATE (dept:Dept { deptno:10,dname:"Accounting",location:"Hyderabad" })
再使用MATCH和RETURN:
MATCH(dept:Dept) #要先使用MATCH语句去匹配节点
RETURN dept.deptno,dept.dname
此时会显示deptno和dname的属性值:10和Accounting。
得到一个节点而不取它属性的方法:
MATCH(dept,Dept)
RETURN dept
这里先用MATCH锁定dept节点,然后使用RETURN语句直接得到视图(这里也可以不使用return语句,手动点击Graph也可以)
此时就会显示一个节点。
CREATE + MATCH + RETURN:
CREATE (e:Customer{id:"1001",name:"Abc",dob:"01/10/1982"})
#创建客户节点
CREATE (cc:CreditCard{id:"5001",number:"1234567890",cvv:"888",expiredate:"20/17"})
#创建CreditCard节点
现在我们创建了两个节点:Customer和CreditCard
我们需要使用带有RETURN子句的Neo4j CQL MATCH命令查看这两个节点的详细信息
MATCH (e:Customer)
RETURN e.id,e.name,e.dob
得到e的属性表格:
分别是id,name,dob。
MATCH (cc:CreditCard)
RETURN cc.id,cc.number,cc.cvv,cc.expiredate
得到cc的属性表格:
这些是较为简单也比较常用的查询语句,如果要做更加复杂的查询语句的话,还有WHERE子句,ORDER排序等等,我们慢慢来。
世上无难事,只怕有心人。
在看博客的同时,大家也要勤敲代码,加快熟悉语句的速度。