Neo4j:一、CQL语句
一、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语句相关推荐
- Neo4j之CQL基础
Neo4j之CQL基础 文章目录 Neo4j之CQL基础 一.CQL概念 二.CQL简介 三.CQL命令使用 create match+return where delete remove set o ...
- neo4j CQL语句
撸了今年阿里.头条和美团的面试,我有一个重要发现.......>>> 查询 match (person:lable1) where person.name='tom' return ...
- 【Neo4j】CQL基本语法
Neo4j CQL命令 CQL命令 用法 CREATE 创建节点,关系和属性 MATCH 检索有关节点,关系和属性数据 REATURN 返回查询结果 WHERE 提供条件过滤检索数据 DELETE 删 ...
- 图数据库neo4j的编程语句(详解)
<手写测试1> 1.1创建空节点 CREATE (n) CREATE (a),(b) 1.2创建带标签的节点 CREATE (n:Person) CREATE (n:Person:Swed ...
- neo4j安装调研简介-代做找我
一. 简介 Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中.它是一个嵌入式的.基于磁盘的.具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从 ...
- 图数据库Neo4j的使用(附带源码)
Neo4j整合Java Neo4j安装及简单使用 Neo4j和图数据库简介 Neo4j安装 配置环境变量 修改Neo4j配置文件 Neo4j启动和停止 切换数据库 Neo4j的CQL语句 导入csv文 ...
- Neo4j - CQL使用
3.1 Neo4j - CQL简介 Neo4j的Cypher语言是为处理图形数据而构建的,CQL代表Cypher查询语言.像Oracle数据库具有查询 语言SQL,Neo4j具有CQL作为查询语言. ...
- Neo4j CQL - DELETE删除
Neo4j使用CQL DELETE子句 删除节点 删除节点及相关节点和关系 1. DELETE删除节点 DELETE <node-name-list> 语法元素 描述 DELETE CQL ...
- python 基于CQL操作neo4j数据库
本文核心思想: 在python上通过CQL语句来对neo4j数据库进行操作 引言 这篇文章是基于 neo4j 数据库的原生语法 CQL (这里可以理解为mysql里的sql语句),来对neo4j数据库 ...
最新文章
- 开发日记-20190423 关键词 android静态代理类代理方法打断点debug 退出当前activity 闪退
- MATLAB对字符串进行分割
- 简述enumerate函数
- 爬虫 404 try_和我一起学爬虫
- 【Python CheckiO 题解】Multicolored Lamp
- android 发送按键 0,android monitor tool (8.0 模拟发送按键及触摸屏事件实现)
- 初步探究ES6之箭头函数
- web 基于jquery和canvas的打飞机小游戏
- Java虚拟机及运行时数据区
- rest api解决url参数中带点的问题,REST正则匹配
- systemctl status network.service命令,Failed to start LSB: Bring up/down networking.完美解决
- 百度飞桨-基于CV的工业读表案例(修改读表范围和数值)
- 04oracle单表查询、连接查询、子查询
- 利用Lambda实现通过getter/setter方法引用拿到属性名
- CodeForces 878 简要题解
- AVPro Movie Capture☀️一、一款U3D录屏插件介绍
- 2021-9-23 base64学习
- 【计算机网络】 IP地址划分
- sphinx 编码 php文档,用Sphinx编写技术文档
- 机器学习--sklearn之决策树(分类+回归)
热门文章
- 学习这篇总结后,你也能做出天天快报一样的推荐系统
- Win10找不到便签怎么办 Win10找不到便签解决方法
- Unity Predefined assemblies/assembly definition files
- cisco路由器交换机忘记密码后的恢复
- Tomcat漏洞ip:port/manager/html
- 计算机视觉入门(包含论文学习网址)
- 智能驾驶中预期安全系统的架构
- Mac查看电池健康情况、电池损耗的方法
- hdwiki下model目录功能
- Python练习题答案: IRR计算 - 盈利能力的评价【难度:2级】--景越Python编程实例训练营,1000道上机题等你来挑战