Neo4j CQL语法
1. 创建节点
CREATE (dept:Dept { deptno:10,dname:"Accounting",location:"Hyderabad" })
其中dept为节点名,Dept为标签名(可理解为表名)
CREATE (emp:Employee{id:123,name:"Lokesh",sal:35000,deptno:10})
2. 检索
Neo4j使用CQL MATCH + RETURN命令 -
- 检索节点的某些属性
- 检索节点的所有属性
- 检索节点和关联关系的某些属性
- 检索节点和关联关系的所有属性
MATCH (dept: Dept) RETURN dept.deptno,dept.dname
3. 创建关系
在以下场景中,我们可以使用Neo4j CQL CREATE命令来创建两个节点之间的关系。 这些情况适用于Uni和双向关系。
- 在两个现有节点之间创建无属性的关系
MATCH (e:Customer) RETURN eMATCH (cc:CreditCard) RETURN ccMATCH (e:Customer),(cc:CreditCard) CREATE (e)-[r:DO_SHOPPING_WITH ]->(cc)
- 在两个现有节点之间创建与属性的关系
MATCH (cust:Customer),(cc:CreditCard) CREATE (cust)-[r:DO_SHOPPING_WITH{shopdate:"12/12/2014",price:55000}]->(cc) RETURN r
- 在两个新节点之间创建无属性的关系
- 在两个新节点之间创建与属性的关系
CREATE (video1:YoutubeVideo1{title:"Action Movie1",updated_by:"Abc",uploaded_date:"10/10/2010"}) -[movie:ACTION_MOVIES{rating:1}]-> (video2:YoutubeVideo2{title:"Action Movie2",updated_by:"Xyz",uploaded_date:"12/12/2012"})
- 在具有WHERE子句的两个退出节点之间创建/不使用属性的关系
4. 创建标签
使用Neo4j CQL CREATE命令
- 为节点创建单个标签
CREATE (google1:GooglePlusProfile)
- 为节点创建多个标签
CREATE (m:Movie:Cinema:Film:Picture)
- 为关系创建单个标签
CREATE (p1:Profile1)-[r1:LIKES]->(p2:Profile2)、
5. Where子句创建关系
MATCH (cust:Customer),(cc:CreditCard) WHERE cust.id = "1001" AND cc.id= "5001" CREATE (cust)-[r:DO_SHOPPING_WITH{shopdate:"12/12/2014",price:55000}]->(cc) RETURN r
MATCH (a{name:"Laurence Fishburne"})-[r1:ACTED_IN]->(m)<-[r2:DIRECTED]-(d) RETURN a,r1,r2,m,d与MATCH (a)-[r1:ACTED_IN]->(m)<-[r2:DIRECTED]-(d) where a.name="Laurence Fishburne" RETURN a,r1,r2,m,d中where子句等价
6. Delete节点和关系
MATCH (e: Employee) DELETE eMATCH (cc: CreditCard)-[rel]-(c:Customer) DELETE cc,c,rel
7. Remove删除标签和属性
删属性
MATCH (book { id:122 }) REMOVE book.price RETURN book
删标签
MATCH (m:Movie) REMOVE m:Picture
8. Set添加属性
MATCH (dc:DebitCard) SET dc.atm_pin = 3456 RETURN dc
9. Sorting排序
MATCH (emp:Employee) RETURN emp.empid,emp.name,emp.salary,emp.deptno ORDER BY emp.name
10. Union合并
<MATCH Command1> UNION <MATCH Command2>
11. Limit与skip
MATCH (emp:Employee) RETURN emp LIMIT 2MATCH (emp:Employee) RETURN emp SKIP 2
Neo4j CQL已提供“SKIP”子句来过滤或限制查询返回的行数。 它修整了CQL查询结果集顶部的结果,前两行跳过。
12. Merge合并
MERGE = CREATE + MATCH
用于检查是否已经创建该节点,因为CQL MERGE命令检查该节点在数据库中是否可用。 如果它不存在,它创建新节点。 否则,它不创建新的。
13. In 操作
MATCH (e:Employee) WHERE e.id IN [123,124] RETURN e.id,e.name,e.sal,e.deptno
14. 方向关系
Neo4j只支持有方向的关系
15. 字符串函数(upper、lower、substring、replace)
MATCH (e:Employee) RETURN e.id,UPPER(e.name),e.sal,e.deptno
Upper、lower、substring(字符串下标SUBSTRING(e.name,0,2),0到2的字符)、replace
16. 聚合函数(count、max、min、sum、avg)
MATCH (e:Employee) RETURN MAX(e.sal),MIN(e.sal)
17. 关系函数(startnode、endnode、id、type)
MATCH (a)-[movie:ACTION_MOVIES]->(b) RETURN ENDNODE(movie)MATCH (a)-[movie:ACTION_MOVIES]->(b) RETURN ID(movie),TYPE(movie)
系统内部ID
18. Unique约束
CREATE CONSTRAINT ON (cc:CreditCard) ASSERT cc.number IS UNIQUEDROP CONSTRAINT ON (cc:CreditCard) ASSERT cc.number IS UNIQUE
19. 模糊查询
查询N类型中,属性attr包含‘a1’或者‘a2’的所有节点。
match (n:N) where n.attr =~ '.*a1.*|.*a2.*' return n
参考:https://cloud.tencent.com/developer/article/1336299
https://www.w3cschool.cn/neo4j/
https://neo4j.com/docs/getting-started/3.5/get-started-with-neo4j/
Neo4j CQL语法相关推荐
- Neo4j基础理论、Linux安装与Windows安装以及CQL语法(增删改查、排序、分页、去重)
一.什么是Neo4j? Neo4j是一个开源的 无Shcema的 基于java开发的 图形数据库,它将结构化数据存储在图中而不是表中.它是一个嵌入式的.基于磁盘的.具备完全的事务特性的Java持久化引 ...
- Neo4j - CQL简介
CQL代表Cypher查询语言. 像Oracle数据库具有查询语言SQL,Neo4j具有CQL作为查询语言. Neo4j CQL - 它是Neo4j图形数据库的查询语言. 它是一种声明性模式匹配语言 ...
- Neo4j CQL - (3) -RETURN子句
Neo4j CQL RETURN子句用于 - 检索节点的某些属性 检索节点的所有属性 检索节点和关联关系的某些属性 检索节点和关联关系的所有属性 RETURN命令语法: RETURN <node ...
- neo4j CQL使用
neo4j CQL使用 Neo4j的Cypher语言是为处理图形数据而构建的,CQL代表Cypher查询语言.像Oracle数据库具有查询 语言SQL,Neo4j具有CQL作为查询语言. 它是Neo4 ...
- Neo4j - CQL使用
3.1 Neo4j - CQL简介 Neo4j的Cypher语言是为处理图形数据而构建的,CQL代表Cypher查询语言.像Oracle数据库具有查询 语言SQL,Neo4j具有CQL作为查询语言. ...
- Neo4j CQL简介
CQL CQL 代表 Cypher 查询语言.像 Orcale 数据库具有查询语言 SQL,Neo4j 具有 CQL 作为查询语言. Neo4j CQL Neo4j 图形数据库的查询语言: 一种声明性 ...
- Neo4j CQL高级
我们先准备脚本,创建数据,以便后续使用 // 删除所有的节点和关系 MATCH(n) OPTIONAL MATCH (n)-[r]-() DELETE n,r // 创建Person 的节点 CREA ...
- [Neo4j] CQL命令
文章目录 docker运行neo4j CQL create创建一个节点 match获取数据 RETURN子句 MATCH & RETURN匹配和返回 关系 where子句 delete子句 r ...
- 图数据库Neo4简介-CQL语法
图数据库Neo4j 一.什么是图数据库? 图数据库是基于图论实现的一种NOSQL数据库,其数据结构和数据查询方式都是以图论为基础的,图数据库主要用于存储更多的连接数据. 图论[Graph Theory ...
- Neo4j CQL(附springboot集成neo4j)
CQL代表Cypher查询语言. 像Oracle数据库具有查询语言SQL,Neo4j具有CQL作为查询语言. 常用的Neo4j CQL命令/条款如下: S.No. CQL命令/条 用法 1. CREA ...
最新文章
- iOS - Regex 正则表达式
- android DataBind LiveData ViewModel 使用详解
- boost::mp11::mp_eval_if_q相关用法的测试程序
- 你听过算法也是可以贪心的吗?
- virtio Towards a De-Facto Standard For Virtual IO Devices
- 714. 买卖股票的zui佳时机含手续费(JavaScript)
- js防止表单的重复提交
- STM32F103单片机使用DMA功能读取ADC采样数据
- 1.2_linearbinary_search_顺序(线性)查找二分(折半)查找
- java core 作者_java core dump分析实战
- python使用-python 类如何使用
- 福利 | droidcon Beijing 2016安卓技术大会
- Linux 基础入门---常用命令
- WEB UI设计规范
- 【转】100项PPT制作技术
- 图片放大后不清楚怎么办?
- 2022支付宝集五福攻略,一天20张不是事
- PySide6的安装
- 汇编语言 AND逻辑与指令
- 台式计算机内存卡与普通有啥区别,电脑硬盘和内存有什么区别?