时间:2020.12.02
环境:Python3
目的:简单使用pymysql库
说明:
作者:Zhong QQ交流群:121160124 欢迎加入!
新建一个用于演示的MySQL表
CREATE TABLE `test_demo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
`value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
`create_time` datetime(0) NOT NULL,
`update_time` datetime(0) NOT NULL ON UPDATE CURRENT_TIMESTAMP(0),
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 101 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic;
安装pymysql
pip3 install -i https://pypi.douban.com/simple pymysql
常用的方法代码
假设mysql存在用户名为 admin 密码为 Pass@123 的用户
#!/usr/bin/python3
import pymysql
import datetime
# 获取当前的时间
time_now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
try:
# 建立数据库连接
db_conn = pymysql.connect(
host='127.0.0.1',
port=3306,
user='admin',
passwd='Pass@123',
db='test_demo')
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db_conn.cursor()
# 1. 提交一条sql语句
sql = """SELECT * FROM test_demo""" # 要执行的sql语句
rowcount = cursor.execute(sql) # 使用execute()方法执行SQL rowcount 这是一个只读属性 返回执行execute()方法后影响的行数
results = cursor.fetchone() # 使用 fetchone() 方法获取单条数据
# results = cursor.fetchmany(10) # 使用 fetchmany(size) 方法获取指定size条数据 size为整数类型 默认为1
# results = cursor.fetchall() # 使用fetchall() 方法获取所有数据
# 2. executemany()方法提交多条插入数据
# sql = """INSERT INTO test_demo (`key`, `value`, `create_time`, `update_time`) VALUES (%s, %s, %s, %s);""" # 要执行的sql语句
# ls = []
# # 生成100条数据
# for i in range(100):
# value = (str(i), "test_%s" % i, time_now, time_now)
# ls.append(value)
# # 传入sql语句与数据列表 ls会自动拆包
# rowcount = cursor.executemany(sql, ls)
# results = cursor.fetchall() # 插入操作返回结果为()
# 提交 在改变表内容的情况下使用如 插入操作 查询不需要 多条数据写入在for循环外面声明就可以
db_conn.commit()
# 关闭游标 一般不需要声明
# cursor.close()
# 关闭数据库连接
db_conn.close()
print("影响的行数: \n", rowcount)
print("返回的结果: \n", results)
except Exception as e:
print("Error: \n", e)
# 如果发生错误则回滚
db_conn.rollback()
加入qq群 关注微信公众号


1173

被折叠的 条评论
为什么被折叠?



