pymysql

查询所有结果---> cursor.fetchall()方法

存在修改操作,需要确认提交

1、手动提交---> conn.commit()

2、设置自动提交---> autocommit=True

python 复制代码
from pymysql import Connection

# 连接数据库
conn = Connection(
    host='localhost',   # 主机名(ip)
    port=3306,          # 端口号
    user='root',        # 用户名
    passwd='123456',    # 密码
    autocommit=True     # 设置自动提交
)
# 打印一下数据库服务器的版本号,也是确认数据库有没有连上
# print(conn.get_server_info())

# 获取游标对象
cursor = conn.cursor()
# 选择一个数据
conn.select_db("test")

# 使用游标对象,执行sql语句-->创建test_pymysql表,并且一个int类型的id字段
# cursor.execute("create table test_pymysql (id int);")

# 查询表
# cursor.execute("select * from test_pymysql")
# 使用cursor.fetchall()方法,查询所有结果
# result = cursor.fetchall()
# for r in result:
#     print(r)

# 插入一行
# cursor.execute("insert into test_pymysql values(3, '小小', 25, '女')")
# conn.commit()   # 手动确认提交

# 修改部分字段数据
cursor.execute("update test_pymysql set name='大大', age=23 where id=5")

# 关闭连接
conn.close()

实例:将数据写入数据库

python 复制代码
from data_reading.data_define import Record
from data_reading.file_define import TextFileReader, JsonFileReader
from pymysql import Connection

text_file_reader = TextFileReader("E:\\python\\销售数据.txt")
json_file_reader = JsonFileReader("E:\\python\\销售数据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="localhost",
    port=3306,
    user="root",
    passwd="123456",
    autocommit=True
)
cursor = conn.cursor()
conn.select_db("py_sql")
# for record in all_data:
#     sql = ("insert into orders(order_date, order_id, money, province) values(%s, %s, %s, %s)")
#     params = ((record.date, record.order_id, record.money, record.province))
#     # print(sql)
#     cursor.execute(sql, params)

cursor.execute("select * from orders")
result = cursor.fetchall()
for i in result:
    print(i)

conn.close()
相关推荐
IpdataCloud3 分钟前
跨境支付如何识别高风险IP?用IP风险画像服务选型与集成指南
服务器·网络·数据库·tcp/ip·安全
agilearchitect8 分钟前
asyncpg:专为 asyncio 打造的 PostgreSQL 驱动
数据库·其他·postgresql
是个西兰花13 分钟前
linux:命名管道与共享内存
linux·运维·服务器·网络·c++
swordbob23 分钟前
缓存延迟双删的两种策略
java·缓存
凡人叶枫23 分钟前
Effective C++ 条款08:别让异常逃离析构函数
java·linux·数据库·c++·嵌入式开发
云烟成雨TD24 分钟前
Agent Scope Java 2.x 系列【4】模型层
java·人工智能·agent
herinspace29 分钟前
管家婆财工贸软件中关于价格常见问题小结
服务器·网络·数据库·电脑·管家婆软件
云烟成雨TD36 分钟前
Agent Scope Java 2.x 系列【5】智能体抽象层
java·人工智能·agent
Sean‘37 分钟前
在隔离内网机器上使用 Filebeat 全量采集日志并推送到 ELK 的实战
运维·服务器·elk
阿伟AI说40 分钟前
Codex 桌面版接入国产模型系列二:Codex++
java·开源软件·ai编程·腾讯云ai代码助手