本文核心思想:

在python上通过CQL语句来对neo4j数据库进行操作


引言
这篇文章是基于 neo4j 数据库的原生语法 CQL (这里可以理解为mysql里的sql语句),来对neo4j数据库进行读取及对CSV文件进行读取创建节点操作
相对于我之前的这篇python 连接neo4j在创建节点代码上要简单一些

本文所有的操作都是基于CQL语句来对neo4j数据库进行操作,所以在直接上手代码之前,需要对CQL语法有着一定的了解
所以小弟不才,在此对CQL语法进行一点粗鄙的讲解

如果对于CQL语句熟练的hxd,可以直接跳到最后边去看上手代码


CQL创建语句

1,节点创建

 #这里创建的是一个空的节点
create (n:animal ) retun n
# 创建节点并设置节点属性 直接在花括号里边添加属性
create (n:皮卡抽 {皮卡抽名称:"原地抽风",学历:"小学",职务:"抽风大队队长"}) return n

字段解析:

create ,创建
n ,是个变量,你可以随意起名字,比如:b,a,c,fucking,bitch,奥特曼,皮卡抽等等,反正最后你 return 的值是你定义的就行,都可以查出来。
皮卡抽 , 相当于MySQL里的表名称 可以自定义
皮卡抽名字, 相当于MySQL里表的字段名称
return ,返回你查询的信息,如果节点里边包含有多个属性,你可以 return.xx(这里写你要查询的属性字段名称)

2,节点与节点之间的关系创建

# 这里的方法是先创建节点后创建关系,这样比较清晰但是比较麻烦
match (n:皮卡抽 {皮卡抽名称:"螺旋抽风"})
match (b:皮卡抽 {皮卡抽名称:"原地抽风"})merge a = (n)-[r:朋友 {拜把子程度:"互为对方亲爹"}]->(b)
return a,n,b# 这里是关系和节点同时创建  利用到函数(merge)
merge (n:皮卡抽 {皮卡抽名称:"螺旋抽风"})
merge (b:皮卡抽 {皮卡抽名称:"原地抽风"})
# 这里是  顺便设置了 节点与节点之间那条线的 属性
merge a = (n)-[r:朋友 {拜把子程度:"互为对方亲爹"}]->(b)
return a,n,b

字段解析:

match ,相当于mysql 里的 select ,查询语句
merge ,相当于 match 和 create 的结合


CQL 查询语句

查询语句就很简单,有手就行,全都是基于 match 函数来查询

1,基础查询

# 查询皮卡抽这个数据表的所有数据
match (n:皮卡抽) return n
# 查询所有皮卡抽数据的  皮卡抽名称 (这个皮卡抽名称必需要是节点属性里有的)
match (n:皮卡抽) return n.皮卡抽名称

2,条件查询

# 条件查询  皮卡抽名称:"螺旋抽风"
match (n:皮卡抽 {皮卡抽名称:"螺旋抽风"}) return n
# 如果需要返回纯文本
match (n:皮卡抽 {皮卡抽名称:"螺旋抽风"}) return properties(n)
# 查询关联节点
MATCH (n:皮卡抽 {皮卡抽名称:"螺旋抽风"})--(c:皮卡抽) return c
# 查询关联(就是那条线的属性)属性
MATCH (n:皮卡抽 {皮卡抽名称:"螺旋抽风"})-[r:朋友]-(c:皮卡抽) return r


CQL 修改、添加语句

在neo4j里边的修改、添加都是修改节点属性** 用的是 set 函数

1,选取节点属性修改

MATCH (n:皮卡抽 {皮卡抽名称:"螺旋抽风"})
SET n.皮卡抽名称 = '抽风上天'
RETURN n

2,全部节点属性修改

match (n:皮卡抽 {皮卡抽名称:"螺旋抽风"})
set n = {皮卡抽名称:"金刚抽风机",身高:"150",重量:"20"}
return n

3,添加节点属性

match (n:皮卡抽 {皮卡抽名称:"螺旋抽风"})
SET n += {法号:"抽风集大成者-抽神"}
RETURN n

4,选取节点字段进行修改,replace 函数,修改字段

MATCH (n:`皮卡抽`)
set n.学历 = REPLACE(n.学历,"小学","中学")
return n

图4实例,原数据:

修改过后数据:


CQL删除语句

删除所有数据

match (n) detach delete n

如果节点与节点之间有关系连接得先删除关系(就是那条线)

match (n:皮卡抽 {原地抽风})-[r:朋友]-(b:皮卡抽 {螺旋抽风}) delete r

还有一种最方便简洁删除的办法,不过这里是连节点一起删除了,慎用


python+CQL 操作neo4j数据库

通过python+CQL语句来对neo4j数据库进行节点创建

import pandas
from py2neo import Graph #这是操作neo4j的库
# 连接数据库
'''
这里是上传数据,有小伙伴不会的可以看我上边给出的CQL语句,把CQL搞到g.run()里边就可以了
'''
g = Graph('http://neo4j:你的密码@你的IP:7474/db/data/')#neo4j.bat consoledef demo():frame = pandas.read_excel("./data/皮卡抽.xlsx")for i in frame.index:name = frame["皮卡抽名称"].values[i]n3 = frame["法号"].values[i]g.run("create (nb:皮卡抽 {皮卡抽名称:" + "'{}'".format(name) + "}) ""set nb+= {法号: " + "'{}'".format(n3) + "}  return nb")
demo()

python+CQL查询neo4j数据库并对数据进行处理

import pandas
from py2neo import Graph #这是操作neo4j的库
# 连接数据库
'''
这里是查询数据,有小伙伴不会的可以看我上边给出的CQL语句,把CQL搞到g.run()里边就可以了
'''
g = Graph('http://neo4j:你的密码@你的IP:7474/db/data/')#neo4j.bat console
def query():# 查出来的结果我转换成了 ndarray 类型,还有其它类型,但是都没有 ndarray 好处理read = g.run("MATCH (n:`皮卡抽`) RETURN properties(n) ").to_ndarray()res_list = []for i in read:i = i[0]res_list.append(i)print(res_list)
query()

结果:

总结

一位黑人兄弟穿了丝袜,请问这算是黑丝还是肉丝?

python 基于CQL操作neo4j数据库相关推荐

  1. JSP基于JDBC操作MSSQL2008数据库

    JSP基于JDBC操作MSSQL2008数据库 在JSP 中可以使用JDBC 技术,实现对数据库中表记录的查询.修改和删除等操作.JDBC 技术在JSP 开发中占有很重要的地位. JDBC(Java ...

  2. python mysql 基于 sqlalvhrmy_Python基于DB-API操作MySQL数据库过程解析

    Python提供了一个标准数据库API,称为DB-API,用于处理基于SQL的数据库. 与任何底层数据库的交互都可以使用DB-API,因为DB-API在代码与驱动程序之间提供了一个抽象层,可以根据需要 ...

  3. python mysql latin1_python操作Mysql数据库

    python操作Mysql数据库 目前工作中主要使用的还是mysql数据库,这里把常用的函数做下总结. python3选择使用pymysql包进行数据库操作,使用pip3 install PyMySQ ...

  4. python不可以操作access数据库_Python操作Access数据库基本操作步骤分析

    Python编程语言的出现,带给开发人员非常大的好处.我们可以利用这样一款功能强大的面向对象开源语言来轻松的实现许多特定功能需求.比如Python操作Access数据库的功能实现等等.在Python操 ...

  5. neo4j python 算法_python操作neo4j简单实例

    一:neo4j是什么 neo4j:Neo4j是一个高性能的,NOSQL图形数据库,有关于更多neo4j的资料出门右拐 二:python操作neo4j的实现 python中neo4j的操作可以利用驱动包 ...

  6. Python FastAPI 框架 操作Mysql数据库 增删改查

    2 比 1 更容易理解,可以先看2(单文件级别) 1.FastAPI 框架 操作Mysql数据库(项目多文件级别) FastAPI 可以使用任何您想要的关系型数据库. 在这里,让我们看一个使用着SQL ...

  7. python使用py2neo操作neo4j

    安装: pip install py2neo 安装过程中,可能会报错: ERROR: ipython 5.1.0 has requirement prompt-toolkit<2.0.0,> ...

  8. python操作neo4j_在python中操作neo4j数据库的方法

    一.直接通过graph.run() 括号里面为cypher语句,查询关联项的信息 MATCH (e:employee{name:"XXX"})-[r:skill_of]->( ...

  9. python数据库连接池neo4j_在python中操作neo4j数据库的方法

    一.直接通过graph.run() 括号里面为cypher语句,查询关联项的信息 MATCH (e:employee{name:"XXX"})-[r:skill_of]->( ...

最新文章

  1. K8S - Kubernetes简介
  2. SharePoint的WebService的应用
  3. 每天一道LeetCode-----在给定序列中找到满足nums[i]nums[i-1]nums[i]nums[i+1]的位置,要求时间复杂度是O(logN)
  4. 【测试点4】基础实验4-2.8 部落 (25 分)
  5. MFC透明桌面flash金鱼
  6. MapReduce编程中常用的字符操作
  7. PC版微信,也终于上线了这个超赞的功能
  8. 用于指纹验证的C#框架
  9. 【转】细说@Html.ActionLink()的用法
  10. unity下载及安装
  11. Unity手游性能优化的经验总结
  12. 关于MPU6050姿态解算的一阶互补滤波方法(从原理到代码实现)
  13. Red Rover 简单字符串应用
  14. 【有利可图网】PS教程:用滤镜打造3D立体文字效果
  15. qr码生成_在PHP中生成QR码
  16. 搭建hexo博客与yilia主题优化
  17. 谷歌浏览器不支持ocx控件
  18. 华为AC+AP设备上线思路
  19. arctan4怎么用计算机,计算器arctan怎么按
  20. 批量复制到花瓣网上图片素材的原图

热门文章

  1. 3 4j不是合法的python表达式_3+4j不是合法的Python表达式。
  2. 对于操作系统32位amp;64位寻址地址的理解
  3. 2022考研复习第八周
  4. 仪表放大器 电流的检测
  5. Python交流QQ群
  6. 幽默的最高境界——这才叫幽默
  7. python 传奇服务端_Python官方最后通牒:Python 2传奇20年将落幕,Python 3接力!
  8. 从一个男人的角度告诉你如何选老婆 (实在是写的太好了 忍不住转一个)
  9. 被老婆赶出家门,男子嚎啕大哭:击垮一个成年人,一次失业就够了
  10. 手机怎么提高图片分辨率?手机怎么改照片分辨率dpi?