首页 理论教育2017年软件工程论文专集-快速掌握Cypher查询语言

2017年软件工程论文专集-快速掌握Cypher查询语言

【摘要】:Cypher是Neo4j中非常重要的声明式查询语言。根据图数据库模式可以对数据进行选择或修改;Cypher语言可以查询、删除、更新、修改图数据库中的节点、关系、属性信息。

Cypher是Neo4j中非常重要的声明式查询语言(declarative query language)。根据图数据库模式可以对数据进行选择或修改;Cypher语言可以查询、删除、更新、修改图数据库中的节点、关系、属性信息。

Cypher语言对大小写不敏感,比较类似于关系型数据库中的SQL语言,主要有以下几种形式:

只读的查询语句通用语法格式如下:

[MATCH WHERE]

[OPTIONAL MATCH WHERE]

[WITH[ORDER BY] [SKIP] [LIMIT]]

RETURN[ORDER BY] [SKIP] [LIMIT]

例如查询作者“李静”发表过的其他论文可以这样写:

MATCH(a:Author)〈-[:writtedBy]-(p:Paper)

WHERE a.name="李静"

RETURN p

只写查询语句的通用形式如下:

(CREATE [UNIQUE]|MERGE)*

[SET|REMOVE|DELETE|FOREACH]*(www.chuimin.cn)

[RETURN[ORDER BY] [SKIP] [LIMIT]]

例如建立作者“李静”和“河南大学”的“studiedIn”联系可以这样写:

MATCH(a:Author{name:"李静"}),(b:Unit{name:”河南大学”})

CREATE (a)-[relationship:studiedIn]-(b)

SET relationship.since="2013"

读写的查询语句通用形式如下:

[MATCH WHERE]

[OPTIONAL MATCH WHERE]

[WITH[OREDER BY] [SKIP][LIMIT]]

(CREATE[UNIQUE]|MERGE)*

[SET|REMOVE|DELETE|FOREACH]*

[RETURN [ORDER BY] [SKIP] [LIMIT]]

以上示例Cypher语句中使用的“()”表示节点,“[ ]”表示关系,“—”“--〉”表示无向、有向边;“:Author”“:studiedIn”是使用标签来表示节点或边的类型,“:Author”“:studiedIn”之前的a、relationship分别是节点和关系的标签,目的是方便提供给后面的WHERE、RETURN、ORDER BY等子句使用。Cypher语句可以在基于网页的Browser-UI(浏览器界面)上进行输入,并且支持对数据的实时查询和操作。