首页 > 数据库 >图数据库Neo4j概念、应用场景、安装及CQL的使用

图数据库Neo4j概念、应用场景、安装及CQL的使用

时间:2023-12-03 11:07:23浏览次数:40  
标签:return name CQL 数据库 person Neo4j 节点 match


一、图数据库概念

引用Seth Godin的说法,企业需要摒弃仅仅收集数据点的做法,开始着手建立数据之间的关联关系。数据点之间的关系甚至比单个点本身更为重要。

传统的**关系数据库管理系统(RDBMS)**并不擅长处理数据之间的关系,那些表状数据模式和呆板的结构难以添加新连接或不同类型连接。为了利用这些数据关系,需要一种能将关系信息存储为一等实体的新型数据库技术,这种技术就是图数据库。

图数据库不仅能有效存储数据点之间的关系,而且非常灵活,适合添加新的关系类型,并使数据模型适应新的业务需求。

除了数据库本身,图技术还涵盖了图数据科学的新兴领域,适合预测分析和机器学习,而所有的图数据可视化适合针对特定目的的数据发现和探索。

二、图数据应用场景

1、欺诈检测
2、实时推荐引擎
3、知识图谱
4、反洗钱
5、主数据管理
6、供应链管理
7、增强网络和IT运营管理能力
8、数据谱系
9、身份和访问管理
10、材料清单

三、安装Neo4j

有三种安装方式,一种是社区版,在官网上下载社区版本;第二种是基于docker进行安装的;第三种是neo4j desktop安装,本文介绍第一种安装社区版本。
官网 https://neo4j.com/deployment-center/#community
如果是4.x的版本,jdk要是符合11的,因为我们的jdk版本是8的,安装的版本是3.5x。

* bin目录:用于存储Neo4j的可执行程序;
* conf目录:用于控制Neo4j启动的配置文件;
* data目录:用于存储核心数据库文件;
* plugins目录:用于存储Neo4j的插件;

在bin目录下使用neo4j console启动

图数据库Neo4j概念、应用场景、安装及CQL的使用_neo4j


默认账号密码neo4j/neo4j, 可以修改密码。

图数据库Neo4j概念、应用场景、安装及CQL的使用_数据_02


图数据库Neo4j概念、应用场景、安装及CQL的使用_删除节点_03

Neo4j-CQL使用

neo4j-CQL简介
Neo4j的Cypher语言是为了处理图形数据而构建的,CQL代表Cypher查询语言,像Oracle数据库具有查询语言SQL,Neo4j具有CQL作为查询语言。
CQL命令 用法

CQL命令

用法

CREATE

创建节点,关系和属性

MATCH

检索有关节点,关系和属性数据

RETURN

返回查询结果

WHERE

提供条件过滤检索数据

DELETE

删除节点和关系

REMOVE

删除节点和关系的属性

ORDER BY

排序检索数据

SET

添加或更新标签

节点、关系的方向、关系的标签

常用的CQL命令
match (n:person {name: ‘孙悟空’}) return n.name, id(n)
match (n:person) where n.name=‘孙悟空’ return n.name, id(n)
match (n:person {name:‘孙悟空’}),(m:xiyouRelation) where m.from =‘孙悟空’
return n.name, m.relation, m.to

创建节点

创建节点
create (n)
创建多个节点
create(n),(m)
创建带标签和属性的节点并返回节点
create (n: person {name: '孙悟空'}) return n

创建关系
先创建节点
create(:student{name:"xiaohong"}), (:student{name:"zhangsan"})

查询节点
match (n:student {name: "小明"}),(m:student {name: "小红"})
create (n)-[r:同学]-> (m) return n.name, type(r), m.name

创建关系
match (n:person {name: '孙悟空'}), (m:xiyouRelation),(s: person) where
m.from = '孙悟空' and m.to = s.name
create (n)-[: 西游人物关系{relation:m.relation}]->(s)
return n.name, m.relation, s.name
就是把 n 指向 s

where子句
使用where子句来过滤match查询的结果。

# 创建关系
match (n:person), (m:person) where n.name='孙悟空' and m.name='猪八戒' 
create (n)- [r:师弟]->(m) return n.name, type(r), m.name

Delete删除
Neo4j使用CQL Delete子句
删除节点前,先删除关系
删除节点及相关节点和关系
match (n: person{name: “白龙马”})delete n
删除关系
match (n:student) -[r]->(m:student) where n.name=“张三” and m.name= “小红” delete r
return type®

Match p=(:person {name : ‘孙悟空’})-[r:‘西游人物关系’]->() return p

Remove删除
删除属性,
create(n:student: {name:“张三”, age:18})
match (n:person {name:“张三”}) remove n:person return n

Set 改值
match (n:role {name:“fox”}) set n.age =32 return n

Order by排序
match (n: “西游”) return id(n), n.name order by id(n) desc

IN操作符
与SQL一样,Neo4j CQL提供了一个IN运算符,可以是集合
match (n: ‘西游’) where n.name in[‘孙悟空’,‘唐僧’] return id(n), n.name, n.tail , n.label


标签:return,name,CQL,数据库,person,Neo4j,节点,match
From: https://blog.51cto.com/u_16084838/8665658

相关文章

  • 一键导出数据库中表结构定义(数据字典)的工具
    导出数据库中标的定义,即所谓的数据字典一、新建maven工程中加入依赖在maven工程的pom.xml中添加依赖<dependency><groupId>cn.smallbun.screw</groupId><artifactId>screw-core</artifactId><version>1.0.5</version></dependency>......
  • MySQL数据库管理系统
    MySQL数据库管理系统一、知识点归纳本章讨论了MySQL关系数据库系统;介绍了MySQL并指出了它的重要性;展示了如何在Linux机器上安装和运行MySQL;演示了如何使用MySQL在命令模式和批处理模式下使用SQL脚本创建和管理数据库;说明了如何将MySQL与C编程相结合;演示了如何将MySQL与PHP......
  • 使用JookDB将Oracle数据库迁移到Mysql
    JookDB是多平台的数据库开发管理工具,如Sql输入提示、导入导出、表设计、数据编辑等功能强大,而且是C++开发的界面非常丝滑流畅。可以免费支持Oracle、Mysql、SqlServer数据库管理。要通过JookDB将Oracle数据库迁移到Mysql需要先添加连接到这两个数据库的数据源。选择菜单【文件/新建......
  • Java连接MySQL数据库(maven构建)
    构建方式:Java+MySql+Maven1.创建项目2.导入依赖选择目录中的pom.xml文件,导入mysql连接驱动依赖注意这里版本使用的是MySql8.0,MySql在8.0版本有较大改动<dependencies><dependency><groupId>mysql</groupId><ar......
  • openGauss学习笔记-138 openGauss 数据库运维-例行维护-检查时间一致性
    openGauss学习笔记-138openGauss数据库运维-例行维护-检查时间一致性数据库事务一致性通过逻辑时钟保证,与操作系统时间无关,但是系统时间不一致会导致诸多潜在问题,主要是后台运维和监控功能异常,因此在月度检查时建议检查各个节点的时间一致性。138.1操作步骤以操作系统用户o......
  • SAP ABAP 里如何高效找到修改某个数据库表字段的 ABAP 程序的三种思路介绍试读版
    我的知识星球里,有朋友提问:公司的SAP中,总部开发了一个功能去更新采购订单行上的收货地址字段EKPO-ADRN2,我尝试着去Debug,但找不到最终是哪段程序更新了这一个字段。SAT也用了,也发现不了。不过我对SAT也不熟。有什么思路可以快速Debug找到那段更新程序不?其实这种需......
  • 数据库总结复习(sql应用题 一)
    目录前言mysql基础语句ddl示例1创建表dcl授权收回权限dml结合事务索引分类格式视图行列子集视图可更新性存储过程示例1带返回值示例2游标示例3结合简单事务触发器前言本文针对考纲上的30分sql应用题所涉及到的知识进行归纳总结。会分为两篇文章,此篇为mysql语句。mysql基......
  • Flask ORM 学习笔记Part02:Flask-Migrate的使用,数据库创建与数据导入
    在上一篇学习笔记中,定义了各个类之间的关系。本篇笔记就来研究一下,将model类转数据库一般来说在Flask环境下,使用Flask-Migrate这个扩展,用于简化数据库模型的迁移管理。数据库迁移是在应用开发过程中对数据库模型进行更改的一种方式,以确保数据库结构与应用代码的演变保持同步。Flas......
  • 20211316郭佳昊 《信息安全系统设计与实现(上)》 第十二周学习总结 MySQL数据库系统
    一、任务要求[1]知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)我在学****知识点,请你以苏格拉底的方式对我进行提问,一次一个问题核心是要求GPT:请你以苏格拉底的方式对我进行提问然后GPT就会......
  • [VBA] 实现SQLserver数据库的增删改查
    [VBA]实现SQLserver数据库的增删改查问题背景用于库存管理的简单Excel系统实现,能够让库管员录入每日出入库信息并进能够按日期查询导出数据,生成简要报表,以及数据修改与删除。非科班且对VB语言和数据库语言未系统学习,有一点C语言与Python基础,有不足之处还请指教。实现过程数......