4000字,详解 Python 操作 MySQL 数据库!
作者 | 黄伟呢
出品 | 数据分析与统计学之美
本文的重点,就是教会大家,如何用Python来操作MySQL数据库。
1. 通用步骤
其实,这里有一个通用步骤,都是写死了的,大家照做就行。
# 1. 导入相关库
import pymysql# 2. 链接MySQL服务器
db = pymysql.connect(host='localhost' , user='root' , password='******' , port=3306 ,db='spiders' , charset='utf8')# 3. 创建一个cursor游标对象
cursor = db.cursor()# 4. 在这一步写你的sql语句
sql = 'select version()'# 5. 执行sql语句
cursor.execute(sql)# 6. 断开连接
db.close()
可以看出,整个过程就是第四步那里不同。归根到底,其实就是写sql。
2. 需要特别说明的知识点
Ⅰ 各参数说明
db = pymysql.connect(host='localhost' , user='root' , password='******' , port=3306 ,db='spiders' , charset='utf8')
这一行代码很长,里面涉及到好几个参数,这里为大家一一介绍如下:
参数 1 :mysql 服务器所在的主机 IP
参数 2 :用户名;
参数 3 :密码;
参数 4 :连接的 mysql 主机的端口,默认是 3306;
参数 5 :连接的数据库名;
参数 6 :通信采用的编码方式,默认是'gb2312',要求与数据库创建时指定的编码一致,否则中文会乱码;
Ⅱ cursor游标对象
3. Python增删改查操作
① 创建一个数据表
import pymysqldb = pymysql.connect(host='192.168.3.47' , user='root',password='******' , port=3306 , db='spiders' , charset='utf8')cursor = db.cursor()# 检查表是否存在,如果存在删除
cursor.execute('drop table if exists students')# 创建表
sql = 'create table students(id int auto_increment primary key not null,name varchar(10) not null,age int not null)'cursor.execute(sql)db.close()
注:以后用代码创建表的机会并不多,表一般都是我们提前创建好的。
② 插入数据
import pymysqldb = pymysql.connect(host='192.168.3.47' , user='root',password='******' , port=3306 , db='spiders' , charset='utf8')cursor = db.cursor()# 插入数据
sql = 'insert into students(name,age) values(%s,%s)'
try:cursor.execute(sql,('孙悟空',100000))db.commit()
except:print("插入失败")db.rollback()db.close()
注 1:插入数据一定要用 try…except…语句,因为万一没插入成功,其余代码都无法执行。
注 2:import pymysql,此模块是默认开启mysql的事务功能的,因此,进行“增”、“删”、“改”的时候,一定要使用db.commit()提交事务,否则就看不见所插入的数据。
③ 更新数据
import pymysqldb = pymysql.connect(host='192.168.3.47' , user='root',password='******' , port=3306 , db='spiders' , charset='utf8')cursor = db.cursor()# 更新数据
sql = 'update students set age =%s where name=%s'
try:cursor.execute(sql,(30,"郭卫华"))db.commit()
except:print("插入失败")db.rollback()db.close()
③ 删除操作
import pymysqldb = pymysql.connect(host='192.168.3.47' , user='root',password='******' , port=3306 , db='spiders' , charset='utf8')cursor = db.cursor()# 删除数据
sql = 'delete from students where age=100000'
try:cursor.execute(sql)db.commit()
except:print("插入失败")db.rollback()db.close()
④ 查询操作
fetchone()功能:获取下一个查询结果集,结果集是一个对象。
fetchall()功能:接收全部返回的行。
import pymysqldb = pymysql.connect(host='192.168.3.47' , user='root',password='******' , port=3306 , db='spiders' , charset='utf8')cursor = db.cursor()# 查询数据
sql = 'select * from students where age>60'
try:cursor.execute(sql)reslist = cursor.fetchall()for row in reslist:print(“%d--%d” %(row[0],row[1],… row[n]))
except:print("插入失败")db.rollback()db.close()
4. 封装一个类
# 注:把下面类写在 studentsql 文件中
import pymysql
class StudentsSql():def __init__(self,host,user,port,dbname,charset):self.host = hostself.user = userself.port = portself.dbname = dbnameself.charset = charsetdef connet(sef):self.db = pymysql.connect(self.host, self.user, self.port,self.dbname, self.charset)def close(self):self.cursor.close()self.db.close()def get_one(self,sql):res = Nonetry:self.connect()self.cursor.execute(sql)res = self.cursor.fetchone()self.close()except:print(“查询失败”)return resdef get_all(self,sql):res = Nonetry:self.connect()self.cursor.execute(sql)res = self.cursor.fetchall()self.close()except:print(“查询失败”)return resdef inset(self,sql):return self.__edit(sql)def update(self,sql):return self.__edit(sql)def delete(self,sql):return self.__edit(sql)def __edit(self,sql):count = 0try:self.connect()count = self.cursor.execute(sql)self.db.commit()self.close()except:print(“事务提交失败”)self.db.rollback()return count
上述类封装成功,以后只需要调用即可。
from studentsql import StudentsSql
s = StudentsSql(“host='192.168.3.47' , user='root', password='******' , port=3306 , db='spiders' , charset='utf8'”)
res = s.get_all('select * from students where age>60')
for row in res:print(“%d--%d” %(row[0],row[1],… row[n]))
往
期
回
顾
资讯
AI 考古比胡八一更高效
资讯
这个机器狗引起网友争议!
资讯
阿里发布云芯片倚天710
资讯
英特尔开源编程工具 ControFlag
分享
点收藏
点点赞
点在看
4000字,详解 Python 操作 MySQL 数据库!相关推荐
- python操作mysql数据库的常用方法使用详解
python操作mysql数据库 1.环境准备: Linux 安装mysql: apt-get install mysql-server 安装python-mysql模块:apt-get instal ...
- python提取hbase数据_详解python操作hbase数据的方法介绍
配置 thrift python使用的包 thrift 个人使用的python 编译器是pycharm community edition. 在工程中设置中,找到project interpreter ...
- Python操作mySql数据库封装类
这是自己在做项目过程中,整理封装的操作mysql数据库封装类,自己可以修改下使用,节省大量时间. myGlobal.py # -*- coding: utf-8 -*-global globalLis ...
- python操作mysql数据库(增、删、改、查)_python对 MySQL 数据库进行增删改查的脚本...
# -*- coding: utf-8 -*- import pymysql import xlrd # import codecs #连接数据库 conn = pymysql.connect(hos ...
- python 天气预报 mysql_python + docker, 实现天气数据 从FTP获取以及持久化(二)-- python操作MySQL数据库...
前言 在这一节中,我们主要介绍如何使用python操作MySQL数据库. 准备 MySQL数据库使用的是上一节中的docker容器 "test-mysql". Python 操作 ...
- python操作mysql中的表_带你了解什么是Python操作MySQL数据库
写这篇文章主要是为了介绍Python操作MySQL数据库,并结合相应的实例带你更加深入了解.文中的代码实例很详细,对大家有一定的参考学习价值. 1.什么是pymysql? PyMySQL是在Pytho ...
- python操作mysql数据库练习
python操作mysql数据库练习 本次练习是在windows下,mysql版本为5.7,python版本为2.7.5,集成环境为pycharm. 创建表时,enign在innodb下支持事务,其他 ...
- imooc的疯狂的蚂蚁的课程《Python操作MySQL数据库》 python3+pymysql模块来操作mysql数据库
以下代码为imooc的疯狂的蚂蚁的课程<Python操作MySQL数据库>的python3版本的代码,使用的是pymysql模块来操作mysql数据库,代码与原课程有所改动,注意运行时需要 ...
- python操作mysql数据库用到的fetchone()函数和fetchall()函数
在用python操作mysql数据库时,碰到了下面这两个函数,标记一下: fetchone() : 返回单个的元组,也就是一条记录(row),如果没有结果 则返回 None fetchall() : ...
最新文章
- Jupyter官方神器:可视化 Debug 工具!
- 如何把gcc编译工具使用到linux全局
- centos 7 安装wps
- 【AI白身境】深度学习必备图像基础
- UE4学习-虚幻4帮助手册、通过蓝图实现动画效果、添加时间轴、添加声音、C++和蓝图事件关联
- Google编程题:最小操作数
- redis学习-redis事务
- Linux system PXE网络环境
- 分布式协议与算法(一)Paxos 算法
- 计算机类耗品有哪些,办公用品和办公耗材清单有哪些?
- 如何系统学习Spring框架
- 两个同级路由如何相互访问
- Winform实现微信功能
- UE4 回合游戏项目 20- 添加人物被攻击的动画
- mysql主从配置duxi_手把手超详细Docker部署MongoDB集群
- N个人都不坐自己位置的情况有几种
- python图片数字识别_python 识别图片上的数字
- 面试这么久,终于收到offer了,月薪10k自研和13k外包该怎么选?
- C++ —— 自定义函数
- skylin TerraExplorer自定义飞行路线如何监听结束事件