Neo4J(Cypher语句)初识
欢迎各路大神临幸寒舍
以下节点标签为people,friend,用户自己也可以设置成其他标签,查询时需要用到标签。这个标签可以类比为关系数据库中的表名
创建节点、关系
创建节点(小明):create (n:people{name:’小明’,age:’18’,sex:’男’}) return n;
创建节点(小红): create (n:people{name:’小红’,age:’18’,sex:’女’}) return n;
创建关系(小明送礼物给小红):小明节点id为0,小红节点id为1
start a =node(0),b=node(1) create (a)-[n:gift]->(b)return n
属性查询
- 查询18岁的人
Match (n: people) where n.age = 18 return n
- 查询大于18岁的人
Match (n: people) where n.age > 18 return n
- 查询大于等于18岁的人
Match (n: people) where n.age >= 18 return n
- 查询不等于18岁的人
Match (n: people) where n.age <> 18 return n
关系查询
- 正向查询
查询小明送礼物给了哪些人,有两种写法:(以下例子类似)
1. Match (n:people)-[: gift]->(end:people) where n.name='小明' return end
2. Match (n:people{name: '小明'})-[:gift]->(end:people) return end
- 反向查询
查询哪些人送了礼物给小明
Match (n:people{name: '小明'})<-[:gift]-(end:people) return end
- 无方向查询
查询和小明有礼物来往的人
Match (n:people{name: '小明'})-[:gift]-(end:people) return end
ID查询
在neo4j中,每一个节点,会自动有一个唯一Id。
查找id为1的节点,有两种方式:
1. Start n = node(1) return n
2. Match (n:people) where ID(n)=1 return n
级次查询(树形遍历)
以根部为条件,查询第二层的节点
Match (start:people{name:’小明’})-[:gift*2..2]->(end:people) return end
以根部为条件,查询第一层和第二层的节点
Match (start:people{name:’小明’})-[:gift*1..2]->(end:people) return end
以根部为条件,按级次查询出所有直接或间接获得过小明的礼物的人
Match (start:people{name:’小明’})-[:gift*]->(end:people) return end
Delete
删除2个节点之间的关系:
Match (x:people{name:’小明’})-[r:gift]->(y:people{name:’小红’}) delete r
删除节点,会删除和该节点有关的所有关系:
Match (n:people{name:’小红’}) delete n
Count
(不按属性)查询标签(people)中一共有多少节点(人):
Match (n:people) return count(n)
(按属性)查询标签(people)中年龄为18岁的一共有多少节点(人):
三种写法:
1. Match (n:people) where n.age=18 return count(n)
2. Match (n:people{age:’18’}) return count(n)
3. Match (n:people) return count(n.age=18)
Limit
查询标签(people)中的10个节点(人):
Match (n:people) return n limit 10
Distinct
查询标签(people)中所有的不同的age:
Match (n:people) return distinct(n.age)
Order by
根据标签(people)中的name 排序:
Match(n:people) return n order by name (默认升序)
Match(n:people) return n order by name asc (升序)
Match(n:people) return n order by name desc (降序)
Union all (Union)
求并集,不去重(去重用Union):
Match(n:people) where n.age=18 return n.name as name
Union all
Match(n:friend) where n.age=18 return n.name as name
In
查询id为0,5,8的节点:
Match (n) where ID(n) IN[0,5,8] return n
Exists
判断节点是否存在 name这个属性:
Match (n) where exists(n.name) return n
With
查询name以‘小’开头的节点:
Match (n) where n.name starts with ‘小’ return n
查询name以‘明’结尾的节点:
Match (n) where n.name ends with ‘明’ return n
Contains
查询name中含有 ‘小’的节点
Match (n) where n.name Contains ‘小’ return n
本文链接:https://blog.csdn.net/free8666/article/details/52909523
Neo4J(Cypher语句)初识的更多相关文章
- neo4j 基本概念和Cypher语句总结
下面是一个介绍基本概念的例子,参考链接Graph database concepts: (1) Nodes(节点) 图谱的基本单位主要是节点和关系,他们都可以包含属性,一个节点就是一行数据,一个关系也 ...
- neo4j中cypher语句多个模糊查询
总结一下经验: neo4j中,cypher语句的模糊查询,好像是个正则表达式结构. 对于一个属性的多个模糊查询,可以使用如下写法: 比如,查询N类型中,属性attr包含'a1'或者'a2'的所有节点. ...
- CYPHER 语句(Neo4j)
CYPHER 语句(Neo4j) 创建电影关系图 新增 查找 修改 删除 导入 格式转换 创建电影关系图 CREATE (TheMatrix:Movie {title:'The Matrix', re ...
- Neo4j Cypher语法(三)
目录 5 函数 5.1 谓词函数 5.2 标量函数 5.3 聚合函数 5.4 列表函数 5.5 数学函数 5.6 字符串函数 5.7 Udf与用户自定义函数 6 模式 6.1 索引 6.2 限制 7 ...
- Neo4j Cypher语法(二)
目录 4 子句 4.1 CREATE 4.2 MATCH 4.3 Match 4.4 Create match return连用来返回一个关系基础 4.5 Optional_match 4.6 Wit ...
- Cypher 语句实战
Cypher 语句实战 下载和安装 Neo4j windows 桌面版- 环境设置 https://www.w3cschool.cn/neo4j/neo4j_exe_environment_setup ...
- Neo4j原生语句cc
Cypher语句 Cypher语句是Neo4j的图查询语言.以下例子来自Neo4j Browser,启动后在命令栏输入:play cypher即可1. 创建一个节点: 语法:CREATE (node- ...
- neo4j常用cypher语句
阅读更多 1.删除带有关系的节点 a.先删除关系 match (n:Node)-[r:关系名称]-() where (n...条件) delete r b.删除节点 match (n:Node ...
- Neo4j Cypher语法(一)
目录 Cypher手册详解 1 背景 2 唯一性 3 语法 3.1 命名规则 3.2 表达式 3.3 变量与保留关键字 3.4 参数 3.5 操作符 3.6 模式 3.7 列表 Cypher手册详解 ...
随机推荐
- java中延迟任务的处理方式
1.利用延迟队列 延时队列,第一他是个队列,所以具有对列功能第二就是延时,这就是延时对列,功能也就是将任务放在该延时对列中,只有到了延时时刻才能从该延时对列中获取任务否则获取不到…… 应用场景比较多, ...
- Ruby 读书
输出: print printf 既定格式输出 puts 自动换行 p 显示对象 sprintf 不规则字符串 pp 需要导入库 putc(字母) 转移字符和单双引号 include Math或者直 ...
- js转换成数字
/** * 转换成数字,有两种方法: * 1.Number(var) * 2.parseInt(var)与parseFloat(var) */ // 字符串转换成数字 // 纯字母 var foo = ...
- html中插入css的4种方法
#1:链入外部样式表 <head> <link href="mystyle.css" rel="stylesheet" type=" ...
- 2018-8-10-上传代码-CodePlex
title author date CreateTime categories 上传代码 CodePlex lindexi 2018-08-10 19:16:51 +0800 2018-2-13 17 ...
- loadrunner 11安装教程
见百度经验,大神教程 https://jingyan.baidu.com/article/da1091fb199da7027849d6ff.html
- elementui中table组件表头和内容不对齐的问题
表头与内容没对齐 在样式里加入 .el-table th.gutter{ display: table-cell!important; } 终于舒服了
- Maven介绍及安装
1.maven是一个管理第三方库的jar package 2.从该页面下载相应的Maven jar包(http://maven.apache.org/download.cgi),linux OS下 ...
- 【和孩子一起学编程】 python笔记--第一天
[该随笔记录本人在阅读过程写的笔记和一些问题,格式比较随意,不定时更新] 由于该书使用的python版本为2.5,本人使用的为3.6. 第一章: 遇到的第一个问题: 1.3节 输出指令: print ...
- SQL IN 运算符
SQL IN 运算符 IN运算符允许您在WHERE子句中指定多个值. IN运算符是多个OR条件的简写. SQL IN 语法 SELECT column_name(s) FROM table_name ...