一、使用现有节点创建没有属性的关系
语法
MATCH (<node1-label-name>:<node1-name>),(<node2-label-name>:<node2-name>)
CREATE
(<node1-label-name>)-[<relationship-label-name>:<relationship-name>]->(<node2-label-name>)
RETURN <relationship-label-name>
语法元素 | 描述 |
---|---|
MATCH,CREATE,RETURN | 关键字 |
‘From Node’的名称 | |
‘From Node’的标签名称 | |
‘To Node’名称 | |
‘To Node’标签名称 | |
关系名称 | |
关系的标签名称 |
在次语法中,RETURN 子句是可选的,如果想看到结果,那么使用它,否则,可以省略这个子句
例如:
-- 首先创建Customer
CREATE (e:Customer {dob:"01/10/1982", id:1001, name:"ABC"})
RETURN e
-- 再创建CreditCard
CREATE (cc:CreditCard {cvv:888, expiredate:"20/17", id:5001, number:1234567890})
RETURN cc
-- 验证节点存在
MATCH (e:Customer)
RETURN e
MATCH (cc:CreditCard)
RETURN cc
-- 创建关系
MATCH (e:Customer),(cc:CreditCard)
CREATE (e)-[r:DO_SHOPPING_WITH ]->(cc)
这个 --> 仔细体会,箭头里面是关系,很形象
-- 查询关系
MATCH (e)-[r:DO_SHOPPING_WITH ]->(cc)
RETURN r
二、使用现有节点创建带属性的关系
语法
MATCH (<node1-label-name>:<node1-name>),(<node2-label-name>:<node2-name>)
CREATE
(<node1-label-name>)-[<relationship-label-name>:<relationship-name>
{<define-properties-list>}]->(<node2-label-name>)
RETURN <relationship-label-name>
语法元素 | 描述 |
---|---|
MATCH,CREATE,RETURN | 关键字 |
‘From Node’的名称 | |
‘From Node’的标签名称 | |
‘To Node’名称 | |
‘To Node’标签名称 | |
关系名称 | |
关系的标签名称 | |
关系的属性 |
例如:
MATCH (CUST:Customer),(cc:CreditCard)
CREATE (cust)-[r:DO_SHOPPING_WITH{shopdate:"12/12/2014", price:55000}]->(cc)
RETURN r
三、创建新节点同时创建无属性关系
语法
CREATE
(<node1-label-name>:<node1-name>)-
[<relationship-label-name>:<relationship-name>]->
(<node1-label-name>:<node1-name>)
RETURN <relationship-label-name>
语法元素 | 描述 |
---|---|
CREATE,RETURN | 关键字 |
‘From Node’的名称 | |
‘From Node’的标签名称 | |
‘To Node’名称 | |
‘To Node’标签名称 | |
关系名称 | |
关系的标签名称 |
例如:
CREATE (fb1:FaceBookProfile1)-[like:LIKES]->(fb2:FaceBookProfile2)
四、创建新节点和关系,两者都带属性
语法
CREATE
(<node1-label-name>:<node1-name>{<define-properties-list>})-
[<relationship-label-name>:<relationship-name>{<define-properties-list>}]
->(<node1-label-name>:<node1-name>{<define-properties-list>})
RETURN <relationship-label-name>
语法元素 | 描述 |
---|---|
MATCH,CREATE,RETURN | 关键字 |
‘From Node’的名称 | |
‘From Node’的标签名称 | |
‘To Node’名称 | |
‘To Node’标签名称 | |
关系名称 | |
关系的标签名称 | |
关系的属性 |
例如:
CREATE (video1:YoutubeVideo1{title:"Action Movie1",updated_by:"Abc",uploaded_date:"10/10/2010"})-[movie:ACTION_MOVIES{rating:1}]->(video2:YoutubeVideo2{title:"Action Movie2",updated_by:"Xyz",uploaded_date:"12/12/2012"})
-- 查询结果
MATCH (video1:YoutubeVideo1)-[movie:ACTION_MOVIES]->(video2:YoutubeVideo2)
RETURN movie
五、检索关系节点的详细信息
语法:
MATCH
(<node1-label-name>)-[<relationship-label-name>:<relationship-name>]->(<node2-label-name>)
RETURN <relationship-label-name>
语法元素 | 描述 |
---|---|
“From Node”标签名字 | |
“To Node”标签名字 | |
关系名称 | |
关系标签名称 |
例如:
MATCH (cust)-[r:DO_SHOPPING_WITH]->(cc)
RETURN cust,cc