华子目录
简介
pymysql是一个用于Python编程的第三方模块,用于连接和操作MySQL数据库。它提供了一个简单而强大的接口,使开发者能够轻松地在Python程序中执行各种数据库操作,如查询、插入、更新和删除数据等
安装pymysql
#在终端命令中执行
pip install pymysql
连接对象常用方法
| 方法 |
描述 |
cursor() |
创建一个游标对象。所有的sql语句执行都要在游标对象下进行 |
begin() |
开启一个事务 |
commit() |
提交事务 |
rollback() |
回滚事务 |
select_db(db) |
切换数据库(db是一个字符串) |
close() |
关闭数据库连接 |
游标对象常用方法
| 方法 |
描述 |
execute(sql, params) |
执行数据库语句,如sql语句或数据库命令(sql是一个字符串,params是tuple, list or dict) |
executemany(sql, params) |
用于批量执行sql语句(sql是一个字符串,params为tuple或list) |
fetchone() |
返回查询结果中第一个记录 |
fetchmany(size) |
返回查询结果中指定数量的记录(size是一个int类型,默认为1) |
fetchall() |
返回查询结果集中所有记录 |
数据库操作
查
import pymysql
from pprint import pprint
#创建一个数据库连接对象
db = pymysql.connect(host="172.25.254.128",
port=3306,
user="huazi",
password="123456",
database="huazi",
charset="utf8mb4")
#创建一个游标对象
cursor = db.cursor()
#写一条sql语句
sql = "select * from stu"
#执行sql语句
cursor.execute(sql)
#获取数据
data = cursor.fetchall()
pprint(data)
#关闭游标
cursor.close()
#关闭连接
db.close()
改
import pymysql
#创建一个数据库连接对象
db = pymysql.connect(host="172.25.254.128",
port=3306,
user="huazi",
password="123456",
database="huazi",
charset="utf8mb4")
#创建一个游标
cursor = db.cursor()
#写一条sql语句
sql = "update stu set name=%s where id=%s"
name = "xiaohua"
id = 1
#执行sql语句
cursor.execute(sql, [name, id])
#提交
db.commit()
#关闭游标
cursor.close()
#关闭连接
db.close()
批量增加
import pymysql
#创建一个数据库连接对象
db = pymysql.connect(host="172.25.254.128",
port=3306,
user="huazi",
password="123456",
charset="utf8mb4")
#创建一个游标
cursor = db.cursor()
#选择操作的数据库
db.select_db("test")
#写一条sql语句
sql = "insert into user(username, password) values(%s, %s)"
values = [
("huazi", "123456"),
("xiaoge", "67890"),
("hahaha", "45678")
]
#执行sql语句
cursor.executemany(sql, values)
#提交
db.commit()
#关闭游标
cursor.close()
#关闭连接
db.close()
删
import pymysql
#创建一个数据库连接对象
db = pymysql.connect(host="172.25.254.128",
port=3306,
user="huazi",
password="123456",
charset="utf8mb4")
#创建一个游标
cursor = db.cursor()
#选择操作的数据库
db.select_db("test")
#写一条sql语句
sql = "delete from user where username=%s"
name = ('xiaoge',)
#执行sql语句
cursor.execute(sql, name)
#提交
db.commit()
#关闭游标
cursor.close()
#关闭连接
db.close()
使用with语句
import pymysql
#创建一个数据库连接对象
db = pymysql.connect(host="172.25.254.128",
port=3306,
user="huazi",
password="123456",
charset="utf8mb4")
db.select_db("view")
try:
with db.cursor() as cursor: # cursor = db.cursor()
sql = "select * from student"
cursor.execute(sql)
data = cursor.fetchall()
for i in data:
print(i)
finally:
db.close()
总结
- 写
DML语句时(insert,update,delete)需要commit提交,select查询语句不需要commit提交