neo4j 的cql 语句,增、删、改、查(条件查询)(持续更新)
前言
因为做一个比赛的项目 ,需要用到 neo4j 数据库,所以要学习其语言cql,特来整理一下他的基本语言。
整片的语句是按照 了 Neo4j 数据库自带的示例 Movie Graph 来写的。
直接看这个博客也是没有问题的。都是很基础的语句。
neo4j图数据库中基本基础元素与概念
1 元素基本
节点(Node)
表示一个实体记录、就像关系数据库当中一条记录。一个节点包含多个属性和标签。
关系(Relationship)
关系用于将及诶单关联起来构成图,关系也称为图论的边(Edge)。
属性(Property)
节点和关系都可以有多个属性,属性是由键值对组成的,就像java当中哈希
标签(Label)
标签指示一组拥有相同属性的节点,但不强制要求相同,一个节点可以有多个标签。
路径(path)
图中任意两个节点都存在由关系组成的路径,路径有长短之分。
2 逻辑
- mysql :
数据库实例= =》数据库(database)= =》表(table)= =》列==》记录 - Neo4j:
neo4j实例= =》数据库(graph)= =》节点= =》关系= =》属性==》标签(Label)
一、查询语句
1、根据节点属性值 返回 具体单个节点
MATCH (n: User{name: "56" })
return n;
- 1
- 2
参数解释:
match :查询关键字
n : 定义的变量,将要返回的值 赋值于他。
User :节点对象。== 一个对象包含很多节点。==
name : “56” 节点属性 :节点属性的值
2、根据对象返回对象中的所有属性
MATCH (n:Person)
RETURN n.name
LIMIT 10
- 1
- 2
- 3
参数解释
n : Person : Person类 赋值于 n,
n.name : 取出Person类中的name属性值。
LIMIT : 限制,设置输出到界面上的记录条数。
3、根据属性的条件区间 返回 所在区间的对象属性
MATCH (n: Movie)
WHERE n.released >= 1990 AND n.released < 2000
RETURN n.title
- 1
- 2
- 3
参数解释:
WHERE : 条件设置关键字。
AND : 连接两个条件的关键字
解释:查询 电影中 属性released在1990-2000的title属性值。
4、查询 节点对象 、其关系 以及 关系的节点
MATCH (tom:Person {name: "Tom Hanks"})-[:ACTED_IN]->(tomHanksMovies)
RETURN tom,tomHanksMovies
- 1
- 2
参数解释:
[] :表示为关系。
:ACTED_IN : 这是例子,为主演。
tomHanksMovies : 这是例子,为演过的电影。
翻译:名字为Tom Hanks 主演过的 电影,并返回 Tom Hanks节点和联系 以及子节点(演过的电影)
二、创建语句
1、创建一个节点
CREATE (k : Person{ name:'鲁班',born:1997}) RETURN k
- 1
参数解释:
CREATE : 创建 节点的关键字。
翻译:创建一个Person类的 节点标签(名为鲁班)。并且设置其属性。并返回这个节点(返回之后就可以看到)
查看其节点
查询这个刚创建的节点
MATCH (k : Person{ name:'鲁班',born:1997}) RETURN k
- 1
查询这个鲁班节点与别人之间的关系
MATCH (k : Person{ name:'鲁班',born:1997}) -[]-() RETURN k
- 1
然尔 并没有任何关系
2、一次创建多个节点
CREATE (:pig{name:"猪爷爷",age:6}),
(:pig{name:"猪奶奶",age:4}),
(:pig{name:"猪爸爸",age:3}),
(:pig{name:"猪妈妈",age:1})
- 1
- 2
- 3
- 4
参数解释:
可以去掉冒号右边的变量。多个节点之间用逗号隔开
2、基于现有节点 创建一个关系
MATCH (gf:pig{name:"猪爷爷"})
MATCH (gm:pig{name:"猪奶奶"})
CREATE (gf)-[r:夫妻]->(gm)
RETURN gf,r,gm
- 1
- 2
- 3
- 4
参数解释:
这里没有逗号连接,先查询出来,放到变量里面,在进行创建连接
(变量名)-[变量名:联系名{这里是联系的属性}]->(变量名)
3、创建 节点 + 关系
CREATE (:pig{name:"猪爸爸",age:12})-[:夫妻]->(:pig{name:"猪妈妈",age:9})
- 1
解释:
直接创建 节点 关系 节点。
三、修改语句
1、修改属性
MATCH (a:pig{name:"猪爸爸",age:12})
SET a.age=5
return a
- 1
- 2
- 3
参数解释:
SET :修改关键字。
变量.对象属性 = 更变的值。
四、删除语句 先删关系在删节点。
MATCH (n:pig{name:"佩奇"})-[r]-()
WHERE n.age=0.6
DELETE r,n
- 1
- 2
- 3
参数解释:
[] : 任意节点
() : 任意节点
r : 对应关系
原文地址:https://www.cnblogs.com/jpfss/p/11557045.html
- PHP-超级全局变量
- 日志分析实战之清洗日志小实例5:实现获取不能访问url
- CentOS安装Redis、PHPredis扩展
- 日志分析实战之清洗日志小实例4:统计网站相关信息
- PHP-数组排序
- hdu---(3555)Bomb(数位dp(入门))
- PHP-循环
- 日志分析实战之清洗日志小实例3:如何在spark shell中导入自定义包
- PHP-函数
- hdu----(5045)Contest(数位dp)
- hdu----(5053)the Sum of Cube(签到题,水体)
- RHEL构建DNS服务器-多区域
- hdu----(5050)Divided Land(二进制求最大公约数)
- 日志分析实战之清洗日志小实例1:使用spark&Scala分析Apache日志
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python实现逻辑回归
- Linux文件管理参考
- CloudBase Framework丨第一个 Deno 部署工具是如何打造的?
- 关于null通过+" ",String.ValueOf转换为字符串的问题!!!
- Java实现尺取法
- 【自然语言处理】利用朴素贝叶斯进行新闻分类(自己处理数据)
- mybatis文件映射之select操作返回Map
- shm进程间通信失败了!!!
- Vue3.0 beta源码学习笔记(二)
- 【自然语言处理】使用朴素贝叶斯进行语种检测
- 关于errno的后事妥善处理
- Vue3.0 beta源码学习笔记(三)
- 你会不会分布式系统进程间通信?
- 学以致用C++设计模式 之 “备忘录模式”
- Mybatis学习笔记(三)关联查询以及相关属性