1.16 Python的数据库支持
优质
小牛编辑
137浏览
2023-12-01
1.16.1. 什么是 PyMySQL?
- PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。
- PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。
1.16.2. PyMySQL安装
- PyMySQL下载地址:https://github.com/PyMySQL/PyMySQL。
2.1 使用pip命令进行安装:
$ pip install PyMySQL
2.2 使用 git 命令下载安装包安装(你也可以手动下载):
$ git clone https://github.com/PyMySQL/PyMySQL
$ cd PyMySQL/
$ python3 setup.py install
1.16.3. 数据库连接
3.1 通过如下代码测试数据库连接
#!/usr/bin/python3
import pymysql
# 打开数据库连接
db = pymysql.connect(host="localhost",user="root",password="",db="mydb",charset="utf8")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print ("Database version : %s " % data)
# 关闭数据库连接
db.close()
3.2 执行数据查询:
#!/usr/bin/python3
import pymysql
#打开数据库连接
db = pymysql.connect(host="localhost",user="root",password="",db="mydb",charset="utf8")
#使用cursor()方法创建一个游标对象cursor
cursor = db.cursor()
#定义查询sql语句
#sql = "select * from stu"
sql = "select * from stu where classid='%s'"%("python03")
try:
# 使用execute()方法执行SQL查询
cursor.execute(sql)
print("本次查询条数:",cursor.rowcount)
'''
# 使用fetchone()方法获取单条数据.
while True:
data = cursor.fetchone();
if data == None:
break;
print (data)
'''
#使用fetchall()获取所有结果
alist = cursor.fetchall()
for vo in alist:
print(vo)
except Exception as err:
print("SQL执行错误,原因:",err)
# 关闭数据库连接
db.close()
3.3 执行数据添加
#!/usr/bin/python3
import pymysql
#打开数据库连接
db = pymysql.connect(host="localhost",user="root",password="",db="mydb",charset="utf8")
#使用cursor()方法创建一个游标对象cursor
cursor = db.cursor()
#定义添加sql语句
data = ("uu100",28,'w','python05')
sql = "insert into stu(name,age,sex,classid) values('%s','%d','%s','%s')"%(data)
try:
# 使用execute()方法执行SQL
m = cursor.execute(sql)
# 事务提交
db.commit()
print("成功操作条数:",m)
#print("成功操作条数:",cursor.rowcount)
except Exception as err:
#事务回滚
db.rollback()
print("SQL执行错误,原因:",err)
# 关闭数据库连接
db.close()
3.4 执行删除操作
#!/usr/bin/python3
import pymysql
#打开数据库连接
db = pymysql.connect(host="localhost",user="root",password="",db="mydb",charset="utf8")
#使用cursor()方法创建一个游标对象cursor
cursor = db.cursor()
#定义删除sql语句
sql = "delete from stu where id=%d"%(100)
try:
# 使用execute()方法执行SQL
cursor.execute(sql)
# 事务提交
db.commit()
print("成功删除条数:",cursor.rowcount)
except Exception as err:
#事务回滚
db.rollback()
print("SQL执行错误,原因:",err)
# 关闭数据库连接
db.close()
数据库查询操作:
Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。
fetchone(): 该方法获取下一个查询结果集。结果集是一个对象,最后返回None结束
fetchall(): 接收全部的返回结果行.
rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。
附录:pip命令
------------------------------------------------------------
列出已安装的包:
$ pip list
$ pip freeze # 查看自己安装的
安装软件(安装特定版本的package,通过使用==, >=, <=, >, <来指定一个版本号)**
$ pip install SomePackage
$ pip install 'Markdown<2.0'
$ pip install 'Markdown>2.0,<2.0.3'
卸载软件pip uninstall SomePackage
$ pip uninstall SomePackage
下载所需的软件包:
$ pip download SomePackage -d directory
例如下载PyMySQL软件包
$ pip download PyMySQL -d D:/pypackage
安装下载好的软件包文件
$ pip install 目录/软件包文件名
如安装PyMySQL软件包
$ pip3.6 install D:/pypackage/PyMySQL-0.7.11-py2.py3-none-any.whl