当前位置: 首页 > news >正文

neo4j学习笔记

图数据库

图数据库是基于图论实现的一种NoSQL数据库,其数据存储结构和数据查询方式都是图论为基础的,图数据库主要用于存储更多的连接数据。

图论(GraphTheory)是数学的一个分支。图论以图为研究对象,图论的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点表示事物,用连接两点的线表示相应两个事物具有关系

关系数据库:适合需要高度数据一致性、事务完整性和复杂查询的应用,如金融、会计等。
非关系数据库:适合需要高扩展性、高性能和存储半结构化数据的应用,如社交网络、大数据应用等。

neo4j数据库模型

节点和关系都包含属性
关系连接节点
属性是键值对
节点用圆圈表示,关系用方向键表示
关系具有方向:单向和双向
每个关系包含“开始节点”或“从节点”和“到节点”或“结束节点”

CQL使用

Neo4j图形数据库的查询语言,是一种声明性模式匹配语言

CREATE 创建

CREATE (<要创建的节点名称>:<节点标签名称>)
CREATE (<将要创建的节点名称>:<节点标签名称>{ 	<属性名称>:<属性值>........<属性名称>:<属性值>}
)
CREATE (节点名:标签名:标签名:标签名:标签名)
CREATE (<From节点的名称>:<From节点的标签名称>)-[<关系的名称>:<关系的标签名称>]->(<To节点的名称>:<To节点的标签名称>))

MATCH匹配

MATCH 
(<要创建一个节点名称>:<节点的标签名称>
)

MATCH 经常需要与其他的语句配合才可以使用,例如

# 查询Dept下的内容
MATCH (dept:Dept) return dept# 查询Employee标签下 id=123,name="Lokesh"的节点
MATCH (p:Employee {id:123,name:"Lokesh"}) RETURN p## 查询Employee标签下name="Lokesh"的节点,使用(where命令)
MATCH (p:Employee)
WHERE p.name = "Lokesh"
RETURN p

RETURN返回

RETURN <要创建的节点名称>.<要创建的节点的属性名称>,........<要创建的节点名称>.<要创建的节点的属性名称>

WHERE哪里

WHERE <条件>
条件包括以下:
<节点或关系的属性名称> <比较运算符之一> <字面值,如数字文字,字符串文字等>
比较运算符:
and ,  or ,  not,  xor【位运算,相同为0,不同为1,  <,  > , <> 【不等于】, = , <= , >= , 

DELETE删除

DELETE <要从数据库中删除的节点名称列表>   
# 使用逗号(,)运算符来分隔节点名
DELETE <结束节点名称>,<结束节点名称>,<关系名称>
# 使用逗号(,)运算符来分隔节点名称和关系名称

REMOVE移除

REMOVE <属性列表>
属性列表如下:
<节点的名称>.<节点的属性名称>,
<节点的名称>.<节点的属性名称>, 
.... 
<节点的名称>.<节点的属性名称> 

使用逗号(,)运算符来分隔标签名称列表
使用dot(.)运算符来分隔节点名称和标签名称

REMOVE <标签列表> # 用于永久性地从节点或关系中删除它
标签列表如下:
<节点的名称>:<节点的标签名称>, 
.... 
<节点的名称>:<节点的标签名称> 

使用逗号(,)运算符来分隔标签名称列表
使用dot(.)运算符来分隔节点名称和标签名称

ORDER BY以…排序

默认升序排序

ORDER BY  <属性名列表>  [DESC]	 
<属性名列表>语法:
<节点的标签名称>.<节点的属性名称>,
<节点的标签名称>.<节点的属性名称>, 
.... 
<节点的标签名称>.<节点的属性名称> 

使用逗号(,)运算符来分隔属性名列表

SET组

SET  <属性名称列表>  #用于执行添加或更新操作以满足我们的要求
属性名称列表如下:
<节点的标签名称>.<节点的属性名>,
<节点的标签名称>.<节点的属性名>, 
.... 
<节点的标签名称>.<节点的属性名> 

使用逗号(,)运算符来分隔属性名列表
使用dot(.)运算符来分隔节点标签名称和属性名称

http://www.lryc.cn/news/514879.html

相关文章:

  • 【动手学电机驱动】STM32-MBD(2)将 Simulink 模型部署到 STM32G431 开发板
  • Nginx代理本地exe服务http为https
  • C++: glibc: pthread: pthread_cond_destroy,程序hang一例
  • 【中间件】docker+kafka单节点部署---zookeeper模式
  • 深入Android架构(从线程到AIDL)_08 认识Android的主线程
  • 集线器,交换机,路由器,mac地址和ip地址知识记录总结
  • 【VUE】使用create-vue快速创建一个vue + vite +vue-route 等其他查看的工程
  • Jetpack Compose 学习笔记(一)—— 快速上手
  • Kafka3.x KRaft 模式 (没有zookeeper) 常用命令
  • Leetcode 最大正方形
  • ubuntu22.04录屏黑屏,飞书共享屏幕黑屏问题
  • 沙箱模拟支付宝支付3--支付的实现
  • Golang的代码质量分析工具
  • 【Linux】:多线程(读写锁 自旋锁)
  • Java开发 PDF文件生成方案
  • 数学期望和方差
  • 【面试AI算法题中的知识点】方向涉及:ML/DL/CV/NLP/大数据...本篇介绍Tensor RT 的优化流程。
  • BLDC无感控制的驱动逻辑
  • BP神经网络的反向传播算法
  • [实用指南]如何将视频从iPhone传输到iPad
  • Linux Snipaste 截图闪屏/闪烁
  • 【YOLOv5】源码(common.py)
  • Node 如何生成 RSA 公钥私钥对
  • 瑞_Linux中部署配置Java服务并设置开机自启动
  • javaEE-多线程进阶-JUC的常见类
  • Flume拦截器的实现
  • Swift Combine 学习(四):操作符 Operator
  • leetcode 173.二叉搜索树迭代器栈绝妙思路
  • df.groupby([pd.Grouper(freq=‘1M‘, key=‘Date‘), ‘Buyer‘]).sum()
  • LLM - 使用 LLaMA-Factory 部署大模型 HTTP 多模态服务 (4)