当前位置:网站首页>Neo4J 与 Cypher 查询语言基础
Neo4J 与 Cypher 查询语言基础
2022-08-10 03:13:00 【1379號监听猿】
前言
图数据库,存储的是节点和关系,而不是表。在Neo4j中,节点和关系都由属性和标签描述。
在 Cypher 查询语句中,节点和关系的表述一般为:
- 节点:
(Variable:Label1:Label2{properties})
其中,Variable
可以省略 - 关系:
-[Variable:Label1:Label2{properties}]->
其中,Variable
可以省略,箭头可以向左(<-[]-
),向右(-[]->
),或没有(-[]-
),分别表示不同的关系方向和无方向的关系。
如下图:其中:
- (:Person{name:“Dan”}) 表示一个节点,Person 是他的标签。{name:“Dan”} 是他的属性。
- -[:LOVES]-> 代表一个关系,LOVES 是关系的标签。
1、创建
1.1 创建节点
语法:
CREATE <nodeDes>
nodeDes:即上文提到的 (Variable:Label1:Label2{properties})
比如:
CREATE (:Person)
CREATE (:Person{name:'罗辑'})
也可以在语句后添加 RETURN 子句返回创建的节点(在游览器操作时,能直接查看创建的节点):
CREATE (p:Person{name:'罗辑'}) RETURN p
1.2 创建关系
在两个新节点之间创建关系
语法:
CREATE <NodeDes_1> <RelationDes> <NodeDes_2>
其中:
- NodeDes:
(Variable:Label1:Label2{properties})
- RelationDes:
-[Variable:Label1:Label2{properties}]->
向右关系详细版:
CREATE
(<from-name>:<from-label>)-
[<relationship-name>:<relationship-label>{
{
<properties>}}]->
(<to-name>:<to-label>)
RETURN <from-name>,<relationship-label-name>,<to-name>
例如:
没有properties属性:
CREATE (p1:Person{name:'罗辑'})-[like:MARRIED_TO]->(p2:Person{name:'庄严'})
RETURN p1,like,p2
有properties属性:
CREATE (p1:Person{name:'罗辑'})-[like:MARRIED_TO{introducer:'史强'}]->(p2:Person{name:'庄严'})
RETURN p1,like,p2
在已有节点上创建属性
语法:
MATCH <NodeDes_1>, <NodeDes_2>
CREATE <NodeDes_1_Variable> <RelationDes> <NodeDes_2_Variable>
向右关系完整版本:
MATCH (<from-name>:<from-label>{properties}),(<to-name>:<to-label>{properties})
CREATE
(<from-name>)-[<relationship-name>:<relationship-label>{
<properties>}]->(<to-name>)
RETURN <relationship-label-name>
其中 CREATE 可以替换为 MERGE 指令
例如:
1、创建节点
CREATE (p:Person{name:'叶文洁'}) RETURN p;
CREATE (p:Person{name:'杨卫宁'}) RETURN p;
2、创建关系
MATCH (fromP:Person {name:'叶文洁'}),(toP:Person {name:'杨卫宁'})
CREATE (from)-[kill:KILL{address:'第一红岸'}]->(to)
RETURN from,kill,to
或者:
MATCH (from:Person),(to:Person)
WHERE from.name = '叶文洁' AND to.name = '杨卫宁'
CREATE (from)-[kill:KILL{address:'第一红岸'}]->(to)
RETURN from,kill,to
或者:
MATCH (fromP:Person {name:'叶文洁'}),(toP:Person {name:'杨卫宁'})
MERGE (fromP)-[kill:KILL{address:'第一红岸'}]->(toP)
RETURN fromP,kill,toP
2、查询
MATCH
语法:
MATCH command
WHERE condition
RETURN x
说明:
- WHERE 子句和 sql 类似。
查询所有节点:
MATCH (n) RETURN n
MATCH (p:Person{name:'罗辑'}) RETURN p
上句也等价于:
MATCH (p:Person)
WHERE p.name = '罗辑'
RETURN p
3、删除
语法:
MATCH command
WHERE condition
(DETACH) DELETE x
删除边:
MATCH (from:Person{name:'罗辑'})-[like]-(to:Person{name:'庄严'})
DELETE like
删除节点(必须相关的边都被删除了):
MATCH (p:Person{name:'罗辑'})
DELETE p
强制删除节点和边:
MATCH (p:Person{name:'罗辑'})
DETACH DELETE p
同时删除节点和边:
MATCH (from:Person{name:'叶文洁'})-[like]-(to:Person{name:'杨卫宁'})
DELETE from,like,to
清空节点和边:
MATCH (n) DETACH DELETE n
4、修改属性
SET语法:
SET <property-key>=<property-value>
例如:
MATCH (p:Person{name:'罗辑'})
SET p.description='混吃等死清华教授'
REMOVE语法:
REMOVE <property-name-list>
例如:
MATCH (p:Person{name:'罗辑'})
REMOVE p.description
参考
边栏推荐
- 使用注解实现限流
- 兴业数金一面
- HRnet
- 小程序wxs
- 如何快速成为一名软件测试工程师?测试员月薪15k需要什么技术?
- Little rookie Hebei Unicom induction training essay
- Chapter 21 Source Code File REST API Reference (3)
- No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.
- Did not detect default resource location for test class xxxx
- 三极管开关电路参数设计与参数介绍
猜你喜欢
Difference between netstat and ss command
动态网页开发基础
Little rookie Hebei Unicom induction training essay
MySQL: Introduction to Logging System | Error Log | Query Log | Binary Log: Bin-log Data Recovery Practice | Slow Log Query
IDEA自动生成serialVersionUID
实测办公场景下,国产远程控制软件的表现力如何?(技术解析)
No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.
Example 043: Scope, class methods and variables
湖仓一体电商项目(四):项目数据种类与采集
Dynamic Web Development Fundamentals
随机推荐
Kettle 裁剪表详解(truncate)
MongoDB 常用查询语句
从零开始配置 vim(9)——初始配置
applet wxs
快35了,还在“点点点”?那些入行几年的测试点工后来都怎么样了?
带你深入理解3.4.2的版本更新,对用户带来了什么?
Day16 charles的基本使用
Classes and interfaces
成功执行数字化转型的9个因素
uni-app自定义导航栏
mock模拟,skip,skipif,mark分类
Chapter 21 Source Code File REST API Reference (3)
6 common plugin recommendations in Pycharm
Web mining traceability?Browser browsing history viewing tool Browsinghistoryview
Chip Accelerator
单体架构应用和分布式架构应用的区别
从8k到13k,我全靠这本《接口自动化测试——从入门到精通》
Embedded Sharing Collection 32
MySQL: Introduction to Logging System | Error Log | Query Log | Binary Log: Bin-log Data Recovery Practice | Slow Log Query
高精度加法