Neo4j CQL语句 使用教程

CREATE命令 :

java 复制代码
CREATE (
   <node-name>:<label-name>
   { 	
      <Property1-name>:<Property1-Value>
      ........
      <Propertyn-name>:<Propertyn-Value>
   }
)

字段说明

CREATE (dept:Dept { deptno:10,dname:"Accounting",location:"Hyderabad" }),使用此命令后,展示的Table信息如下:

java 复制代码
{
  "identity": 96,
  "labels": [
    "Dept"
  ],
  "properties": {
"location": "Hyderabad",
"deptno": 10,
"dname": "Accounting"
  }
}

MATCH命令

match 的命令语法:

java 复制代码
MATCH 
(
   <node-name>:<label-name>
)

使用 MATCH (dept:Dept) return dept 可以得到# RETURN 命令

RETURN命令语法:

java 复制代码
RETURN 
   <node-name>.<property1-name>,
   ........
   <node-name>.<propertyn-name>

return命令 不能单独使用

MATCH & RETURN匹配和返回

使用 MATCH (dept: Dept)

RETURN dept.deptno,dept.dname,dept.location得到:

CREATE+MATCH+RETURN命令

创建 CREATE (cc:CreditCard{id:"5001",number:"1234567890",cvv:"888",expiredate:"20/17"})

查询 MATCH (cc:CreditCard)

RETURN cc.id,cc.number,cc.cvv,cc.expiredate

CREATE创建标签

语法 :

java 复制代码
CREATE (<node-name>:<label-name>)

使用CREATE (google1:GooglePlusProfile) 得到

多个标签到节点

语法:

java 复制代码
CREATE (<node-name>:<label-name1>:<label-name2>.....:<label-namen>)

使用 CREATE (m:Movie:Cinema:Film:Picture)

单个标签到关系

语法 :

java 复制代码
CREATE (<node1-name>:<label1-name>)-
	[<relationship-name>:<relationship-label-name>]
	->(<node2-name>:<label2-name>)

例如 : CREATE (p1:Profile1)-r1:LIKES->(p2:Profile2)

WHERE子句

简单WHERE子句语法

复制代码
WHERE <condition>

复杂WHERE子句语法

复制代码
WHERE <condition> <boolean-operator> <condition>

我们可以使用布尔运算符在同一命令上放置多个条件。 请参考下一节,了解Neo4j CQL中可用的布尔运算符。

condition的语法:

java 复制代码
<property-name> <comparison-operator> <value>

Neo4j CQL中的布尔运算符

Neo4j CQL中的比较运算符

DELETE删除

  • 删除节点。
  • 删除节点及相关节点和关系
    语法 :
java 复制代码
DELETE <node-name-list>

MATCH (e: Employee) delete e

DELETE节点和关系子句语法

java 复制代码
DELETE <node1-name>,<node2-name>,<relationship-name>
java 复制代码
MATCH (cc: CreditCard)-[rel]-(c:Customer) 
DELETE cc,c,rel

REMOVE删除

Neo4j CQL REMOVE命令用于

  • 删除节点或关系的标签
  • 删除节点或关系的属性

Neo4j CQL DELETE和REMOVE命令之间的主要区别 -

  • DELETE操作用于删除节点和关联关系。
  • REMOVE操作用于删除标签和属性

Neo4j CQL DELETE和REMOVE命令之间的相似性 -

  • 这两个命令不应单独使用。
  • 两个命令都应该与MATCH命令一起使用。

语法 :

java 复制代码
REMOVE <property-name-list>
java 复制代码
CREATE TABLE BOOK(
	id number,
	title varchar2(20),
	pages number,
	price number
);
INSERT INTO BOOK VALUES (122,'Neo4j Tutorial',340,250);

MATCH (book { id:122 })
REMOVE book.price
RETURN book

SET子句

Neo4j CQL 已提供 SET 子句来执行以下操作。

  • 向现有节点或关系添加新属性
  • 添加或更新属性值
java 复制代码
SET  <property-name-list>

<属性名称列表>语法:

复制代码
<node-label-name>.<property1-name>,
<node-label-name>.<property2-name>, 
.... 
<node-label-name>.<propertyn-name> 
xml 复制代码
MATCH (book:Book)
SET book.title = 'superstar'
RETURN book

ORDER BY排序

语法:

复制代码
ORDER BY  <property-name-list>  [DESC]	 
复制代码
MATCH (emp:Employee)
RETURN emp.empid,emp.name,emp.salary,emp.deptno
ORDER BY emp.name
相关推荐
代码什么用7 小时前
Spring基础使用
java·后端·spring
Su米苏8 小时前
Spring AI 中MCP 与普通 @Tool的区别
java·人工智能·spring
码云数智-园园8 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析
java·开发语言
老板一杯拿铁8 小时前
Java 异常体系详解:从字节码原理到最佳实践
java
蜗牛互联网8 小时前
Java 17 HttpClient调用文件转写API的超时与失败回退
java·人工智能·后端
禾小西9 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
我不是阵雨9 小时前
JDK 21虚拟线程Pinning陷阱:一文拔钉解困
java·开发语言
小卡车5559 小时前
java反射、自定义注解的应用(自定义分页)
java
BLUcoding10 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom
yuniko-n10 小时前
【JUC】Lock 和 synchronzied 锁
java