前言
入门任何一款数据库查询语言我们都需要学习如何对数据库执行增删改查这四个操作,本文我们来讲如何在Neo4j中使用Cypher来创建结点。这里用到Cypher中使用较多的从句——CREATE从句。文中涉及到结点、标签、路径等的相关概念可以看本专栏的Neo4j实战 | 基本概念介绍_Genms的博客-CSDN博客的解释。
CREATE从句
要想操作结点和路径我们必须先创建结点和路径。使用CREATE从句可以创建结点,创建关系和创建路径。
创建结点
创建单个和多个结点
创建单个结点查询可以这样写
CREATE (n)
我们也可以创建多个结点,对每个结点用逗号隔开即可
CREATE (n),(m)
创建带标签和多标签的结点
用以下形式的语句创建一个带标签的结点。比如我要创建一个标签是Person的结点:
CREATE (n:Person)
我们也可以创建带多个标签的结点
CREATE (n:Person:Swedish)
创建带标签和属性的结点
属性用花括号括起来,花括号内是键值对的形式,用逗号分隔每个键值对,然后放在结点的后面。比如
CREATE (n:Person {name: 'Andy', title: 'Developer'})
创建无属性和带属性关系
要想在两个结点之间创建关系,我们要先将两个结点匹配出来。这里使用了下一章讲的MATCH从句来匹配结点。我们先创建两个结点,再为他们建立无属性的关系
CREATE (:Person {name:'Nancy'}),(:Person {name:'Jack'})
MATCH (a:Person {name:'Nancy'}),(b:Person {name:'Jack'})
CREATE (a)-[r:REL_TYPE]->(b)
上面的代码创建了两个Person标签的结点,一个叫Nancy一个叫Jack,然后为Nancy和Jack创建了一个从Nancy到Jack的类型为REL_TYPE的关系。
我们也可以在创建关系时为关系添加属性
CREATE (:Person {name:'Bob'}),(:Person {name:'Mike'})
MATCH (a:Person {name:'Bob'}),(b:Person {name:'Mike'})
CREATE (a)-[r:Friend {age:30}]->(b)
上面的代码我们创建了Bob和Mike两个结点并为他们创建了类型为Frined的关系,关系包含他们友龄属性,他们做了30年的朋友。
创建一条完整路径
当使用CREATE创建一条路径时,路径的所有部分都会被重新创建一遍,这个后面我们可以用MATCH和RETURN从句把结果显示出来。
CREATE p = (andy:Person {name:'Andy'})-[:Friend {age: 28}]->(bob:Person {name: 'Bob'})