Neo4j CQL语法

目录

0. 简述

CQL 代表密码查询语言。就像 Oracle 数据库有查询语言 SQL,Neo4j 有 CQL 作为查询语言。

1. 创建节点

创建单个节点

cql 复制代码
CREATE (node_name);

其中(;)是可选的。

创建多个节点

cql 复制代码
CREATE (node_name1),(node_name2)

创建带标签的节点

cql 复制代码
CREATE (node:label)

创建具有多个标签的节点(用冒号":"分隔)

cql 复制代码
CREATE (node:label1:label2:...labeln)

创建具有属性的节点(在"{ }"中指定这些属性,用逗号分隔)

cql: 复制代码
CREATE (node:label1{name:"zhangsan", year:1999, country:"China"})

验证:返回数据库中的所有节点

cql 复制代码
MATCH (n) RETURN n;

返回创建的节点

cql 复制代码
CREATE (node:label1{name:"zhangsan", year:1999, country:"China"}) RETURN node

2. 创建关系

首先在数据库中创建两个节点Dhawan和Ind,如下:

cql 复制代码
CREATE (Dhawan:player {name:"Shikar Dhawan", YOB:1985, POB:"Delhi})
CREATE (Ind:Country {name:"India"})

使用节点创建关系

在两节点间建立一个名为 BATSMAN_OF 的关系

cql 复制代码
CREATE (Dhawan)-[r:BATSMAN_OF]->(Ind)

最后,返回两个节点以查看创建的关系

cql 复制代码
RETURN Dhawan, Ind

使用节点和标签创建关系

cql 复制代码
MATCH (a:player), (b:Country) WHERE a.name="Shikar Dhawan" AND b.name = "India" CREATE (a)-[r:BATSMAN_OF]->(b) RETURN a,b

使用标签和属性创建关系

cql 复制代码
MATCH (a:player), (b:Country) WHERE a.name = "Shikar Dhawan" AND b.name = "India"
CREATE (a)-[r:BATSMAN_OF {Matches:5, Avg:90.75}]->(b) RETURN a,b

创建完整路径

cql 复制代码
CREATE p = (Node1 {properties})-[:Relationship_Type]-> (Node2 {properties})[:Relationship_Type]->(Node3 {properties}) RETURN p

3. 合并命令

MERGE 命令是 CREATE 命令和 MATCH 命令的组合。

Neo4j CQL MERGE 命令在图中搜索给定模式。如果存在,则返回结果。

如果它在图中不存在,那么它会创建一个新的节点/关系并返回结果。


首先,在数据库中创建两个标签为 Dhawan 和 Ind 的节点。创建从 Dhawan 到 Ind 的类型为"BATSMAN_OF"的关系,如下:

cql 复制代码
CREATE (Dhawan:player{name: "Shikar Dhawan", YOB: 1985, POB: "Delhi"}) 
CREATE (Ind:Country {name: "India"}) 
CREATE (Dhawan)-[r:BATSMAN_OF]->(Ind) 

将节点与标签合并

Neo4j 会验证是否存在具有给定标签的任何节点。如果没有,将创建当前节点。

cql 复制代码
MERGE (Jadeja:player) RETURN Jadeja

将节点与属性合并

cql 复制代码
MERGE (Jadeja:player {name: "Ravindra Jadeja", YOB: 1988, POB: "NavagamGhed"}) RETURN Jadeja 

合并关系

cql 复制代码
MATCH (a:Country), (b:Tournament) 
   WHERE a.name = "India" AND b.name = "ICC Champions Trophy 2013" 
   MERGE (a)-[r:WINNERS_OF]->(b) 
RETURN a, b

未完待续

相关推荐
z06.28 分钟前
MySQL索引
数据库·mysql
考虑考虑34 分钟前
Posrgresql恢复.backup文件
数据库·后端·postgresql
云祺vinchin1 小时前
中小企业备份软件选型从恢复需求到总体成本评估
数据库·数据备份·中小企业备份·容灾备份软件
Zenova EdgeOS1 小时前
Go 工业边缘错误处理实战:用 errors 构建可追溯错误链
开发语言·数据库·golang
KKKlucifer1 小时前
国内数据安全服务的产品智能化转型:大模型赋能下的技术能力重构分析
大数据·数据库·重构
字节跳动开源2 小时前
OpenViking 上线原生 3D 内容理解模型
数据库·开源
CCIE-Yasuo4 小时前
网络安全-学习数据库-Mysql-2
数据库·学习·mysql
这个DBA有点耶4 小时前
内核级AI与多模融合:AI数据库在海外场景的落地要点
数据库·人工智能·架构
涛思数据(TDengine)4 小时前
从工业本体到 AI 原生:TDengine 出席 2026 QCon 分享工业数据基础设施路径
大数据·数据库·人工智能·tdengine·工业
Jesse_EC4 小时前
换乘次数最少的路径 SQL 查询详解与实战经验——从 WITH RECURSIVE 到 pgRouting
数据库·postgresql