pymysql的使用(笔记)

这篇博客详细介绍了如何使用pymysql库进行Python数据库操作,包括连接MySQL数据库、执行查询、插入、更新和删除等操作。通过示例代码展示了不同操作的实现,适用于学习和参考数据库操作技巧。

pymysql的使用(笔记)

首先,连接数据库:

import pymysql

def conn_db():  # 连接数据库函数
    conn = pymysql.connect(
        host='localhost',
        user='root',
        passwd='root',
        db='swjtu_z16',
        charset='utf8mb4')
    cur = conn.cursor()
    return conn,cur

def exe_update(cur, sql):  # 更新语句,可执行update,insert语句
    sta = cur.execute(sql)
    return sta

# def exe_delete(cur, ids):  # 删除语句,可批量删除
#     for eachID in ids.split(' '):
#         sta = cur.execute('delete from cms where id =%d' % int(eachID))
#     return sta

def exe_query(cur, sql):  # 查询语句
    cur.execute(sql)
    return cur

def exe_commit(cur):
    cur.connection.commit()  # 执行commit操作,插入语句才能生效

def conn_close(conn, cur):  # 关闭所有连接
    cur.close()
    conn.close()

查询

# 调用连接数据库的函数
conn, cur = condb.conn_db()
sql_query = "select * from bridge_preprocessing_params"
params = defaultdict(str)

try:
    sta = condb.exe_query(cur,sql_query)
    results = sta.fetchall()
    for row in results:
        name = row[0]
        param1 = row[1]
        param2 = row[2]
        param3 = row[3]
        params[name] = (param1,param2,param3)
    condb.exe_commit(cur)
except Exception as e:
	print(e)
finally:
    condb.conn_close(conn, cur)

另一种写法(无封装):(参考)

import pymysql  #导入 pymysql
 
#打开数据库连接
db= pymysql.connect(host="localhost",user="root",
 	password="123456",db="test",port=3307)
 
# 使用cursor()方法获取操作游标
cur = db.cursor()
 
#1.查询操作
# 编写sql 查询语句  user 对应我的表名
sql = "select * from user"
try:
	cur.execute(sql) 	#执行sql语句
 
	results = cur.fetchall()	#获取查询的所有记录
	print("id","name","password")
	#遍历结果
	for row in results :
		id = row[0]
		name = row[1]
		password = row[2]
		print(id,name,password)
except Exception as e:
	raise e
finally:
	db.close()	#关闭连接

插入(参考)

import pymysql
#2.插入操作
db= pymysql.connect(host="localhost",user="root",
 	password="123456",db="test",port=3307)
 
# 使用cursor()方法获取操作游标
cur = db.cursor()
 
sql_insert ="insert into user(id,username,password) values(4,'liu','1234')"
 
try:
	cur.execute(sql_insert)
	#提交
	db.commit()
except Exception as e:
	#错误回滚
	db.rollback() 
finally:
	db.close()

更新

def updateFunctions(denosing,outliers,standard):
    sql_update = "update bridge_preprocessing set denosing = '%s',outliers = '%s',standard = '%s' where id = '%s'"
    # 调用连接数据库的函数
    conn, cur = condb.conn_db()
    sta = condb.exe_update(cur, sql_update % (denosing, outliers, standard, "1"))
    condb.exe_commit(cur)
    condb.conn_close(conn, cur)
    return sta

另一种写法(无封装):(参考)

import pymysql
#3.更新操作
db= pymysql.connect(host="localhost",user="root",
 	password="123456",db="test",port=3307)
 
# 使用cursor()方法获取操作游标
cur = db.cursor()
 
sql_update ="update user set username = '%s' where id = %d"
 
try:
	cur.execute(sql_update % ("xiongda",3))  #像sql语句传递参数
	#提交
	db.commit()
except Exception as e:
	#错误回滚
	db.rollback() 
finally:
	db.close()

删除

import pymysql
#4.删除操作
db= pymysql.connect(host="localhost",user="root",
 	password="123456",db="test",port=3307)
 
# 使用cursor()方法获取操作游标
cur = db.cursor()
 
sql_delete ="delete from user where id = %d"
 
try:
	cur.execute(sql_delete % (3))  #像sql语句传递参数
	#提交
	db.commit()
except Exception as e:
	#错误回滚
	db.rollback() 
finally:
	db.close()

【参考】https://blog.youkuaiyun.com/qq_37176126/article/details/72824106

存在与 pymysql 相关的黑马教程或资料。其中一份笔记以 B 站黑马 2022 版教程为背景,给出了初始链接数据库的示例代码: ```python from pymysql import Connection conn = Connection( host="localhost", port=3306, user="root", password="123456" ) print(conn.get_server_info()) conn.close() ``` 另一份学习笔记也有使用 pymysql 进行数据库操作的示例,代码如下: ```python from file_define import FileReader, TextFileReader, JsonFileReader from data_define import Record from pymysql import Connection text_file_reader = TextFileReader("D:\\计算机\\Python\\黑马程序员python教程\\资料\\数据分析案例\\2011年1月销售数据.txt") json_file_reader = JsonFileReader("D:\\计算机\\Python\\黑马程序员python教程\\资料\\数据分析案例\\2011年2月销售数据JSON.txt") jan_data: list[Record] = text_file_reader.read_data() feb_data: list[Record] = json_file_reader.read_data() all_data: list[Record] = jan_data + feb_data conn = Connection( host="127.0.0.1", port=3306, user="root", password="xxxxxx", autocommit=True ) cursor = conn.cursor() conn.select_db("py_sql") for record in all_data: sql = f"INSERT INTO orders(`order_date`, `order_id`, `money`, `province`) " \ f"VALUES ('{record.date}', '{record.order_id}', {record.money}, '{record.province}')" cursor.execute(sql) conn.close() ``` 此外,还有一份 MySQL8.0 实战教程涉及 MySQLpymysql 操作,在操作前需要简单准备下数据,对应的 SQL 语句如下: ```sql drop database if exists mydb17_pymysql; create database if not exists mydb17_pymysql; use mydb17_pymysql; create table if not exists student ( sid int primary key auto_increment, sname varchar(20), age int ); insert into student values (null, '宋江', 30), (null, '武松', 28), (null, '林冲', 26); ``` 以上内容分别来自不同的黑马教程相关笔记,提供了 pymysql 连接数据库、插入数据等操作的示例,可作为学习 pymysql 的参考资料[^1][^2][^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值