Neo4j简单使用

基本概念

节点:一个图形的一个基本单元
属性:描述节点及关系的键值对
关系:连接两个节点的部分,具有方向
标签:由节点或关系组成,一个节点可以包含多个标签

Cypher基本语法

neo4j中使用的数据库查询语言是cypher,是一种类SQL的声明式语言,简称CQL。现简单示例增删改查操作。
操作一:增
不同于sql中的insert插入数据,cypher使用create来创建节点、关系等并插入数据。
节点

create (:Agent{name:'周恩来',post:'主任'}),(:Agent{name:'洪扬生',post:'总务科科长'}),(:Agent{name:'陈赓',post:'情报科科长'}),
(:Agent{name:'顾顺章',post:'行动科科长'}),(:Agent{name:'李强',post:'交通科科长'})

即创建了5个节点,均为Agent标签。 括号为一个节点,大括号包裹节点属性,多个节点间使用逗号分隔,节点内各属性也使用逗号分隔。

查询:

MATCH (n:Agent) RETURN n

Neo4j简单使用_第1张图片
关系

match (zhou:Agent{name:'周恩来'})
match (chen:Agent{name:'陈赓'})
CREATE (zhou)-[rel:下级]->(chen)

先查出需要建立关系的节点,再create建立关系。[]表示关系。
查询:

MATCH p=()-[r:`下级`]->() RETURN p

Neo4j简单使用_第2张图片
关系+节点
前面所述为分别创建节点及关系,也可以在创建节点同时赋予关系。

create (:Agent{name:'李克农',post:'特工'}) -[rel:同事]-> (:Agent{name:'胡底',post:'特工'})

查询:

MATCH p=()-[r:`同事`]->() RETURN p

Neo4j简单使用_第3张图片
操作二:删
删除关系

MATCH (zhou:Agent {name: '周恩来'})-[rel:领导]->(hong:Agent {name: '洪扬生'})
DELETE rel

先查出关系的起止节点,再进行删除。

删除节点

match (gu:Agent {name:'顾顺章'})
delete gu

先查出节点,再进行删除。当待删除的节点有关系存在时,需要先删除其关系,再删节点。

删除节点及其关系

match (li:Agent{name:'李克农'})
detach delete li

删除节点属性

match (hu:Agent{name:'胡底'})
remove hu.post

即移除了post属性。

操作三:改

match (hu:Agent{name:'胡底'})
set hu.post='特工'

即修改了post属性。修改多个节点可以使用逗号分隔。

以上只是neo4j的简单使用,同sql类似,cypher同样存在各种内置函数,本章就不作说明了。

ps:示例无冒犯之意。
内容参考官方文档:https://neo4j.com/developer/get-started/

你可能感兴趣的:(Neo4j)