目录
本文主要写介绍 Python3 使用 PyMySQL 驱动连接MySQL数据库,并实现简单的增删改查(附有代码实例实战)。
一、前期准备
PyMySQL
1、什么是PyMySQL
PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。
PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。
2、安装PyMySQL
打开pycharm编译器,点击Terminal终端,在终端里输入:pip install pymysql,即可安装pymysql包,如下图(由于我已经安装过了所以提示已经安装):
如果出现以下warning警告(如下图),说明该更新MySQL版本了,随即在终端输入以下语句即可
3、安装问题参考文档
如果打开终端出现无法输入命令的问题可参照此文档:
(60条消息) Pycharm中Cannot open Local Terminal问题解决方案。_MarshallKing的博客-CSDN博客
4、Navicat操作
用来创建数据库并存储数据的工具,如下图所示,能够成功创建数据库、并在数据库中创建表、在表中插入values值,掌握数据库中的增删改查操作,如图展示navicat界面以及已经创建好的东西:
5、准备完毕开始实战!
二、功能实现
实例:数据库:zyf。
功能实现的每一步具体操作步骤在代码中展示:
1、连接数据库
代码模块:
'''1、导入库:导入已经下载好的pymysql库。'''
import pymysql
'''2、连接数据库:最好用try except捕获异常。'''
try:
''' 打开数据库连接'''
db = pymysql.connect(
#传入正确的用户名、密码、及数据库名,同时在navicat中创建数据库时应选择localhost(计算机本身)属性
host='localhost',
user='root',
password='root',
database='zyf')
print("连接数据库成功!")
except:
print("连接数据库失败!")
输出样例:
A:\Maker工作室\培训学习\PythonHightrain\PythonProjects\venv\Scripts\python.exe A:/Maker工作室/培训学习/PythonHightrain/PythonProjects/Project6/__init__.py
数据库连接成功!
Process finished with exit code 0
2、创建数据表
代码模块:
'''1、导入库:导入已经下载好的pymysql库。'''
import pymysql
'''2、连接数据库并执行操作:用try except捕获异常。'''
try:
'''打开数据库连接,实现连接数据库'''
db = pymysql.connect(
host='localhost',
user='root',
password='root',
database='zyf')
'''声明一个游标'''
cursor = db.cursor()
#使用execute()方法来为数据库创建表
'''创建表之前先检查是否存在,如果存在则删除'''
cursor.execute("DROP TABLE IF EXISTS zyf_course")
'''编辑sql语句'''
sql = """CREATE TABLE zyf_course (
cid varchar(20),
cname varchar(20),
cscore varchar(20) )
"""
'''执行sql语句'''
cursor.execute(sql)
print("创建表成功!")
except:
print("创建表失败!")
输出样例:
A:\Maker工作室\培训学习\PythonHightrain\PythonProjects\venv\Scripts\python.exe A:/Maker工作室/培训学习/PythonHightrain/PythonProjects/Project6/create.py
创建表成功!
Process finished with exit code 0
3、向数据表中插入数据
代码模块:
'''1、导入库:导入已经下载好的pymysql库。'''
import pymysql
'''2、打开数据库连接,实现连接数据库'''
db = pymysql.connect(
host='localhost',
user='root',
password='root',
database='zyf')
'''3、用cursor()方法获取操作游标'''
cursor = db.cursor()
'''4、编辑sql语句'''
sql = """INSERT INTO zyf_course(cid,cname,cscore)VALUES ('001', '古代建筑美学', '2.0')"""
'''5、执行操作:用try except捕获异常。'''
try:
'''执行sql语句'''
cursor.execute(sql)
'''提交到数据库执行'''
db.commit()
print("成功插入课程信息!")
except:
'''如果发生错误则回滚并输出提示语句'''
db.rollback()
print("插入信息失败,请检查代码!!")
输出样例:
A:\Maker工作室\培训学习\PythonHightrain\PythonProjects\venv\Scripts\python.exe A:/Maker工作室/培训学习/PythonHightrain/PythonProjects/Project6/insert.py
成功插入课程信息!
Process finished with exit code 0
4、查询数据表中的数据
代码模块:
'''1、导入库:导入已经下载好的pymysql库'''
import pymysql
'''2、打开数据库连接,实现连接数据库'''
db = pymysql.connect(
host='localhost',
user='root',
password='root',
database='zyf')
'''3、用cursor()方法获取操作游标'''
cursor = db.cursor()
'''4、编辑sql语句'''
sql = """SELECT * FROM zyf_course"""
'''5、执行操作:用try except捕获异常。'''
try:
'''执行sql语句'''
cursor.execute(sql)
'''获取数据表中的value值'''
results = cursor.fetchall()
for row in results:
cid = row[0]
cname = row[1]
cscore = row[2]
# 打印结果
print("课程号是{},课程名字是{},课程学分是{}".format(cid, cname, cscore))
except:
'''如果发生错误则回滚并输出提示语句'''
print("查询失败")
输出样例:
A:\Maker工作室\培训学习\PythonHightrain\PythonProjects\venv\Scripts\python.exe A:/Maker工作室/培训学习/PythonHightrain/PythonProjects/Project6/查询.py
课程号是001,课程名字是古代建筑美学,课程学分是2.0
Process finished with exit code 0
5、更改数据表中的数据
代码模块:
'''1、导入库:导入已经下载好的pymysql库'''
import pymysql
'''2、打开数据库连接,实现连接数据库'''
db = pymysql.connect(
host='localhost',
user='root',
password='root',
database='zyf')
'''3、用cursor()方法获取操作游标'''
cursor = db.cursor()
'''4、编辑sql语句和更改后的value值'''
sql = """UPDATE zyf_course SET cid= %s WHERE cid=%s"""
value=('Java程序设计','4.0')
'''5、执行操作:用try except捕获异常。'''
try:
'''执行sql语句'''
cursor.execute(sql,value)
'''提交到数据库执行'''
db.commit()
print("更改课程信息成功!")
except:
'''如果发生错误则回滚并输出提示语句'''
print("更改失败!")
输出样例:
A:\Maker工作室\培训学习\PythonHightrain\PythonProjects\venv\Scripts\python.exe A:/Maker工作室/培训学习/PythonHightrain/PythonProjects/Project6/更改.py
更改课程信息成功!
Process finished with exit code 0
6、删除数据表中的数据
代码模块:
'''1、导入库:导入已经下载好的pymysql库'''
import pymysql
'''2、打开数据库连接,实现连接数据库'''
db = pymysql.connect(
host='localhost',
user='root',
password='root',
database='zyf')
'''3、用cursor()方法获取操作游标'''
cursor = db.cursor()
'''4、编辑sql语句和更改后的value值'''
sql = """DELETE FROM zyf_course where cid=%s"""
value=('Java程序设计')
'''5、执行操作:用try except捕获异常。'''
try:
'''执行sql语句'''
cursor.execute(sql,value)
'''提交到数据库执行'''
db.commit()
print("删除课程信息成功!")
except:
'''如果发生错误则回滚并输出提示语句'''
print("删除失败!")
输出样例:
A:\Maker工作室\培训学习\PythonHightrain\PythonProjects\venv\Scripts\python.exe A:/Maker工作室/培训学习/PythonHightrain/PythonProjects/Project6/删除.py
删除课程信息成功!
Process finished with exit code 0
7、删除数据表
代码模块
'''1、导入库:导入已经下载好的pymysql库'''
import pymysql
'''2、打开数据库连接,实现连接数据库'''
db = pymysql.connect(
host='localhost',
user='root',
password='root',
database='zyf')
'''3、用cursor()方法获取操作游标'''
cursor = db.cursor()
'''4、编辑sql语句和更改后的value值'''
sql = 'DROP TABLE IF EXISTS zyf_course'
'''5、执行sql语句'''
cursor.execute(sql)
print("数据表删除成功!")
输出样例:
A:\Maker工作室\培训学习\PythonHightrain\PythonProjects\venv\Scripts\python.exe A:/Maker工作室/培训学习/PythonHightrain/PythonProjects/Project6/删除数据表.py
数据表删除成功!
Process finished with exit code 0