千家信息网

Python3 操作Mysql数据库

发表于:2025-02-11 作者:千家信息网编辑
千家信息网最后更新 2025年02月11日,Pymysql介绍PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,而Python2中则使用mysqldb。PyMySQL 遵循 Python 数据库 API v2
千家信息网最后更新 2025年02月11日Python3 操作Mysql数据库

Pymysql介绍

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,而Python2中则使用mysqldb。
PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

通用步骤:

1.引入模块
2.获取与数据库的连接
3.执行SQL语句和存储过程
4.关闭数据库连接

PyMySQL 安装

1.打开cmd命令

cd C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts #切换目录
pip install pymysql

数据库连接

import pymysql #模块导入
#打开数据库连接
db = pymysql.connect(
host='数据库ip',
user='用户名,
passwd='密码',
db='数据库名',
port=3306,
charset='utf8'
)
#使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
#使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT VERSION()")
#使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print ("Database version : %s " % data)
#关闭数据库连接
db.close()

脚本输出结果:

Database version : 5.6.24-log

创建数据库表

import pymysql
#打开数据库连接
db = pymysql.connect(
host='数据库ip',
user='用户名,
passwd='密码',
db='数据库名',
port=3306,
charset='utf8'
)
#使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
#使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS info")
#使用预处理语句创建表
sql = """create table info (id int not null,name char(6),score decimal(5,2),age int(4));"""
cursor.execute(sql)
#关闭数据库连接
db.close()

脚本验证

数据库插入操作

import pymysql
#打开数据库连接
db = pymysql.connect(
host='数据库ip',
user='用户名,
passwd='密码',
db='数据库名',
port=3306,
charset='utf8'
)
#使用cursor()方法获取操作游标
cursor = db.cursor()
#SQL 插入语句
sql_1= """insert into info (id,name,score,age)values(1,'张三',88,33);"""
sql_2 = """insert into info (id,name,score,age)values(2,'李四',78,23);"""
sql_3 = """insert into info (id,name,score,age)values(3,'王五',58,43);"""
try:
#执行sql语句
cursor.execute(sql_1)
cursor.execute(sql_2)
cursor.execute(sql_3)
#提交到数据库执行
db.commit()
except:
#如果发生错误则回滚
db.rollback()
#关闭数据库连接
db.close()

插入数据验证

数据库查询操作

Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。
fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
fetchall(): 接收全部的返回结果行.
rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。

脚本文件:

import pymysql
#打开数据库连接
db = pymysql.connect(
host='数据库ip',
user='用户名,
passwd='密码',
db='数据库名',
port=3306,
charset='utf8'
)
#使用cursor()方法获取操作游标
cursor = db.cursor()
#SQL 查询语句
sql = 'select * from info;'
#执行SQL语句
cursor.execute(sql)
#获取所有记录列表
res = cur.fetchall()
#打印结果
print(res)
#打印出每个元组
print(res[0])
print(res[1])
print(res[2])
|#关闭游标
cur.close()
#关闭数据库
db.close()

查询验证

数据库更新操作

import pymysql
#打开数据库连接
db = pymysql.connect(
host='数据库ip',
user='用户名,
passwd='密码',
db='数据库名',
port=3306,
charset='utf8'
)
#使用cursor()方法获取操作游标
cursor = db.cursor()
#SQL 查询语句
sql = 'UPDATE info SET AGE = AGE + 1 WHERE id=3'
#执行SQL语句
cursor.execute(sql)
try:
#执行SQL语句
cursor.execute(sql)
#提交到数据库执行
db.commit()
except:
#发生错误时回滚
db.rollback()
#关闭数据库连接
db.close()

更新验证

删除操作

import pymysql
#打开数据库连接
db = pymysql.connect(
host='数据库ip',
user='用户名,
passwd='密码',
db='数据库名',
port=3306,
charset='utf8'
)
#使用cursor()方法获取操作游标
cursor = db.cursor()
#SQL 查询语句
sql = 'DELETE FROM info WHERE id=3;'
#执行SQL语句
cursor.execute(sql)
try:
#执行SQL语句
cursor.execute(sql)
#提交到数据库执行
db.commit()
except:
#发生错误时回滚
db.rollback()
#关闭数据库连接
db.close()

删除验证

执行事务

事务机制可以确保数据一致性。
事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。
原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性(durability)。持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
Python DB API 2.0 的事务提供了两个方法 commit 或 rollback。

错误处理

总结:

1.本文参考了菜鸟教程和亲自操作后写出来的。
2.python2和pyhton3 模块不一样,这里主要介绍pymysql。
3.这里只是介绍最基本的知识,出发点是为自己做一份笔记,方便日后查阅!
4.增加,删除,更新数据都要提交事务,否则数据库不执行该操作。
5.同时操作多条sql语句的方法,可以参考数据库插入操作。

0