python使用pymysql来操作MySQL

news/2024/10/26 15:27:09/

例子1

from pymysql import Connection# 构建到MySQL数据库的连接
conn= Connection(host="localhost",port=3306,user="root",password="123456",autocommit=True # 设置自动提交
)print(conn.get_server_info())# 要执行SQL查询必须要先获得游标对象
cursor = conn.cursor()
# 选择数据库
conn.select_db("test")
# 执行sql
#cursor.execute("create table test_pymysql(id int);")
# 执行 查询的sql
cursor.execute("select * from student")results = cursor.fetchall() # 得到的是嵌套的元组,内层元组是每一条记录
for r in results:print(r)# 关闭连接
conn.close()

输出结果:

8.0.30
(10001, '周杰轮', 31, '男')
(10002, '王力鸿', 33, '男')
(10003, '蔡依琳', 35, '女')
(10004, '林志灵', 36, '女')
(10005, '刘德滑', 33, '男')
(10006, '张大山', 10, '男')
(10007, '刘志龙', 11, '男')
(10008, '王潇潇', 33, '女')
(10009, '张一梅', 20, '女')
(10010, '王一倩', 13, '女')
(10011, '陈一迅', 31, '男')
(10012, '张晓光', 33, '男')
(10013, '李大晓', 15, '男')
(10014, '吕甜甜', 36, '女')
(10015, '曾悦悦', 31, '女')
(10016, '刘佳慧', 21, '女')
(10017, '项羽凡', 23, '男')
(10018, '刘德强', 26, '男')
(10019, '王强强', 11, '男')
(10020, '林志慧', 25, '女')

例子2:设置自动提交,使得insert能生效

from pymysql import Connection# 构建到MySQL数据库的连接
conn= Connection(host="localhost",port=3306,user="root",password="123456",autocommit=True # 设置自动提交, 进行insert才能正常插入记录
)print(conn.get_server_info())# 要执行SQL查询必须要先获得游标对象
cursor = conn.cursor()
# 选择数据库
conn.select_db("test")
# 执行sql
#cursor.execute("create table test_pymysql(id int);")
# 执行 查询的sql
cursor.execute("insert into student values(10021, '孙绍谦', 33, '男')")# 关闭连接
conn.close()

例子3

使用python读取数据,并将数据写入到MySQL

先执行如下SQL语句创建表:

create database py_sql charset utf8;use py_sql;create table orders(order_date date,order_id varchar(255),money int,province varchar(10)
);

然后是使用前面数据分析的代码进行改造:

from file_define import FileReader, TextFileReader, JsonFileReader
from data_define import Record
from pymysql import Connectiontext_file_reader = TextFileReader("./2011年1月销售数据.txt")
json_file_reader = JsonFileReader("./2011年2月销售数据JSON.txt")jan_data: list[Record] = text_file_reader.read_data()
feb_data: list[Record] = json_file_reader.read_data()# 将两个月份数据合并为到一个list中
all_data: list[Record] = jan_data + feb_data# 1.构建MySQL对象
conn = Connection(
host="localhost",port=3306,user="root",password="123456",autocommit=True # 设置自动提交, 进行insert才能正常插入记录
)# 2.获得游标对象
cursor = conn.cursor()
# 3.选择数据库
conn.select_db('py_sql')
# 4.组织 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()

http://www.ppmy.cn/news/349098.html

相关文章

宏晶微MS2109高清视频采集芯片资料

MS2109是一款高清视频传采集晶片,内部集成USB2.0控制器和数据收发模块,HDMI RX模块和音视频处理模块。MS2109可以将HDMI接口输出的音视频信号通过USB接口传送到PC,智慧型手机或者平板电脑预览或者采集。USB视频符合UVC规范,音频符…

GSCOOLINK GSV2006替CH6002 HDMI2.0接口芯片

GSV2006是100%纯国产产品 GSV2006是 HDMI2.0/HDCP2.2 2x4 矩阵, 支持DownScaler, CSC 及音频分离和音频嵌入,支持ARC 及CEC 功能。 目标应用:HDMI2.0矩阵,分离器。 功能特征 1、2进4出 2、18 Gbps 3、灵活的HDCP 2.2/1.4支持 4、双路音频…

《嵌入式 – GD32开发实战指南》第21章 I2C

开发环境: MDK:Keil 5.30 开发板:GD32F207I-EVAL MCU:GD32F207IK 21.1 I2C工作原理 21.1.1 I2C串行总线概述 I2C总线是PHLIPS公司推出的一种双线式半双工串行总线,是具备多主机系统所需的总线裁决和高低速器件同步功…

展讯UIS8910FF

目录 1. 产品简介 1.1. 文档约定 2.功能特性 2.1. 特性列表 2.2. 系统框架 3.物理接口 3.1. 管脚分布 1. 产品简介 展讯UIS8910FF系列模组是基于紫光展锐 LTE平台方案开发的LTE CAT1/GSM系列无线通信产品,能够通过FDD-LTE、TDD-LTE 和GSM 实现数据连接&#…

GSCOOLINK基石 GSV2002替IT66321 HDMI2.0

GSV2002是100%纯国产产品 GSCOOLINK GSV2002 HDMI2.0芯片替代IT66321 GSV2002是HDMI2.0/HDCP2.2 2x2 矩阵,支持DownScaler, CSC 及音频分离和音频嵌入,支持ARC 及CEC 功能。 GSV2002目标应用:矩阵,分配器切换器,条形音响,AVR 等…

TIC2000系列处理器在线升级

_c_int00是CPU退出boot ROM 引导代码结束后,通过code_start段的跳转函数引用的库中的一个函数,这个函数是main函数的引用者,也是定义者。其位于rts2800_fpu32.lib中,要实现SBL,APP,kernel之间的顺利跳转,需要修改_c_in…

initramfs 最全解释与制作

先提几个问题: 0、什么是 initrd 和 initramfs? 概述 现代Linux系统都使用到了一种功能比较特殊的微型系统,作为Linux内核初始化完成但未进入最终系统时的过渡系统,主要的目的是为了将最终系统载入到根文件系统上,辅…

lvgl-04 按键按下效果样式实现

static lv_style_t style_btn; static lv_style_t style_btn_pressed; static lv_style_t style_btn_red;static lv_color_t darken(const lv_color_filter_dsc_t * dsc, lv_color_t color, lv_opa_t opa) {LV_UNUSED(dsc);return lv_color_darken(color, opa); //使能变暗 }…