图数据库neo4j入门

neo4j

  • 一、安装
  • 二、简单操作
    • <一>、创建
    • <二>、查询
    • <三>、关系
    • <四>、修改
    • <五>、删除
  • 三、常见报错
    • <一>、默认的数据库密码是neo4j,打开浏览器http://localhost:7474登录不上,报错: Neo.ClientError.Security.Unauthorized: The client is unauthorized due to authentication failure.

一、安装

首先要有对应的java环境,我的是在这里插入图片描述

neo4j官网地址

  • 点击Deployment Center

在这里插入图片描述

  • 往下拉,选择对应的版本,点击下载

在这里插入图片描述

  • 填好个人信息,进入下载页面,保存下面的key,打开软件登录时会用到

在这里插入图片描述

二、简单操作

  • 进入数据库后,点击open,在下图所示的$符号处输入语句

<一>、创建

1、创建节点

create (<node-name>:<label-name>)
  • node-name:要创建的节点名称
  • label-name:要创建的标签名称

eg:

create (s:Student)
  • 上述的Student就类似于关系型数据库的表

2、创建带属性的节点

create (<node-name>:<label-name> {
    <property1-name>:<property1-Value>,
    <property2-name>:<property2-Value>,
    ...,
    <property3-name>:<property3-Value>
})

eg:

create (s:Student{id = 1,name = "李世民",age=2000})
  • 上述的id,name,age就类似于关系型数据库表中的字段

3、merge

  • 类似于oracle中的merge操作,若节点不存在则创建,若节点已存在则进行更新
merge (a:Person {name:"李世民"})
merge (b:Person {name:"李治"})
merge (b)-[:SON]->(a)
  • 条件性创建或匹配
merge (p:Person {name: "嬴政"})
on create set p.age = 30
on match set p.height = 190
  • 上述代码表示检查是否存在一个具有"Person"标签且属性"name"为"嬴政"的节点,如果不存在,则创建一个且设置属性age为30;如果已存在,则设置height属性为190

<二>、查询

1、查询全部

match (s:Student) return s;

2、查询部分

match (s:Student) return s.id,s.name;

3、按条件查询

match (s:Student) where s.age > 20 return s.id,s.name;

4、排序

match (s:Student) where s.age < 20 return s.id,s.name order by s.age desc;

5、分组

  • neo4j的分组不用显式的指定group by,未加聚合函数的字段默认为分组字段
  • 这里一共有三个字段,id,name,age,return id,其中name,age相当于未加聚合字段,即按其分组
  • 相当于sql:select s.id,count(*) from Student s where s.age < 20 group by s.age,s.name
match (s:Student) where s.age < 20 return s.id,count(*);

6、limit语句

match (s:Student) where s.age < 20 return s.id,s.name limit 3;
  • 跳过多少行再limit
match (s:Student) where s.age < 20 return s.id,s.name skip 2 limit 3;

<三>、关系

  • 图数据库与关系型数据库最大的区别就是图可以存储多边关系

1、创建关系

  • 创建一个老师节点
create (t:Teacher{id:20001,name:"王老师",age:35,teach:"语文"}) return t
  • 创建关系,年龄小于20的都是该老师学生
match (t:Teacher),(s:Student) where s.age < 20 
create (t)-[teach:Teach]->(s) 
return t,teach,s;

2、查询全部关系

match (a)-[b]-(c) return a,b,c;

<四>、修改

match (s:Student) where s.name = '李世民' set s.age = 2000 return s;

<五>、删除

1、删除部分节点

match (s:Student) where s.age < 20 delete s;

注:若节点有关系需先删除关系

match (t:Teacher)-[teach]->(s:Student) where s.age < 20 delete teach,s;

2、删除整个节点

match (s:Student) delete s;

3、删除全部节点以及关系(慎用!)

match (n) detach delete n

4、删除节点的属性

  • 可以用remove
match (s:Student{name:"李世民"}) remove s.age;

三、常见报错

<一>、默认的数据库密码是neo4j,打开浏览器http://localhost:7474登录不上,报错: Neo.ClientError.Security.Unauthorized: The client is unauthorized due to authentication failure.

  • 找到neo4j.conf文件

在这里插入图片描述

  • 最直接方法是修改dbms.security.auth_enabled=false,表示禁用身份验证,任何人可以无需凭证访问数据库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/374745.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mac利用brew安装mysql并设置初始密码

前言 之前一直是在windows上开发后段程序&#xff0c;所以只在windows上装mysql。(我记得linux只需要适应yum之类的命令即可) 另外, linux的移步 linux安装mysql (详细步骤,初次初始化,sql小例子,可视化操作客户端推荐) 好家伙&#xff0c;我佛了&#xff0c;写完当天网上发…

【十】【C++】string类的模拟实现

浅拷贝 浅拷贝&#xff08;Shallow Copy&#xff09;是对象复制的一种方式&#xff0c;其中复制对象的过程仅仅复制对象的值&#xff0c;而不复制引用所指向的实际对象或数据。这意味着原始对象和拷贝对象会共享相同的引用或指针指向的数据。 浅拷贝的特点&#xff1a; 共享…

深入解析Elasticsearch的内部数据结构和机制:行存储、列存储与倒排索引之行存(一)

在当今的大数据时代&#xff0c;高效的数据检索和分析能力已成为许多应用程序的核心需求。Elasticsearch&#xff0c;作为一款强大的分布式搜索和分析引擎&#xff0c;正是为了满足这些需求而诞生的。它之所以能够在海量数据中实现毫秒级的搜索响应&#xff0c;以及灵活的数据分…

2024/02/06

画出TCP三次握手和四次挥手的示意图 三次握手 四次挥手 并且总结TCP和UDP的区别 TCP: TCP提供面向连接的&#xff0c;可靠的数据传输服务传输过程中&#xff0c;数据无误、数据无丢失、数据无失序、数据无重复 TCP会给每个数据包编上编号&#xff0c;该编号称之为序列号每个序…

Minio Linux 安装

1.下载地址 MinIO | Code and downloads to create high performance object storage 2.创建文件相关文件夹 mkdir 3.赋权 chomd x minio 4.创建用户组和租户 groupadd minio ### useradd minio -g minio ### 验证 cat /etc/passwd5.创建配置文件 vi minio.confMINIO_VOLU…

带着问题阅读源码——Spring MVC是如何在Spring Boot中注入的?

Spring MVC简介 Spring Web的MVC框架旨在全面处理HTTP请求&#xff0c;它具备以下特性&#xff1a; 可配置的处理程序映射&#xff1a;允许开发者根据需要将特定的URL路径映射到相应的处理程序上。 视图解析&#xff1a;框架能够根据处理程序返回的逻辑视图名&#xff0c;解析…

微软.NET6开发中解决方案和项目的概念

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;看到不少初学者在学习编程语言的过程中如此的痛苦&#xff0c;我决定做点什么&#xff0c;下面我就重点讲讲微软.NET6开发中解决方案和项目的概念。我将介绍 Visual Studio 2022的解决方案和项目的结构及组成…

UE5 获得UE内的音频组件与频谱

打开Audio Synesthesia插件 在Sounds内Analysis选择Synesthesia NRT 创建好后选择Settings,下面的sound选择你要选择的音乐 在Actor里添加Constant QNRT变量,选择刚刚创建的NRT 添加Audio组件 这里需要先运行SetSound,然后获得当前音频的总长度,Get Duration并设置变量 绑定时间…

zabbix-监控应用程序(Mysql、Nginx)

基础环境&#xff1a;zabbix服务端、两台zabbix被监控端、分别安装Mysql和Nginx环境拓扑图&#xff1a; 实验目标&#xff1a;可以通过zabbix监控到被监控端上安装的mysql与nginx&#xff0c;通过zabbix实时检测mysql和nginx的数据。实验步骤&#xff1a;1.在8.7服务器上安装My…

Asp .Net Core 系列:Asp .Net Core 集成 NLog

简介 NLog是一个基于.NET平台编写的日志记录类库&#xff0c;它可以在应用程序中添加跟踪调试代码&#xff0c;以便在开发、测试和生产环境中对程序进行监控和故障排除。NLog具有简单、灵活和易于配置的特点&#xff0c;支持在任何一种.NET语言中输出带有上下文的调试诊断信息…

Linux 命令基础

Shell概述 Linux操作系统的Shell作为操作系统的外壳&#xff0c;为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。 Shell是用户和Linux内核之间的接口程序&#xff0c;如果把硬件想象成一个球体的中心&#xff0c;内核围绕在硬件的外层管理着…

基于Python机器学习算法农业数据可视化分析预测系统(完整系统源码+数据库+详细文档+论文+部署教程)

文章目录 基于Python机器学习算法农业数据可视化分析预测系统完整源码获取方式在文章末尾一、项目简介二、开发环境三、项目技术四、功能结构五、功能实现模型构建封装类用于网格调参训练模型系统可视化数据请求接口模型评分 0.5*mse 六、系统实现七、总结完整源码获取 基于Pyt…

Qt程序设计-自定义QLineEdit控件添加鼠标单击事件

本文讲解Qt自定义QLineEdit控件添加鼠标单击事件。 QLineEdit控件默认没有单击事件,但是项目开发中有时需要单击事件,比如单击QLineEdit控件弹出软键盘。具体实现过程如下: 创建项目,在项目中添加一个类,命名为MyLineEdit 输入继承QLineEdit #ifndef MYLINEEDIT_H #defi…

Redis(十二)Bigkey

文章目录 游标案例生成100万测试数据key生产上限制keys */flushdb/flushall等危险命令不使用keys *&#xff1a;scan Biigkey案例多大算大发现bigkey渐进式删除生产调优示例问题 游标案例 生成100万测试数据key shell: for((i1;i<100*10000;i)); do echo "set k$i v…

分享76个节日PPT,总有一款适合您

分享76个节日PPT&#xff0c;总有一款适合您 76个节日PPT下载链接&#xff1a;https://pan.baidu.com/s/1-j7toLaBUBAJbkd85xe4VQ?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易…

HiveSQL——设计一张最近180天的注册、活跃留存表

0 问题描述 现有一个用户活跃表user_active(user_id,active_date)、 用户注册表user_regist(user_id,regist_date)&#xff0c;表中分区字段都为dt(yyyy-MM-dd)&#xff0c;用户字段均为user_id; 设计一张 1-180天的注册活跃留存表&#xff1b;表结构如下&#xff1a; 1 数据分…

【知识整理】一文理解系统服务高可用

一、如何理解高可用 1、什么是高可用 高可用性&#xff08;英语&#xff1a; High Availability&#xff0c;缩写为 HA&#xff09;&#xff0c;指系统无中断地执行其功能的能力&#xff0c;代表系统的可用性程度&#xff0c;是进行系统设计时的准则之一。 2、决定可用性的两…

【Go】一、Go语言基本语法与常用方法容器

GO基础 Go语言是由Google于2006年开源的静态语言 1972&#xff1a;&#xff08;C语言&#xff09; — 1983&#xff08;C&#xff09;—1991&#xff08;python&#xff09;—1995&#xff08;java、PHP、js&#xff09;—2005&#xff08;amd双核技术 web端新技术飞速发展&…

前端学习第四天

目录 一、复合选择器 1.后代选择器 2.子代选择器 3.并集选择器 4.交集选择器 5.伪类选择器 1.伪类-超链接&#xff08;拓展&#xff09; 二、CSS特性 1.继承性 2.层叠性 3.优先级 1.优先级-叠加计算规则 2.emmet写法 三、背景属性 1.背景图 ​编辑2.背景图平铺方…

JDK和CGLIB动态代理原理

动态代理会在程序运行时&#xff0c;自动的为原对象生成一个代理对象。该代理对象的方法会有逻辑上的增强&#xff0c;其一方面会执行增强的逻辑&#xff0c;另一方面其实就是通过反射调用被代理类的方法&#xff0c;这个调用过程跟静态代理就很像了。 JDK动态代理Demo如下&…