华子目录
简介
pymysql
是一个用于Python编程
的第三方模块
,用于连接
和操作MySQL数据库
。它提供了一个简单
而强大
的接口
,使开发者
能够轻松地
在Python程序
中执行
各种数据库操作
,如查询
、插入
、更新
和删除数据
等
安装pymysql
bash
复制代码
#在终端命令中执行
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() |
返回查询结果集 中所有记录 |
数据库操作
查
python
复制代码
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()
改
python
复制代码
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()
批量增加
python
复制代码
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()
删
python
复制代码
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
语句
python
复制代码
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提交