文章目录
cypher语言
cypher是一种非常简洁的图查询语言,neo4j使用cypher语言进行图数据的curd操作
通用关键字
RETURN、ORDER BY、LIMIT、SKIP、WITH、UNWIND、UNION和CALL
标签 | 描述 |
---|---|
RETURN | 返回结果 |
ORDER BY | 排序 |
LIMIT | 限制查询数量 |
SKIP | 跳过 |
WITH | 使用WITH可以在将结果传递到后续查询之前对结果进行操作。 操作可以是改变结果的形式或者数量 |
UNWIND | UNWIND将一个列表展开为一个行的序列(行转列)。 |
UNION | UNION语句用于将多个查询结果组合起来。 |
CALL | CALL语句用于调用数据库中的过程(procedure)。 |
读关键字
标签 | 描述 |
---|---|
MATCH | 用指定的模式检索数据库 |
OPTIONAL MATCH | 用于搜索模式中描述的匹配项 |
WHERE | 对查询数据进行过滤 |
Aggregation | 支持使用聚合(Aggregation)来计算聚在一起的数据 |
LOAD CSV |
写关键字
CREATE、MERGE、SET、DELETE、REMOVE、FOREACH和CREATEUNIQUE
标签 | 描述 |
---|---|
CREATE | 创建节点 |
MERGE | 节点不存在创建,不存在覆盖 |
SET | 设置节点属性 |
DELETE | 删除节点 |
REMOVE | 删除图元素的属性和标签 |
FOREACH | |
CREATE UNIQUE | 创建唯一元素 |
CREATE语句
创建节点
// 创建节点
CREATE (xqx:Person { name: "Emil", from: "Sweden", klout: 99 })
// 创建节点
CREATE (szb:Person { name: "Sweden", from: "Tom", klout: 88 })
//创建节点并为name设置唯一约束
CREATE CONSTRAINT ON (n:Person) ASSERT n.name IS UNIQUE;
- CREATE -> 创建数据的子句
- () -> 圆括号表示一个节点
- xqx:Person -> 变量 ‘ee’ 和 标签 ‘Person’ 表示新的 节点
- {} -> 花括号添加属性到节点 里面涉及key/value的键值对
创建关系
//为创建的节点 添加关系
MATCH (xqx:Person {name:'Emil'}),(szb:Person {name:'Sweden'})
MERGE (xqx)-[r:父子]->(szb)
-[relation]-
表示无方向的关系-[relation]->
表示有方向的关系-[r]->
则给关系赋予一个变量名,方便对这个关系进行操作-[r:配偶]->
匹配关系为配偶
的类型
创建有关系的节点
// 第一种写法
CREATE (zds:Person { name: "Johan", from: "Sweden", learn: "surfing" }),
(lzj:Person { name: "Ian", from: "England", title: "author" }),
(zds)-[:KNOWS {since: 2001}]->(lzj)
// 第二种写法
CREATE (n{name:“张三”}) - [r:FRIEND]->({bookname:“Cypher”})