1 Star 0 Fork 0

读梦人/python_study

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
056-Docker操作MySQL.py 2.00 KB
一键复制 编辑 原始数据 按行查看 历史
读梦人 提交于 2023-08-27 21:36 . 作业
"""
# 作业:
1、code实现
2、mysqldb
# 笔记:
#1、连接MySQL
import pymysql
connection = pymysql.connect(host='127.0.0.1',
port=3307,
user='root',
password='123456',
db='wzw',
charset='utf8mb4')
print(connection)
#获取游标
cursor = connection.cursor()
#create tables
res = cursor.execute("create table if not exists tera(id int primary key,name varchar(100)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;")
print(f'create table 影响行数:{res}')
#DML
res1 = cursor.execute("delete from tera;")
res2 = cursor.execute("insert into tera (id,name) values(1,'wzw');")
print(f'delete影响行数:{res1}')
print(f'insert影响行数:{res2}')
#通过字典格式插入数据 insert dict
dict1 = {'id': 123, 'name': 'qwe'}
sql = "insert into tera (id,name) values(%(id)s, %(name)s);"
res = cursor.execute(sql, dict1)
#提交SQL
#connection.commit()
print(f'insert影响行数:{res}')
#批量插入数据
# sql = "insert into tera (id,name) values(%s, %s) on duplicate key update name=values(name)", [(1, 'qaz'), (123, 'wsx')]
# res = cursor.executemany(sql)
effect_row = cursor.executemany(
"insert into tera (id,name) values(%s, %s) on duplicate key update id=values(id)", [
(1, 'qaz'),
(123, 'wsx')
])
print(f'insert影响行数:{effect_row}')
#
sql = "select * from tera"
res1 = cursor.execute(sql) #执行查询SQL
res2 = cursor.fetchall() #获取结果集,dict格式
print(res2)
2、事务处理
connection.begin()
connection.commit()
connection.rollback()
3、常用的封装操作
https://github.com/ayuliao/mysqldb
#补充调用方法:
#1)连接池(很多连接),每隔一段时间,检查一下连接池中连接是否活跃。
1.1)mysql的连接会被server端主动断开;
1.2)所以采用PyMySQL池,Thread =>while True => Ping MySQL Server
1.3)如果因为server端异常断开,SQL执行失败,
"""
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/w854090472/python_study.git
git@gitee.com:w854090472/python_study.git
w854090472
python_study
python_study
master

搜索帮助