一、Neo4j环境搭建

Neo4j高性能图数据库从入门到实战学习视频
neo4j官方下载连接

window傻瓜式安装,点击下一步下一步

首页界面介绍

二、Neo4j构建的元素

节点

节点表示一个具体的实体。
节点可以包含:
一个或多个属性
一个或多个标签

关系

关系用于连接2个节点
关系可以包含:
一个或多个属性
一个或多个标签
要注意的是:
关系是具有方向性的,而且有3种情况:单向向左、单向向右、双向。但是neo4j好像并没有实现双向关系。要在业务中实现双向关系,貌似要通过2个单向关系来实现

标签

类似于java的类的概念,定义某类节点或某类关系。
比如:张三节点的标签是人,李四节点的标签也是人;比如兄弟关系的标签是家庭,兄妹关系的标签也是家庭。
标签可以被索引,所以建合适的标签可以提高搜索速度

语法:

:标签1
:标签1:标签2
比如:CREATE (n:西游记:人物 {name:'张三'}) RETURN n

属性

节点和关系都能拥有一个或多个属性。
语法:

{属性key:"属性value", 属性key:"属性value"}

三、CQL

CQL代表Cypher查询语言,用于查询图库的查询语言,类比SQL用于查询关系型数据库。

CQL命令 用法
CREATE 创建节点,关系和属性
MATCH 检索有关节点,关系和属性数据
RETURN 返回查询结果
WHERE 提供条件过滤检索数据
DELETE 删除节点和关系
REMOVE 删除节点和关系的属性
ORDER BY 排序检索数据
SET 添加或更新标签

理解CQL

节点(小括号表示节点)

CQL中,()表示一个节点。比如:(n:person {name:‘如来’})
()表示一个节点
n表示给这个节点起个别名
person表示给这个节点设置一个标签
{}里表示给这个节点设置什么属性

关系(中括号表示关系)

CQL中,[]表示一个关系。关系两边要有节点,并且要设置方向,比如

 () - [] -> ()

但在neo4j中,一条关系只能有一个方向,不能同时指向两个节点。
但允许一条关系的开始节点和结束节点都是自己。

CREATE

创建一个节点

# 下面两个是等价的
CREATE ()
CREATE (n) # 只不过CREATE(n) 相当于给这个节点起个别名,可以直接RETURN
CREATE (n) RETURN n
# 创建一个节点
CREATE (n:西游记{name: "孙悟空"})
# 一次性创建多个节点
CREATE (n:西游记 {name: "猪八戒"}), (m:西游记 {name: "沙僧"})

创建关系

# 创建新的节点,并且同时给新的节点创建关系
CREATE (n:`西游记`{name:"唐僧"}) - [r:`坐骑`{attr:"属性"}]-> (m:`西游记`{name:"白龙马"})
return n, m# 在已经被创建好的节点之间,创建1条关系
MATCH (n:`西游记`{name:"孙悟空"}), (m:`西游记`{name:"猪八戒"})
CREATE (n) -[r:师弟{attr:"属性"}]-> (m)
return n, m# 在已经被创建好的节点之间,创建多条关系
MATCH (swk:`西游记`{name:"孙悟空"}), (zbj:`西游记`{name:"猪八戒"}), (ss:`西游记`{name:"沙僧"}), (ts:`西游记`{name:"唐僧"})
CREATE (swk) -[:师傅{attr:"属性"}]-> (ts), (zbj) -[:师傅{attr:"属性"}]-> (ts), (ss) -[:师傅{attr:"属性"}]-> (ts)
return swk, zbj, ss# neo4j,关系可以自己指向自己的
MATCH (n:`学习` {name:'张三'})
CREATE (n)-[:自恋]->(n)
RETURN n

DELETE

删除所有节点和关系

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r或MATCH (n) DETACH DELETE n

根据id去删除单个节点

MATCH (n)
WHERE id(n)=4
DELETE n
RETURN n

根据id去删除单个关系

MATCH  ()-[r]-() Where ID(r)=4 Delete r

根据2个节点和关系方向,删除关系

# 搭建测试数据
CREATE (:`学习` {name: '张三'}),(:`学习` {name: '李四'}),(:`学习` {name: '王五'});
MATCH (p1:`学习` {name: '张三'}), (p2:`学习` {name: '李四'}), (p3:`学习` {name: '王五'})
CREATE (p1)-[:认识]->(p2)-[:认识]->(p1)-[:认识]->(p3)
RETURN p1,p2,p3# 删除张三认识李四的关系,保留李四认识张三
MATCH (n:`学习` {name:'张三'}),(m:`学习` {name:'李四'})
OPTIONAL MATCH (n)-[r]->(m)
DELETE r

同时删除指定的节点和它的关系

# 搭建测试数据
CREATE (:`学习` {name: '张三'}),(:`学习` {name: '李四'}),(:`学习` {name: '王五'});
MATCH (p1:`学习` {name: '张三'}), (p2:`学习` {name: '李四'}), (p3:`学习` {name: '王五'})
CREATE (p1)-[:认识]->(p2)-[:认识]->(p1)-[:认识]->(p3)
RETURN p1,p2,p3# 删除张三节点,同时删除跟张三有关的关系
MATCH (n:`学习` {name:'张三'})
OPTIONAL MATCH (n)-[r]-()
DELETE n,r或MATCH (n学习` {name:'张三'}) DETACH DELETE n

MATCH

match关键字相当于sql的select

# 相当于select *
MATCH (n)
RETURN n

导入导出

  • 导出
  • 导入

Neo4j:一、CQL语句相关推荐

  1. Neo4j之CQL基础

    Neo4j之CQL基础 文章目录 Neo4j之CQL基础 一.CQL概念 二.CQL简介 三.CQL命令使用 create match+return where delete remove set o ...

  2. neo4j CQL语句

    撸了今年阿里.头条和美团的面试,我有一个重要发现.......>>> 查询 match (person:lable1) where person.name='tom' return ...

  3. 【Neo4j】CQL基本语法

    Neo4j CQL命令 CQL命令 用法 CREATE 创建节点,关系和属性 MATCH 检索有关节点,关系和属性数据 REATURN 返回查询结果 WHERE 提供条件过滤检索数据 DELETE 删 ...

  4. 图数据库neo4j的编程语句(详解)

    <手写测试1> 1.1创建空节点 CREATE (n) CREATE (a),(b) 1.2创建带标签的节点 CREATE (n:Person) CREATE (n:Person:Swed ...

  5. neo4j安装调研简介-代做找我

    一. 简介 Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中.它是一个嵌入式的.基于磁盘的.具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从 ...

  6. 图数据库Neo4j的使用(附带源码)

    Neo4j整合Java Neo4j安装及简单使用 Neo4j和图数据库简介 Neo4j安装 配置环境变量 修改Neo4j配置文件 Neo4j启动和停止 切换数据库 Neo4j的CQL语句 导入csv文 ...

  7. Neo4j - CQL使用

    3.1 Neo4j - CQL简介 Neo4j的Cypher语言是为处理图形数据而构建的,CQL代表Cypher查询语言.像Oracle数据库具有查询 语言SQL,Neo4j具有CQL作为查询语言. ...

  8. Neo4j CQL - DELETE删除

    Neo4j使用CQL DELETE子句 删除节点 删除节点及相关节点和关系 1. DELETE删除节点 DELETE <node-name-list> 语法元素 描述 DELETE CQL ...

  9. python 基于CQL操作neo4j数据库

    本文核心思想: 在python上通过CQL语句来对neo4j数据库进行操作 引言 这篇文章是基于 neo4j 数据库的原生语法 CQL (这里可以理解为mysql里的sql语句),来对neo4j数据库 ...

最新文章

  1. 开发日记-20190423 关键词 android静态代理类代理方法打断点debug 退出当前activity 闪退
  2. MATLAB对字符串进行分割
  3. 简述enumerate函数
  4. 爬虫 404 try_和我一起学爬虫
  5. 【Python CheckiO 题解】Multicolored Lamp
  6. android 发送按键 0,android monitor tool (8.0 模拟发送按键及触摸屏事件实现)
  7. 初步探究ES6之箭头函数
  8. web 基于jquery和canvas的打飞机小游戏
  9. Java虚拟机及运行时数据区
  10. rest api解决url参数中带点的问题,REST正则匹配
  11. systemctl status network.service命令,Failed to start LSB: Bring up/down networking.完美解决
  12. 百度飞桨-基于CV的工业读表案例(修改读表范围和数值)
  13. 04oracle单表查询、连接查询、子查询
  14. 利用Lambda实现通过getter/setter方法引用拿到属性名
  15. CodeForces 878 简要题解
  16. AVPro Movie Capture☀️一、一款U3D录屏插件介绍
  17. 2021-9-23 base64学习
  18. 【计算机网络】 IP地址划分
  19. sphinx 编码 php文档,用Sphinx编写技术文档
  20. 机器学习--sklearn之决策树(分类+回归)

热门文章

  1. 学习这篇总结后,你也能做出天天快报一样的推荐系统
  2. Win10找不到便签怎么办 Win10找不到便签解决方法
  3. Unity Predefined assemblies/assembly definition files
  4. cisco路由器交换机忘记密码后的恢复
  5. Tomcat漏洞ip:port/manager/html
  6. 计算机视觉入门(包含论文学习网址)
  7. 智能驾驶中预期安全系统的架构
  8. Mac查看电池健康情况、电池损耗的方法
  9. hdwiki下model目录功能
  10. Python练习题答案: IRR计算 - 盈利能力的评价【难度:2级】--景越Python编程实例训练营,1000道上机题等你来挑战