一、CREATE命令
- 创建一个没有属性的节点
CREATE (<node-name>:<label-name>)
eg:创建一个"Employee"节点
CREATE (emp:Employee)
emp:表示节点名
Employee:为节点emp节点的标签名称
- 创建带有属性的节点
CREATE (
<node-name>:<label-name>
{
<Property1-name>:<Property1-Value>
........
<Propertyn-name>:<Propertyn-Value>
}
)
eg:创建具有属性(deptno,dname,location)的Dept节点
CREATE (dept:Dept { deptno:10,dname:"Accounting",location:"Hyderabad" })
二、MATCH&RETURN
在Neo4j CQL中不能单独使用MACTCH或RETURN命令,我们需要合并这两个命令从数据库中检索数据。
Neo4j使用CQL MATCH + RETURN命令 -
- 检索节点的某些属性
- 检索节点的所有属性
- 检索节点和关联关系的某些属性
- 检索节点和关联关系的所有属性
MATCH命令语法
MATCH
(
<node-name>:<label-name>
)
RETURN命令语法
RETURN
<node-name>.<property1-name>,
...
<node-name>.<propertyn-name>
例1:检索节点Dept的数据,指定相应的属性
得到查询结果:
例2:检索节点Dept的属性,而不需要指定其属性
三、WHERE子句
- 简单WHERE子句语法
WHERE <condition>
- 复杂WHERE子句语法
WHERE <condition> <boolean-operator> <condition>
- <condition>语法
<property-name> <comparison-operator> <value>
布尔运算符:
比较运算符:
根据条件查询节点:
match(c:CreditCard)
where c.id='5001'
return c
使用WHERE子句创建关系:
创建两个现有节点之间的关系
MATCH (c:Customer),(cc:CreditCard)
WHERE c.id = "1001" AND cc.id= "5001"
CREATE (c)-[r:DO_SHOPPING_WITH{shopdate:"12/12/2014",price:55000}]->(cc)
RETURN r
在其中相同标签的关系可以新建多个,可以使其id及属性不同。
四、DELETE删除
删除节点:
删除节点及其之间的关系:
查找节点之间的关系:
五、REMOVE删除
delete操作用于删除节点和关联关系;
remove操作用于删除标签和属性;
删除某个节点的某个属性:
MATCH (book { id:122 })
REMOVE book.price
RETURN book
删除所有该节点的某个属性:
MATCH (dc:DebitCard)
REMOVE dc.cvv
RETURN dc
六、SET子句
向现有节点或关系添加新属性;
添加或更新属性值;
MATCH (dc:DebitCard)
SET dc.atm_pin = 3456
RETURN dc
七、Sorting排序
对MATCH查询返回的结果进行排序,可以对其进行升序或降序对行进行排序。默认情况下是按照升序进行排序,如果要按降序对它们进行排序,我们需要使用DESC子句。
示例:
降序排序:
八、LIMIT和SKIP子句
“LIMIT”子句来过滤或限制查询返回的行数。 它修剪CQL查询结果集底部的结果。也就是限制返回查询到结果的前几行;
SKIP子句用来修剪查询结果的顶部,输出结果应该跳过前面的多少行;
九、MERGE合并
MERGE命令是CREATE命令和MATCH命令的组合。
MERGE语法:
MERGE (<node-name>:<label-name>
{
<Property1-name>:<Pro<rty1-Value>
.....
<Propertyn-name>:<Propertyn-Value>
})
与Create命令的区别是,create命令总是向数据库中添加新的节点,不管节点是否相同,而merge命令会检查该节点是否存在,若已经存在则进行合并,若不存在则新增。
十、ID属性
在neo4j中,“id”是节点和关系的默认内部属性。当我们创建一个新的节点或关系时,Neo4j数据库服务器将为内部使用分配一个数字。它会自动递增。
十一、字符串函数
字符串索引从0开始,<endIndex>是可选的。 如果我们省略它,那么它返回给定字符串的子串从startIndex到字符串的结尾。
十二、聚合函数
- COUNT
MATCH (e:Employee) RETURN COUNT(*)
十三、关系函数