pymysql语法_如何使用PyMySQL模块进行增删改查?
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模块进行增删改查?相关推荐
- mysql 原生 添加数据_手撸Mysql原生语句--增删改查
mysql数据库的增删改查有以下的几种的情况, 1.DDL语句 数据库定义语言: 数据库.表.视图.索引.存储过程,例如CREATE DROP ALTER SHOW 2.DML语句 数据库操纵语言: ...
- sql 基础语法 创建数据库和数据表 数据增删改查 分组查询 子查询回顾
参考链接: SQL教程 MySQL教程 一.创建数据库语法 --用master数据库 use master --判断数据库是否存在,若存在则删除 if exists (select * from sy ...
- 十天学会mysql增删改查_第11天 MySQL-SQL普通增删改查
一.如何设计表****关系 自然界中的关系通过数据对应的模式进行分析之后,得出结果:可以大致分为三种,一对一,一对多(多对一),多对多 一对多 一对多与多对一是一个概念,指的是一个实体的某个数据与另外 ...
- django中判断当前user具有是否有对模块的增删改查权限
首先简单了解一下user的一些属性 User对象 User对象是认证系统的核心.用户对象通常用来代表网站的用户,并支持例如访问控制.注册用户.关联创建者和内容等.在Django认证框架中只有一个用户类 ...
- Django简易测试平台三:模块的增删改查
1.新建模块base INSTALLED_APPS 增加模块名:base 2.路由设计 1)API/urls.py 配置: 新增如下内容 url(r'^base', include("bas ...
- 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> < ...
- python单链表操作_单链表的创建、增删改查等操作(Python实现)
单链表的创建.增删改查等操作(Python实现) # 单链表 class Node: def __init__(self, elem): self.elem = elem self.next = No ...
- java三年工作经验工资_工作三年还是只会增删改查,Java 程序员如何进阶?
大部分的企业级应用从本质上看,都是在做增删查改,但是有些公司的业务复杂而专业,有些公司应用的在线用户很多,你做的增删查改和别人做的增删查改,可能会有极大的区别,举个例子: 你做一个新闻资讯网站,首页上 ...
- Mysql存储函数实现增删改查_使用存储过程操作数据库(实现增删改查)
使用存储过程操作数据库 添加数据: --创建一个存储过程,向表中插入一条数据 create proc usp_insertintoTbClass @className nvarchar(50), @c ...
最新文章
- IceStorm src simple analyse
- 图解MyEclipse用DB Browser连接四种数据库
- ffmpeg 配置与编译
- sql 链接到oracle数据库,通过MSSQL连接服务器连接至Oracle数据库
- fastai学习:05_pet_breeds Questionnaire
- 看完这篇Redis缓存三大问题,够你和面试官battle几回合了
- 密码学原理与实践_到底什么是防火墙入侵检测密码学身份认证?如何高效建立网络安全知识体系?...
- cesium学习笔记(问题记录)——以cesium1.77版本为例
- 华为手机的硬件好,苹果手机的系统好,能不能将苹果手机的系统装到华为手机里面呢?
- 考试系统(用xml文件模拟数据库)
- 在线GIF图片帧拆分工具
- 机器视觉硬件选型——镜头选型
- python用turtle调整文字位置_Python内置模块turtle绘图详解
- 如何umount一个busy的目录?
- JavaScript视频教程
- MAC APP 签名证书查看
- vm虚拟机win7安装镜像方法
- Kaggle经典案例—信用卡诈骗检测的完整流程(学习笔记)
- linux下安装matlab运行环境
- css inherit
热门文章
- String和Date、Timestamp之间的转换
- server2008中如何关闭internet explorer增强的安全配置
- 遵循Modbus协议通过Usb(Ch375)通信的上位机传输问题
- MongoDB中如何优雅地删除大量数据
- [Django 3.2.8] SimpleUI的分页问题
- spark-jobserver介绍: 提供了一个 RESTful 接口来提交和管理 spark 的 jobs、jars 和 job contexts
- Scala Akka的Actor模型
- 7-Zip将一个大文件压缩成多个小的压缩包
- python字符串截取:截取yaml文件名后3个字符
- ansible playbook中使用迭代with_items案例