PyMySQL模块进行增删改查的操作。简单来讲,核心步骤有两步:链接数据库,读取CSV文件并导入数据表,然后查询数据,将数据表和计算结果导出为CSV文件。下面一起来具体看看吧~

Step1:安装PyMySQL模块

在正式动手之前,我们需要先安装PyMySQL模块。

(1)使用pip安装,清华镜像:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pymysql

(2)使用conda安装

conda install pymysql

Step2:从CSV文件导入数据到MySQL数据表

安装好以后,我们来进行第二步操作,从CSV文件导入数据到MySQL数据表。与内置的SQLite模块一样,PyMySQL也遵循DB-API规范,因此我们前面开发的大多数代码经过简单修改即可使用,以下代码中主要注释了与SQLite操作的不同之处。

#导入pymysql模块

import pymysql

#连接数据库,这里需要提供许多参数给connect方法

# host服务器ip地址

# user用户名password密码

# db数据库名称

cn = pymysql.connect(host='localhost', user='pandas', password='pandas', db='pandas')

# port端口 缺省值为3306

#新建游标对象 :和SQLite一样

cur = cn.cursor()

#建表SQL语句,小技巧: if not exists不会引起表已经存在的错误

#  MySQL使用的是auto_increment, 注意有个下划线

artist_create_table = """

create table if not exists artist(

id integer  primary key auto_increment not null,

name varchar(255)

)

"""

try:

cur.execute(artist_create_table)

print("成功建表")

except:

pass

#插入语句,使用%(id)s意味着我们会用字典对象替换数据

# PyMYSQL使用的语法是%(名称)s

artist_insert ="""

insert into artist(id, name) values ( %(id)s, %(name)s )

"""

#以下代码和SQLite一样

#导入csv模块

import csv

#用with语法,打开文件

with open('artist.csv', newline='') as csvfile:

#用DictReader类,方便开发

reader = csv.DictReader(csvfile)

#按行遍历csv文件

for row in reader:

try:

#按行执行SQL语句,注意,这里使用 字符串的format方法将数据替换进去

#如果可以相信数据的安全性可以这样做,如果数据来自互联网,需要用另一种更加安全的方式

cur.execute(artist_insert,  {"id": row['id'], "name": row['name'] } )

except Exception as e:

print(e)

print("成功导入CSV数据" )

#提交事务

cn.commit()

#关闭数据库

cn.close()

Step3:将数据表与计算结果导出为CSV文件

接下来我们使用execute方法获取数据,然后输出到CSV文件,与SQLite代码类似:

#导入pymysql模块

import pymysql

#连接数据库

cn = pymysql.connect(host='localhost', user='pandas', password='pandas', db='pandas')

#新建游标对象

cur = cn.cursor()

#用with语法打开文件

with open("artist_data.csv", 'w') as csvfile:

#首先读取description写入CSV的第一行

#执行SQL语句

results= cur.execute("select * from artist")

#获得description

description = cur.description

#新建CSV writer对象

writer = csv.writer(csvfile)

#写入列名称

writer.writerow([ x[0] for x in description ] )

#遍历数据

for row in cur:

#写入每一行数据

writer.writerow(row)

print("成功写入CSV文件")

以上我们使用PyMySQL模块为例,介绍了如何使用Python对MySQL数据库进行增删改查,大家都学会了吗?

pymysql语法_如何使用PyMySQL模块进行增删改查?相关推荐

  1. mysql 原生 添加数据_手撸Mysql原生语句--增删改查

    mysql数据库的增删改查有以下的几种的情况, 1.DDL语句 数据库定义语言: 数据库.表.视图.索引.存储过程,例如CREATE DROP ALTER SHOW 2.DML语句 数据库操纵语言: ...

  2. sql 基础语法 创建数据库和数据表 数据增删改查 分组查询 子查询回顾

    参考链接: SQL教程 MySQL教程 一.创建数据库语法 --用master数据库 use master --判断数据库是否存在,若存在则删除 if exists (select * from sy ...

  3. 十天学会mysql增删改查_第11天 MySQL-SQL普通增删改查

    一.如何设计表****关系 自然界中的关系通过数据对应的模式进行分析之后,得出结果:可以大致分为三种,一对一,一对多(多对一),多对多 一对多 一对多与多对一是一个概念,指的是一个实体的某个数据与另外 ...

  4. django中判断当前user具有是否有对模块的增删改查权限

    首先简单了解一下user的一些属性 User对象 User对象是认证系统的核心.用户对象通常用来代表网站的用户,并支持例如访问控制.注册用户.关联创建者和内容等.在Django认证框架中只有一个用户类 ...

  5. Django简易测试平台三:模块的增删改查

    1.新建模块base INSTALLED_APPS 增加模块名:base 2.路由设计 1)API/urls.py 配置: 新增如下内容 url(r'^base', include("bas ...

  6. Python3 xml模块的增删改查

    xml数据示例 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <data>     < ...

  7. python单链表操作_单链表的创建、增删改查等操作(Python实现)

    单链表的创建.增删改查等操作(Python实现) # 单链表 class Node: def __init__(self, elem): self.elem = elem self.next = No ...

  8. java三年工作经验工资_工作三年还是只会增删改查,Java 程序员如何进阶?

    大部分的企业级应用从本质上看,都是在做增删查改,但是有些公司的业务复杂而专业,有些公司应用的在线用户很多,你做的增删查改和别人做的增删查改,可能会有极大的区别,举个例子: 你做一个新闻资讯网站,首页上 ...

  9. Mysql存储函数实现增删改查_使用存储过程操作数据库(实现增删改查)

    使用存储过程操作数据库 添加数据: --创建一个存储过程,向表中插入一条数据 create proc usp_insertintoTbClass @className nvarchar(50), @c ...

最新文章

  1. IceStorm src simple analyse
  2. 图解MyEclipse用DB Browser连接四种数据库
  3. ffmpeg 配置与编译
  4. sql 链接到oracle数据库,通过MSSQL连接服务器连接至Oracle数据库
  5. fastai学习:05_pet_breeds Questionnaire
  6. 看完这篇Redis缓存三大问题,够你和面试官battle几回合了
  7. 密码学原理与实践_到底什么是防火墙入侵检测密码学身份认证?如何高效建立网络安全知识体系?...
  8. cesium学习笔记(问题记录)——以cesium1.77版本为例
  9. 华为手机的硬件好,苹果手机的系统好,能不能将苹果手机的系统装到华为手机里面呢?
  10. 考试系统(用xml文件模拟数据库)
  11. 在线GIF图片帧拆分工具
  12. 机器视觉硬件选型——镜头选型
  13. python用turtle调整文字位置_Python内置模块turtle绘图详解
  14. 如何umount一个busy的目录?
  15. JavaScript视频教程
  16. MAC APP 签名证书查看
  17. vm虚拟机win7安装镜像方法
  18. Kaggle经典案例—信用卡诈骗检测的完整流程(学习笔记)
  19. linux下安装matlab运行环境
  20. css inherit

热门文章

  1. String和Date、Timestamp之间的转换
  2. server2008中如何关闭internet explorer增强的安全配置
  3. 遵循Modbus协议通过Usb(Ch375)通信的上位机传输问题
  4. MongoDB中如何优雅地删除大量数据
  5. [Django 3.2.8] SimpleUI的分页问题
  6. spark-jobserver介绍: 提供了一个 RESTful 接口来提交和管理 spark 的 jobs、jars 和 job contexts
  7. Scala Akka的Actor模型
  8. 7-Zip将一个大文件压缩成多个小的压缩包
  9. python字符串截取:截取yaml文件名后3个字符
  10. ansible playbook中使用迭代with_items案例