python连接MySQL-PyMySQL驱动

前言

本篇文章第一节用来介绍 Python3 使用 PyMySQL 连接数据库,并实现简单的增删改查;
第二节用来总结数据库中两种清空表数据方法的区别。

一、PyMySQL

1.什么是PyMySQL ?

为了使python连接上数据库,你需要一个驱动,这个驱动是用于与数据库交互的库。
PyMySQL : 这是一个使Python连接到MySQL的库,它是一个纯Python库(文件夹)。PyMySQL 是一个纯 Python 实现的 MySQL 客户端操作库,支持事务、存取过程、批量执行,实现增删改查等。

2.PyMySQL的安装

使用以下命令进行安装:

pip install pymysql -i 镜像

3.PyMySQL的主要流程

import pymysql
# 1.创建链接
conn = pymysql.connect(  # 赋值给 conn连接对象    
host='127.0.0.1',   # 本地IP地址   
port=3306,  		# 默认端口    
user='root',  		# 用户名    
password='123',  	# 密码    
database='db_01',   # 连接数据库名称    
charset='utf8'  	# 编码 不能写utf-8)
# 2.生成一个游标对象(相当于cmd打开mysql中的 mysql>)
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  # 让数据自动组织成字典
# 3.定义SQL语句
sql = 'select * from egg'
# 4.执行SQL语句
ret = cursor.execute(sql)print(ret)  # 返回值是执行SQL语句之后受影响的行数
# 5.1获取返回的所有结果
res = cursor.fetchall() 
 # 5.2获取下一个查询结果集,结果集是一个对象
 res = cursor.fetchone()  
 # 5.3获取几个结果集,括号内可以指定个数
 res = cursor.fetchmany(3)  
 # 输出列表套字典
 print(res)

4.PyMySQL的增删改查操作

(1)增删改查实例
sql1 = 'select * from egg'  # 查询表内数据
sql2 = 'insert into egg(name,password) values(%s,%s)'  # 插入数据
sql3 = 'update egg set name=jasonNB where id=1'  # 修改数据
sql4 = 'delete from egg where id=2'  # 删除数据

在数据库的增删改查操作中:
查的级别是最低的,故可以直接操作,
增删改的级别最高的,pymysq没有权限去操作,需要使用到二次确认才能进行增删改操作;
因此,针对增删改操作 需要二次确认才可生效。

(2)二次确认(手动测试)
cursor.execute(sql2,('tony',123))  # 插入数据
conn.commit()  # 二次确认
cursor.execute(sql3)  # 修改数据
conn.commit()  # 二次确认
cursor.execute(sql4)# 删除数据
conn.commit()  # 二次确认
(3)二次确认(自动化)
conn = pymysql.connect(  # 赋值给 conn连接对象    
host='127.0.0.1',   # 本地IP地址   
port=3306,  		# 默认端口    
user='root',  		# 用户名    
password='123',  	# 密码    
database='db_01',   # 连接数据库名称    
charset='utf8',  	# 编码 
autocommit=True     # 涉及到增删改 自动二次确认)

5.生成一个游标对象

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  # 让数据自动组织成字典
sql1 = 'select * from egg'
sql2 = 'insert into egg(name,password) values(%s,%s)'
sql3 = 'update egg set name="jaonNB" where id=2'
sql4 = 'delete from egg where id=1
cursor.execute(sql2,('laike',123))  # 插入数据
cursor.execute(sql3) # 修改数据
cursor.execute(sql4) # 删除数据
conn.close() # 主动关闭链接 释放资源

二、truncate和delete的区别

1.基本语法

1.1 truncate
truncate table table_name(表名)# 举例:
TRUNCATE TABLE order;
1.2 delete
delete from table_name(表名) where....# 举例:
DELETE FROM order;
1.3 语法的不同点

1.truncate后面只能加表名,直接删除表,无法where;
2.delete可以在后续加上where进行针对行的删除。

2.内存空间

2.1 truncate

删除表中的内容,不删除表结构,释放空间,即:truncate删除数据后重新写数据会从1开始。

2.2 delete

删除表中的内容,不删除表结构,不释放空间,即:delete删除数据后只会从删除前的最后一行续写。

3.处理速度

truncate操作中id直接从1开始,即全部清空开始;delete需要先得到当前行数,从而进行续写;所以truncate删除速度比delete快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值