python与excel互通_【python】python vs Excel ( 与mysql数据库之间的交互)

【python】python vs Excel ( 与mysql数据库之间的交互)

通过python与mysql数据库做交互

到目前为止大部分案例的演示数据都是基于文件进行读取的。那么python如何跟数据库之间做交互才是未来我们真正需要关心的。因为我们的数据最终还是要存储到数据库中去的。

python与数据库之间的交互有很多。可以通过第三方包及API与不同的数据库之间做交互。我个人的环境资源有限,因此这篇稿子是主要记录python是如何同mysql数据库之间进行交互的。

一,安装并配置mysql数据库

https://www.cnblogs.com/liupengpengg/p/7092789.html

上述是我mysql数据库的章节,感兴趣的可以按照此步骤进行安装。这个是基于windows平台的安装。如果您装的是linux的话,可以yum install mysql 或者通过官网下载更新版本的mysql到本地安装。

友情提示:mysql数据库安装过后,windows的话要自行创建my.ini配置文件。里面的配置非常的重要如果配置项有问题,会导致mysql的services不能被正常启动。建议配置项一个个配置然后restart mysql的服务,能启动说明此配置项没问题。另外mysql配置完毕后默认很多权限及参数是OFF的。比如说自动load本地file到数据库默认就是不被打开的。所以要在my.ini中配置允许load本地文件才可以通过load data infile命令将本地文件传入mysql。具体我就不一一讲解了。遇到问题请问度娘。

我把我本人遇到的坑的解决方案链接提供在下方了。如果您也遇到了请尝试解决。

https://my.oschina.net/u/1018607/blog/857728

https://blog.csdn.net/xb1231232/article/details/106181694

二,安装 Heidisql (免费的mysql图形化管理工具)

https://www.heidisql.com/download.php

三,安装mysql依赖包

安装完mysql数据库后,对应的也要在python中安装对应的依赖包,如下。

import pymysql

from sqlalchemy import create_engine

如果你直接在python IDE中导入这两个包是肯定不存在的。如果您用的事pycharm的话可以尝试intall这两个包如果安装成功最好。如果不行请通过windows命令行中的pip来进行安装。

建议不管您用的是什么IDE都直接通过pip install依赖包。

pip install pymysql

pip install sqlalchemy

四,安装EditPlus 5 或者 EmEditor工具

标题这两个工具可以将我们Excel中导出的xlsx,csv, txt 等格式的数据做清洗用的。可以帮助我们更好的对数据进行规整,把规整过后的数据存入数据库。

EditPlus 5 安装及使用

https://blog.csdn.net/syz201558503103/article/details/102327356

EmEditor 安装及使用

https://www.cnblogs.com/eyesfree/p/9993304.html

https://www.cr173.com/html/25305_1.html

五,python中操作mysql数据库案例演示

注释:首先如何使用mysql这里不作解释,如果有疑问请参照我mysql篇的章节。以下的所有演示都是基于数据库已经有数据,或者说有空表,如何用python对其进行增删改查访问等操作的演示。下面这个就是我用HeidiSQL打开的MySQL数据库。接下来我们进行的所有操作都围绕all_students这章表来进行。

20200731142759-5f242a6f06afa.jpg

1. 通过python打开mysql中的all_students这章表

注意:代码依然是基于jupyther来运行的。如果您用的是.py的文件打印请都用print()来运行。

#%%

import pandas as pd

import pymysql

from sqlalchemy import create_engine

#链接mysql数据库(指定到database名)

con = create_engine("mysql+pymysql://root:root@localhost/liupeng")

#链接到具体的table

read_sql01 = pd.read_sql('all_students',con)

read_sql01.head(10) #读取数据表内容(10行)

20200731142801-5f242a715a392.jpg

2. 按照指定的表头来读取mysql数据

#按照指定的表头来读取数据

read_sql02 = pd.read_sql('all_students',con,columns=["cls_id","exam_nu","stu_name","gender","total"])

read_sql02.head(3)

20200731142802-5f242a720d351.jpg

3. 按照mysql语句对数据进行筛选

#%%

#通过reqd_sql(sql语句)的方式读取部分数据

read_sql03 = pd.read_sql('select cls_id,stu_name,total from liupeng.all_students where cls_id < 3 order by total',con=con)

read_sql03

20200731142802-5f242a72ab046.jpg

4. 向mysql数据表添加一条数据(增)

注释:对于mysql中的增删改所用到的命令都是con.execute函数!!!

数据插入前:

20200731142803-5f242a7364809.jpg

#执行sql的增删改操作用.execute("sql语句")的函数

#追加一条sql语句到mysql数据库

con.execute("insert into liupeng.all_students values ('1','刘景芮',100,100,98,298,'女',2018746)")

数据插入后:

20200731142804-5f242a7424e24.jpg

5. 向mysql数据表修改一条数据(改)

注意:这里我查的是exam_nu=2018746,因为查名字已经变成关羽了。所以用唯一的id号来进行查询

con.execute("update liupeng.all_students set stu_name='关羽' where exam_nu=2018746 ")

20200731142804-5f242a74baf54.jpg

6. 向mysql数据库删除一条数据(删)

注意:条目被删除后无论你指向stu_name还是exam_nu,返回结果都是0,因为数据本身已经被删除。

20200731142805-5f242a7553a8c.jpg

20200731142806-5f242a7624336.jpg

7. 如何将本地数据添加到MySQL数据表中

强调:如果您的Mysql数据库的my.ini没有做以下的配置建议把配置写到my.ini中。如果您只是临时使用一下,请按照我的方法运行。不然MySQL不支持本地文件的加载。

20200731142806-5f242a76c263c.jpg

例如我们把以下一个txt文本导入到mysql数据库中

1魏薇735954186女2018010

1朱瑞麒596034153女2018012

1黄慧婕738184238女2018027

1张章605548163男2018094

1沈政宇517127149男2018108

1宋承泽687453195男2018113

1马彦冰777252201女2018148

1马恺618372216男2018166

1王锦程809683259男2018167

1闫瑾746464202女2018196

1王晓渝45122885女2018198

1王浩然798669234女2018246

1徐菁549060204女2018256

创建MySQL对应的表格,我个人比较懒,因此我直接通过like命令复制了all_students的表结构来创建的stu_test表。

20200731142807-5f242a776b745.jpg

创建过后的结构是这样的。。其中没有任何的内容只有结构!!

20200731142808-5f242a784c7fe.jpg

导入数据到mysql中的stu_test表中。对于数据的导入可以直接通过图形化界面来做。也可以通过命令行来做。

这里为了省事,我直接在底层的mysql数据库通过load data infile的方法把数据追加到stu_test表格中了。

20200731142809-5f242a7903703.jpg

当然如果您想通过python中的语句来将数据导入mysql数据库中也是可以的。在此我奉上以下链接希望对大家有所帮助。

https://blog.csdn.net/xiaoxiao_plus/article/details/94456986

https://www.cnblogs.com/bjwu/p/10250759.html

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于matlab的车牌识别系统程序,基于matlab的车牌识别系统的设计(附程序).doc

基于matlab的车牌识别系统的设计(附程序).doc 1车牌识别系统的设计1&#xff0e;摘要&#xff1a;汽车牌照自动识别系统是制约道路交通智能化的重要因素,包括车牌定位、字符分割和字符识别三个主要部分。本文首先确定车辆牌照在原始图像中的水平位置和垂直位置,从而定位车辆牌照…

python英文词云代码_使用python实现个性化词云的方法

先上图片词云图 需要模板 pip install jieba pip install wordcloud 还需要安装另外两个东西这两个我也不太懂借鉴百度写上去的 pip install scipy pip install matplotlib 因为用ubuntu系统所有没有windows那么麻烦&#xff0c;也没有那么多报错 看到好多人制作自己的词云有没…

linux监测node进程,通过node_exporter监控linux服务器一

前言&#xff1a;node_exporter用于监控*nux系统&#xff0c;使用go编写的收集器prometheus服务器&#xff1a;192.168.199.222监控服务器 192.168.199.221在192.168.199.221下载node_exporterwget https://github.com/prometheus/node_exporter/releases/download/v*/node_exp…

k8s 离线安装_阿里开源 k8s 事件通知服务

背景在 Kubernetes 开源生态中&#xff0c;资源监控有 metrics-server、Prometheus等&#xff0c;但这些监控并不能实时推送 Kubernetes 事件&#xff0c;监控准确性也不足。当 kubernetes 集群中发生 Pod因为 OOM 、拉取不到镜像、健康检查不通过等错误导致重启&#xff0c;集…

kali linux解密栅栏密码,最详细bugku加密小白解法---持续更新!

bugku加密&#xff01;安排本文持续更新1 摩斯密码2 栅栏密码3 Ook密码4 brain密码5 easycrypto密码6 base647 散乱的密文8 凯撒密码9 一段base6410 &#xff01;&#xff1f;11 []-12 奇怪的密码--凯撒变式13 托马斯杰斐逊--转轮加密14 伪加密15 告诉你个秘密16 这不是MD517 贝…

linux命令 重定向%3e,linux输出信息调试信息重定向

在运行linux的时候有所有的调试信息可以分为三个部分1、bootloader输出信息U-Boot 1.3.2(Nov 19 2016 - 22:02:08)DRAM: 64 MBFlash: 512 kBNAND: 64 MiBIn: serialOut: serialErr: serialHit any key to stop autoboot: 0[yqliu2410 #] tftpFound DM9000 ID:90000a46 at addre…

360加固一键脱壳工具2020_如何脱壳加固过的Apk并利用其API“走近数据库”

0x00 寻找突破口打开首页,emm就一个登录页面,没了随便写点东西提交看看天生手欠的我一不小心就多输了一个单引号WDNMD,除了数字和字母其他都不行?这叫我怎么测?刚刚要放弃,就在这时,首页的一个二维码吸引了我正是安卓端的软件,眼前一亮,仿佛找到了打开新世界的大门开开心心地…

python 函数递归_Python零基础之三元表达式、函数递归、匿名函数教程!超级详细!...

目录一、三元表达式二、函数递归 递归调用的定义递归分为两个阶段&#xff1a;递归&#xff0c;回溯三、匿名函数 什么是匿名函数&#xff1f;有名字的函数与匿名函数的对比lambda匿名函数的应用四、内置函数 #注意&#xff1a;内置函数id()可以返回一个对象的身份&#xff0c;…

linux 内核空间占用cpu百分比过高,linux下分析java程序占用CPU、内存过高

一、CPU过高分析1)使用TOP命令查看CPU、内存使用状态可以发现CPU占用主要分为两部分&#xff0c;一部分为系统内核空间占用CPU百分比&#xff0c;一部分为用户空间占用CPU百分比。其中CPU状态中标示id的为空闲CPU百分比。当空闲CPU百分比越低&#xff0c;说明CPU占用率越高。2)…

springboot 获取application参数_LOOK ! SpringBoot的外部化配置最全解析

本篇要点介绍各种配置方式的优先级。介绍各种外部化配置方式。介绍yaml的格式及原理。介绍如何绑定并测试类型安全的属性配置。介绍ConfigurationProperties与Value的区别。一、SpringBoot官方文档对于外部化配置的介绍及作用顺序SpringBoot支持多种外部化配置&#xff0c;以便…

spark入门_入门必读 | Spark 论文导读

Resilient Distributed Datasets: A fault-tolerant abstraction for in-Memory cluster computing&#xff0c; 是讲述 Spark RDD 的基础论文&#xff0c;通读论文能给我们带来全景的 Spark 知识面摘要&#xff1a;RDD,全称Resilient Distributed Dataset,可伸缩性数据集。使用…

Qt在linux下无法输入中文,Ubuntu使用集成开发环境QT无法输入中文的解决方法

QT Creator是轻量级集成开发环境&#xff0c;在Ubuntu系统操作中&#xff0c;使用QT时无法输入中文&#xff0c;遇到这种情况要如何处理呢&#xff1f;下面小编就给大家介绍下Ubuntu如何解决QT无法输入中文问题。1 安装搜狗输入法&#xff0c;(如果你想用ubuntu自带的输入法也没…

altium pcb 信号高亮_在PCB设计中高效的放置元件技巧

在印刷电路板设计中&#xff0c;设置电路板轮廓后&#xff0c;将零件(占地面积)调用到工作区。然后将零件重新放置到正确的位置&#xff0c;并在完成后进行接线。组件放置是这项工作的第一步&#xff0c;对于之后的平滑布线工作是非常重要的工作。如果在接线工作期间模块不足&a…

linux升级ssh到6.6版本,CentOS6.5 openssh升级到openssh-7.6版本

CentOS6.5 openssh升级到openssh-7.6版本2018-8-3 foooy升级前保证故障后能现场处理&#xff0c;或者远程卡处理&#xff0c;否则不要这样直接升级yum install -y gcc openssl-devel pam-devel rpm-buildwget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.6…

python中csv文件通过什么表示字符_python_写入csv文件时候无法进行原样写入(写入字符串中出现逗号,时候,csv文件自动分成两个单元格)...

问题描述&#xff1a; 写入csv文件时候无法进行原样写入(写入字符串中出现逗号","时候&#xff0c;csv文件自动分成两个单元格) with open("test.csv","w") as f: f.write("闲暇时&#xff0c;我会被一段&#xff0c;配乐诗朗诵,所感动,悲伤…

rabbitmq怎样确认是否已经消费了消息_阿里Java研发二面:了解RabbitMQ?说说RabbitMQ可靠性投递...

上期写到高并发下RabbitMq消息中间件你应该介么玩今天给小伙伴说说&#xff01;有自己看法的也可以在评论区留言探讨&#xff0c;也可以转发关注下我以后会长期分享&#xff01;目录&#xff1a;确保消息发送到RabbitMQ服务器确保消息被正确的路由确保消息在队列正确地存储确保…

linux 装完yum不能用,【linux】yum 不能安装应用,提示There are no enabled repos Run “yum repolist all”...

回答一般来说著名的linux系统基本上分两大类&#xff1a;1 RedHat系列&#xff1a;Redhat、Centos、Fedora等2 Debian系列&#xff1a;Debian、Ubuntu等RedHat 系列&#xff1a;1 常见的安装包格式 rpm 包&#xff0c;安装rpm包的命令是 “rpm -参数”2 包管理工具 yum3 支持ta…

更新fielddata为true_线程与更新UI,细谈原理

前言 相信不少读者都阅读过相类似的文章了&#xff0c;但是我还是想完整的把这之间的关系梳理清楚&#xff0c;细节聊好&#xff0c;希望你也能从中学到一些。进入正题&#xff0c;大家应该都听过这样一句话——“UI更新要在主线程&#xff0c;子线程更新UI会崩溃”。久而久之就…

linux sublime3 插件安装插件,手动安装sublimeText3插件

就在今天下午&#xff0c;我花了一个小时的时间安装sublime3插件stylus&#xff0c;就是为了让stylus文件能够高亮显示。网上找了很多方法&#xff0c;可以通过package control安装&#xff0c;然而&#xff0c;我的sublime package control能够正常显示&#xff0c;插件列表也…

vbs打开软件光标停在第一个输入框_三维设计软件,3DMAX最全快捷键大全,赶快收藏哦...

文章后有获取软件的方式。基本快捷键A-角度捕捉开关 B-切换到底视图C-切换到摄象机视图D-封闭视窗E-切换到轨迹视图F-切换到前视图G-切换到网格视图H-显示通过名称选择对话框I-交互式平移J-选择框显示切换K-切换到背视图L-切换到左视图M-材质编辑器N-动画模式开关O-自适应退化开…