跨境互联网 跨境互联网
首页
  • AI 工具

    • 绘图提示词工具 (opens new window)
    • ChatGPT 指令 (opens new window)
  • ChatGPT

    • ChatGP T介绍
    • ChatGPT API 中文开发手册
    • ChatGPT 中文调教指南
    • ChatGPT 开源项目
  • Midjourney

    • Midjourney 文档
  • Stable Diffusion

    • Stable Diffusion 文档
  • 其他

    • AIGC 热门文章
    • 账号合租 (opens new window)
    • 有趣的网站
  • Vue

    • Vue3前置
  • JAVA基础

    • Stream
    • Git
    • Maven
    • 常用第三方类库
    • 性能调优工具
    • UML系统建模
    • 领域驱动设计
    • 敏捷开发
    • Java 测试
    • 代码规范及工具
    • Groovy 编程
  • 并发编程&多线程

    • 并发编程
    • 高性能队列 Disruptor
    • 多线程并发在电商系统下的应用
  • 其他

    • 面试题
  • 消息中间中间件

    • Kafka
    • RabbitMQ
    • RocketMQ
  • 任务调度

    • Quartz
    • XXL-Job
    • Elastic-Job
  • 源码解析

    • Mybatis 高级使用
    • Mybatis 源码剖析
    • Mybatis-Plus
    • Spring Data JPA
    • Spring 高级使用
    • Spring 源码剖析
    • SpringBoot 高级使用
    • SpringBoot 源码剖析
    • Jdk 解析
    • Tomcat 架构设计&源码剖析
    • Tomcat Web应用服务器
    • Zookeeper 高级
    • Netty
  • 微服务框架

    • 分布式原理
    • 分布式集群架构场景化解决方案
    • Dubbo 高级使用
    • Dubbo 核心源码剖析
    • Spring Cloud Gateway
    • Nacos 实战应用
    • Sentinel 实战应用
    • Seata 分布式事务
  • 数据结构和算法的深入应用
  • 存储

    • 图和Neo4j
    • MongoDB
    • TiDB
    • MySQL 优化
    • MySQL 平滑扩容实战
    • MySQL 海量数据存储与优化
    • Elasticsearch
  • 缓存

    • Redis
    • Aerospike
    • Guava Cache
    • Tair
  • 文件存储

    • 阿里云 OSS 云存储
    • FastDF 文件存储
  • 基础

    • Linux 使用
    • Nginx 使用与配置
    • OpenResty 使用
    • LVS+Keepalived 高可用部署
    • Jekins
  • 容器技术

    • Docker
    • K8S
    • K8S
  • 01.全链路(APM)
  • 02.电商终极搜索解决方案
  • 03.电商亿级数据库设计
  • 04.大屏实时计算
  • 05.分库分表的深入实战
  • 06.多维系统下单点登录
  • 07.多服务之间分布式事务
  • 08.业务幂等性技术架构体系
  • 09.高并发下的12306优化
  • 10.每秒100W请求的秒杀架构体系
  • 11.集中化日志管理平台的应用
  • 12.数据中台配置中心
  • 13.每天千万级订单的生成背后痛点及技术突破
  • 14.红包雨的架构设计及源码实现
  • 人工智能

    • Python 笔记
    • Python 工具库
    • 人工智能(AI) 笔记
    • 人工智能(AI) 项目笔记
  • 大数据

    • Flink流处理框架
  • 加密区

    • 机器学习(ML) (opens new window)
    • 深度学习(DL) (opens new window)
    • 自然语言处理(NLP) (opens new window)
AI 导航 (opens new window)

Revin

首页
  • AI 工具

    • 绘图提示词工具 (opens new window)
    • ChatGPT 指令 (opens new window)
  • ChatGPT

    • ChatGP T介绍
    • ChatGPT API 中文开发手册
    • ChatGPT 中文调教指南
    • ChatGPT 开源项目
  • Midjourney

    • Midjourney 文档
  • Stable Diffusion

    • Stable Diffusion 文档
  • 其他

    • AIGC 热门文章
    • 账号合租 (opens new window)
    • 有趣的网站
  • Vue

    • Vue3前置
  • JAVA基础

    • Stream
    • Git
    • Maven
    • 常用第三方类库
    • 性能调优工具
    • UML系统建模
    • 领域驱动设计
    • 敏捷开发
    • Java 测试
    • 代码规范及工具
    • Groovy 编程
  • 并发编程&多线程

    • 并发编程
    • 高性能队列 Disruptor
    • 多线程并发在电商系统下的应用
  • 其他

    • 面试题
  • 消息中间中间件

    • Kafka
    • RabbitMQ
    • RocketMQ
  • 任务调度

    • Quartz
    • XXL-Job
    • Elastic-Job
  • 源码解析

    • Mybatis 高级使用
    • Mybatis 源码剖析
    • Mybatis-Plus
    • Spring Data JPA
    • Spring 高级使用
    • Spring 源码剖析
    • SpringBoot 高级使用
    • SpringBoot 源码剖析
    • Jdk 解析
    • Tomcat 架构设计&源码剖析
    • Tomcat Web应用服务器
    • Zookeeper 高级
    • Netty
  • 微服务框架

    • 分布式原理
    • 分布式集群架构场景化解决方案
    • Dubbo 高级使用
    • Dubbo 核心源码剖析
    • Spring Cloud Gateway
    • Nacos 实战应用
    • Sentinel 实战应用
    • Seata 分布式事务
  • 数据结构和算法的深入应用
  • 存储

    • 图和Neo4j
    • MongoDB
    • TiDB
    • MySQL 优化
    • MySQL 平滑扩容实战
    • MySQL 海量数据存储与优化
    • Elasticsearch
  • 缓存

    • Redis
    • Aerospike
    • Guava Cache
    • Tair
  • 文件存储

    • 阿里云 OSS 云存储
    • FastDF 文件存储
  • 基础

    • Linux 使用
    • Nginx 使用与配置
    • OpenResty 使用
    • LVS+Keepalived 高可用部署
    • Jekins
  • 容器技术

    • Docker
    • K8S
    • K8S
  • 01.全链路(APM)
  • 02.电商终极搜索解决方案
  • 03.电商亿级数据库设计
  • 04.大屏实时计算
  • 05.分库分表的深入实战
  • 06.多维系统下单点登录
  • 07.多服务之间分布式事务
  • 08.业务幂等性技术架构体系
  • 09.高并发下的12306优化
  • 10.每秒100W请求的秒杀架构体系
  • 11.集中化日志管理平台的应用
  • 12.数据中台配置中心
  • 13.每天千万级订单的生成背后痛点及技术突破
  • 14.红包雨的架构设计及源码实现
  • 人工智能

    • Python 笔记
    • Python 工具库
    • 人工智能(AI) 笔记
    • 人工智能(AI) 项目笔记
  • 大数据

    • Flink流处理框架
  • 加密区

    • 机器学习(ML) (opens new window)
    • 深度学习(DL) (opens new window)
    • 自然语言处理(NLP) (opens new window)
AI 导航 (opens new window)
  • MySQL优化

  • MySQL海量数据存储与优化

  • 索引优化注意
  • MySQL平滑扩容实战
  • TiDB

  • 图和Neo4j

    • 1 图和 Neo4j 介绍
    • 2 Neo4j CQL
      • 1 CQL简介
      • 2 CREATE
      • 3 MATCH RETURN命令语法
      • 4 关系创建
      • 5 CREATE创建多个标签
      • 6 WHERE 子句
      • 7 DELETE子句和REMOVE子句
      • 8 SET子句
      • 9 ORDER BY子句
      • 10 SKIP 和LIMIT
      • 11 DISTINCT排重
    • 3 Neo4j CQL高级
    • 3 Neo4j 之Admin管理员操作
    • 5 Neo4j 程序访问
  • MongoDB

  • 缓存

  • 文件存储

  • Elasticsearch

  • 数据库与缓存
  • 图和Neo4j
Revin
2023-07-09
目录

2 Neo4j CQL

# 1 CQL简介

CQL代表Cypher查询语言。 像关系型数据库具有查询语言SQL,Neo4j使用CQL作为查询语言。

Neo4j CQL

  • 它是Neo4j图形数据库的查询语言。

  • 它是一种声明性模式匹配语言。

  • 它遵循SQL语法。

  • 它的语法是非常简单且人性化、可读的格式。

image-20230709145215346

完成上面的语法 我们基于庆余年电视剧人物关系图片:

Page10_01

# 2 CREATE

CREATE (
	<node-name>:<label-name>
	[{
		<property1-name>:<property1-Value>
		........
		<propertyn-name>:<propertyn-Value>

	}]
)
1
2
3
4
5
6
7
8
9

语法说明:

image-20230708223527024

举例:

CREATE (person:Person)
1
CREATE (person:Person {cid:1,name:"范闲",age:24,gender:0,character:"A",money:1000});

CREATE (person:Person {cid:2,name:"林婉儿",age:20,gender:1,character:"B",money:800});

CREATE (person:Person {cid:3,name:"庆帝",age:49,gender:0,character:"A",money:8900});	
1
2
3
4
5

# 3 MATCH RETURN命令语法

MATCH
(
	<node-name>:<label-name>
)
RETURN
	<node-name>.<property1-name>,
	...
	<node-name>.<propertyn-name>
1
2
3
4
5
6
7
8

image-20230708223712502

举例:

MATCH (person:Person) return person
MATCH (person:Person) return person.name,person.age
1
2

# 4 关系创建

  • 使用现有节点创建没有属性的关系
MATCH (<node1-name>:<node1-label-name>),(<node2-name>:<node2-label-name>)
CREATE (<node1-name>)-[<relationship-name>:<relationship-label-name>]->(<node2-name>)
RETURN 相应的内容
1
2
3

语法说明:

image-20230708223844573

创建关系
match(person:Person {name:"范闲"}) ,(person2:Person {name:"林婉儿"})
create(person)-[r:Couple]->(person2);

查询关系
match p = (person:Person {name:"范闲"})-[r:Couple]->(person2:Person) return p
match (p1:Person {name:"范闲"})-[r:Couple]-(p2:Person) return p1,p2
match (p1:Person {name:"范闲"})-[r:Couple]-(p2:Person) return r
1
2
3
4
5
6
7
8
  • 使用现有节点创建有属性的关系
MATCH (<node1-label-name>:<node1-name>),(<node2-label-name>:<node2-name>)

CREATE
	(<node1-label-name>)-[<relationship-label-name>:<relationship-name>
	{<define-properties-list>}]->(<node2-label-name>)
RETURN <relationship-label-name>

其中<define-properties-list> 是分配给新创建关系的属性(名称 - 值对)的列表。
{
	<property1-name>:<property1-value>,
	<property2-name>:<property2-value>,
	...
	<propertyn-name>:<propertyn-value>
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
match(person:Person {name:"范闲"}),(person2:Person {name:"林婉儿"})
create(person)-[r:Couple{mary_date:"12/12/2014",price:55000}]->(person2)
return r;
1
2
3
  • 使用新节点创建没有属性的关系
CREATE
  (<node1-label-name>:<node1-name>)
  -[<relationship-label-name>:<relationship-name>]->
  (<node1-label-name>:<node1-name>)
1
2
3
4
create(person1:Person {cid:4,name:"长公主",age:49,gender:1,character:"A",money:5000})
-[r:Friend]->
(person2:Person {cid:7,name:"九品射手燕小乙",age:48,gender:0,character:"B",money:1000})
1
2
3
  • 使用新节点创建有属性的关系
CREATE
	(<node1-label-name>:<node1-name>{<define-properties-list>})
	-[<relationship-label-name>:<relationship-name>{<define-properties-list>}]
	->(<node1-label-name>:<node1-name>{<define-properties-list>})
1
2
3
4
create (person1:Person {cid:9,name:"靖王世子",age:23,gender:0,character:"A",money:3000})
<-[r:Friend {date:"11-02-2000"}]->
(person2:Person {cid:8,name:"二皇子",age:24,gender:0,character:"B",money:6000})
1
2
3

关系和节点的属性可以使用的类型

image-20230708224614611

# 5 CREATE创建多个标签

CREATE (<node-name>:<label-name1>:<label-name2>.....:<label-namen>)
1

如:

CREATE (person:Person:Beauty:Picture {cid:20,name:"小美女"})
1

# 6 WHERE 子句

简单的WHERE子句
	WHERE <condition>
复杂的WHERE子句
	WHERE <condition> <boolean-operator> <condition>
1
2
3
4

where 中的比较运算符 和 之前mysql的相同 如 = != <> > < 等

image-20230708224743099

MATCH (person:Person)
WHERE person.name = '范闲' OR person.name = '靖王世子'
RETURN pers
1
2
3

# 7 DELETE子句和REMOVE子句

DELETE子句

  • 删除节点。

  • 删除节点及相关节点和关系。

match p = (:Person {name:"林婉儿"})-[r:Couple]-(:Person) delete r
1

REMOVE子句

  • 删除节点或关系的标签

  • 删除节点或关系的属性

MATCH (person:Person {name:"小美女"})
REMOVE person.cid
1
2

# 8 SET子句

  • 向现有节点或关系添加新属性

  • 更新属性值

MATCH (person:Person {cid:1})
SET person.money = 3456,person.age=25
1
2

# 9 ORDER BY子句

“ORDER BY”子句,对MATCH查询返回的结果进行排序。

我们可以按升序或降序对行进行排序。

默认情况下,它按升序对行进行排序。 如果我们要按降序对它们进行排序,我们需要使用DESC子句。

MATCH (person:Person)
RETURN person.name,person.money
ORDER BY person.money DESC
1
2
3

# 10 SKIP 和LIMIT

Neo4j CQL已提供“SKIP”子句来过滤或限制查询返回的行数。 它修整了CQL查询结果集顶部的结果。

Neo4j CQL已提供“LIMIT”子句来过滤或限制查询返回的行数。 它修剪CQL查询结果集底部的结果。

MATCH (person:Person)
RETURN ID(person),person.name,person.money
ORDER BY person.money DESC skip 4 limit 2
1
2
3

# 11 DISTINCT排重

这个函数的用法就像SQL中的distinct关键字,返回的是所有不同值。

MATCH (p:Person) RETURN Distinct(p.character
1
上次更新: 2025/04/03, 11:07:08
1 图和 Neo4j 介绍
3 Neo4j CQL高级

← 1 图和 Neo4j 介绍 3 Neo4j CQL高级→

最近更新
01
tailwindcss
03-26
02
PaddleSpeech
02-18
03
whisper
02-18
更多文章>
Theme by Vdoing | Copyright © 2019-2025 跨境互联网 | 豫ICP备14016603号-5 | 豫公网安备41090002410995号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式