创建节点、关系

创建节点(小明):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

关系查询

正向查询 
查询小明送礼物给了哪些人,有两种写法:(以下例子类似) 
Match (n:people)-[: gift]->(end:people) where n.name=’小明’ return end 
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的节点,有两种方式:

Start n = node(1) return n ---新版本已修改为下面方式
Match (n) 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岁的一共有多少节点(人): 
三种写法:

Match (n:people) where n.age=18 return count(n) 
Match (n:people{age:’18’}) return count(n) 
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

neo4j 一些常用的CQL的更多相关文章

  1. Neo4j数据库学习一:安装和数据类型常用命令简介

    Neo4j数据库是图数据库 在数据库中,只有节点Nodes和关系Relationships Nodes用圆圈表示,Relationships用有向箭头表示 关系和节点都有属性(键值对) 安装3.3.7 ...

  2. 史上最全面的Neo4j使用指南

    Neo4j图形数据库教程 Neo4j图形数据库教程 第一章:介绍 Neo4j是什么 Neo4j的特点 Neo4j的优点 第二章:安装 1.环境 2.下载 3.开启远程访问 4.测试 第三章:CQL 1 ...

  3. 史上超全面的Neo4j使用指南

    Create by yster@foxmail.com 2018-7-10 我的博客:https://blog.csdn.net/yueshutong123 W3Cschool文档:https://w ...

  4. Neo4j图数据库从入门到精通

    目录 第一章:介绍 Neo4j是什么 Neo4j的特点 Neo4j的优点 第二章:安装 1.环境 2.下载 3.开启远程访问 4.启动 第三章:CQL 1.CQL简介 2.Neo4j CQL命令/条款 ...

  5. Neo4j图数据库从入门到精通(转)

    add by zhj: 转载时,目录没整理好,还会跳转到原文 其实RDB也可以存储多对多的关系,使用的是中间表,GDB使用的是边,RDB中的实体存储在数据表,而GDB存储在节点.两者使用的底层技术不同 ...

  6. Neo4j Cypher语法(一)

    目录 Cypher手册详解 1 背景 2 唯一性 3 语法 3.1 命名规则 3.2 表达式 3.3 变量与保留关键字 3.4 参数 3.5 操作符 3.6 模式 3.7 列表 Cypher手册详解 ...

  7. 【图数据库】史上超全面的Neo4j使用指南

    转自:https://cloud.tencent.com/developer/article/1336299 在这篇文章中: 第一章:介绍 Neo4j是什么 Neo4j的特点 Neo4j的优点 第二章 ...

  8. Neo4j入门之中国电影票房排行浅析

    什么是Neo4j?   Neo4j是一个高性能的NoSQL图形数据库(Graph Database),它将结构化数据存储在网络上而不是表中.它是一个嵌入式的.基于磁盘的.具备完全的事务特性的Java持 ...

  9. 关于neo4j初入门(4)

    关于admin管理员 数据库备份和恢复 Neo4j数据库备份 步骤1 -点击“Neo4j Community”,如下图所示 Windows“开始”按钮>> "All Progra ...

随机推荐

  1. java的设计模式的一些链接,站在巨人的肩膀上,才能看的更远。(均来源与网上的各个大牛的博客中)

    创建型抽象工厂模式 http://www.cnblogs.com/java-my-life/archive/2012/03/28/2418836.html工厂方法 http://www.cnblogs ...

  2. Payload 实现分离免杀

    众所周知,目前的杀毒软件的杀毒原理主要有三种方式,一种基于特征,一种基于行为,一种基于云查杀,其中云查杀的一些特点基本上也可以概括为特征码查杀,不管是哪一种杀毒软件,都会检查PE文件头,尤其是当后门程 ...

  3. javascript之取余数、去商、天花板取整、地板取整

    demo1: console.log('//求余数'); //求余数 console.log(5 % 4); console.log(6 % 4); //求商 console.log('//求商'); ...

  4. NIO总结-----Buffer

    Java NIO中的Buffer用于和NIO通道进行交互.如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的. 缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存.这块内存被包装成NIO ...

  5. IDEA中安装go插件,如何能够配置go SDK?

    最近在学习go语言,一个是因为区块链的技术热潮,另一个是接手的项目有用到go写多线程高并发,因此决定自学go. 第一个遇到的问题就是环境! 通过一个晚上的摸索,大概步骤如下: 在IDEA中先打开set ...

  6. python 比对PDF文件

    基本思路: 1.读取pdf内容,存放到不同的 list 2.比较 list 的相似度 ------------------------ 实现------------------------- 1.PD ...

  7. Jmeter4.0---- 测试数据说明(17)

    1.说明 jmeter工具对于请求的测试结果,有多种形式展现,但是数据比较难懂,现在针对不同的展现做具体的说明. 2.监听器 (一)图形结果 (1)样本数目:总共发到服务器的请求数 (2)最新样本:服 ...

  8. eureka解析hostname为localhost问题 (转)

    https://blog.csdn.net/liufei198613/article/details/79583686 公司的springcloud已经上线运行,但是最近测试环境老是会出现一个诡异的问 ...

  9. HTML中由于DIV(块元素)浮动,导致的父元素高度塌陷问题的解决方案

    费话不多说,直接上问题: 1.开始时,页面只有两个DIV的嵌套(见图) 运行结果是: 现在看运行的是正常的,但是当我设置让 class="box2" 的DIV浮动时 运行结果是这样 ...

  10. 1.SpringMVC 概述

    SpringMVC 简介 SpringMVC 也叫 Spring web mvc ,属于表现层的框架.SpringMVC 是 Spring框架的一部分,是在Spring3.0后发布的 第一个Sprin ...