python基础----10-----python操作mysql

news2024/11/26 23:19:52

一 前言

对于SQL章节前言->SQL_DQL_排序分页的课程,这里不做记录,因为都是讲MYSQL本身的内容,与python无关。
当然,接下来的课需要用到mysql,所以大家需要自行下载,这并不难。

二 python操作MYSQL基础使用

安装第三方库。

pip install pymysql

2.1 select查询

from pymysql import Connection

# 获取到mysql数据的链接对象
conn = Connection(
    host="localhost",  # 主机名
    port=3306,  # 端口
    user="root",  # 账户
    password="123456"  # 密码
)

# 获取游标对象
cursor = conn.cursor()

# 选择数据库
# conn.select_db("sys")
# 执行sql
# cursor.execute("create tabel test_pymysql(id int);")

# 获取查询结果
conn.select_db("girls")
cursor.execute("select * from boys")
results = cursor.fetchall()
print(type(results))
print(results)

for r in results:
    print(r)

# 关闭
conn.close()

在这里插入图片描述

在这里插入图片描述

2.2 commit提交

在这里插入图片描述
即在pymysql进行插入或者修改的sql语句时,需要添加xxx.commit(),否则无法插入或者修改。

from pymysql import Connection

# 获取到mysql数据的链接对象
conn = Connection(
    host="localhost",  # 主机名
    port=3306,  # 端口
    user="root",  # 账户
    password="123456"  # 密码
)

# 获取游标对象
cursor = conn.cursor()

conn.select_db("girls")
cursor.execute("insert into boys values(5,'乔峰',50)")
# 确认
conn.commit()

# 关闭
conn.close()

插入前的表数据:
在这里插入图片描述

插入后的表数据:
在这里插入图片描述

在这里插入图片描述

三 综合案例

需求:将数据分析案例的两个文件的内容读取出来,将其保存到数据库中。

因为文件有四列,所以我们数据库的表创建对应四个字段,如下图。
在这里插入图片描述

然后打开DBeaver(Nvicat也可以),输入以下内容创建数据库和表。
在这里插入图片描述

CREATE DATABASE py_sql charset utf8;
use py_sql;
CREATE TABLE orders(
	order_date DATE,
	order_id VARCHAR(255),
	money INT,
	provice VARCHAR(10)
)

生成打开表。
在这里插入图片描述

data_define.py:

class Record:
    #定义4个成员变量,因为两个数据txt都是四列数据
    def __init__(self,data,order_id,money,provine):
        self.date = data  #订单日期
        self.order_id = order_id#订单ID
        self.money = money#订单金额
        self.provine = provine#订单省份
    def __str__(self):
        return (f"{self.date}, {self.order_id}, {self.money}, {self.provine}")

file_define.py:

import json

from data_define import Record

# 文件父类
class FileReader:
    def read_data(self) :
        pass

# 读取文本文件
class TextFileReader(FileReader):
    def __init__(self,path):
        self.path = path

    # 从文件读取数据,并封装成Record列表返回
    def read_data(self):
        f = open(self.path,"r",encoding="UTF-8")
        record_list = []
        for line in f.readlines():
            line = line.strip() # 去掉\n
            data_list = line.split(",")
            record = Record(data_list[0], data_list[1], int(data_list[2]), data_list[3])
            record_list.append(record)
        f.close()
        return record_list # list[Record]

# 读取json文件
class JsonFileReader(FileReader):
    def __init__(self,path):
        self.path = path

    # 从文件读取数据,并封装成Record列表返回
    def read_data(self):
        f = open(self.path, "r", encoding="UTF-8")
        record_list = []
        for line in f.readlines():
            data_dict = json.loads(line)
            record = Record(data_dict["date"], data_dict["order_id"], int(data_dict["money"]), data_dict["province"])
            record_list.append(record) # list[Record]
        f.close()
        return record_list



if __name__ == '__main__':
     text_file_reader = TextFileReader("C:/Users/Administrator/Desktop/Py/第13章资料/2011年1月销售数据.txt")
     json_file_reader = JsonFileReader("C:/Users/Administrator/Desktop/Py/第13章资料/2011年2月销售数据JSON.txt")
     list1 = text_file_reader.read_data()
     list2 = json_file_reader.read_data()

     for l in list1:
         print(l)
     for l in list2:
         print(l)

main.py:

from file_define import FileReader, TextFileReader, JsonFileReader
from data_define import Record
from pyecharts.charts import Bar
from pyecharts.options import *
from pyecharts.globals import ThemeType
from pymysql import Connection

text_file_reader = TextFileReader("C:/Users/Administrator/Desktop/Py/第13章资料/2011年1月销售数据.txt")
json_file_reader = JsonFileReader("C:/Users/Administrator/Desktop/Py/第13章资料/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

# 构建mysql链接对象
conn = Connection(
    host="localhost",  # 主机名
    port=3306,  # 端口
    user="root",  # 账户
    password="123456",  # 密码
    autocommit=True  # 手动提交
)
# 获得游标对象
cursor = conn.cursor()
# 选择数据库
conn.select_db("py_sql")

# 组织sql语句
for record in all_data:
    sql = f"insert into orders(order_date, order_id, money, provice) " \
            f"values('{record.date}','{record.order_id}','{record.money}','{record.provine}')"

    # 智行sql语句
    cursor.execute(sql)

print("插入完成")

结果:可以看到,总共有1000条数据被插入。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/627294.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

当BPM遇上低代码 “自定义”提升业务管理效率

业务流程管理(BPM)的历史可以追溯到科学管理和质量管理的发展,并逐步演变为一个更加系统化和综合的管理方法。它在现代组织中起到了优化业务流程、提高效率和质量、增强灵活性和创新能力的重要作用。 从20世纪初的科学管理理论中&#xff0c…

【Linux】什么是进程(process)?

目录 进程与程序概念描述进程-PCBWindows进程与Linux进程Linux进程操作子进程父进程创建进程(初识-fork) 进程与程序概念 在Linux系统中,触发任何一个事件时,系统都会将它定义成为一个进程,并且给予这个进程一个ID,成为PID&#x…

Apikit 自学日记:如何安装 Apikit

Apikit 有三种客户端,你可以依据自己的情况选择。三种客户端的数据是共用的,因此你可以随时切换不同的客户端。 肯定会有和我一样的小白,第一次听说 Apikit这个工具,那么我今天和大家一起学习下这个工具如何安装。 我们推荐使用新…

校招失败后,在小公司熬了 2 年终于进了华为,这次真是竭尽全力了····

其实两年前校招的时候就往华为投了一次简历,结果很明显凉了,随后这个理想就被暂时放下了,但是这个种子一直埋在心里这两年除了工作以外,也会坚持写博客,也因此结识了很多优秀的小伙伴,从他们身上学到了特别…

Angular实现用ng-class和ng-style控制数组最后一个数据为红色

首先我们来看class方案实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title>…

Python模块的安装

1.用pip命令安装模块 pip是python官方的编程环境提供的一个命令&#xff0c;主要功能就是安装和卸载第三方模块。 用pip命令安装模块的方法最简单也最常用&#xff0c;这种默认将模块安装在python安装目录中的“site-packages"文件下。 1.1 pip命令安装模块的具体方法 …

MySQL的索引为什么要下推?

文章目录 一、回表操作 二、主键索引 三、非主键索引 四、低版本操作 五、高版本操作 六、总结 一、回表操作 对于数据库来说&#xff0c;只要涉及到索引&#xff0c;必然绕不过去回表操作。当然这也是我们今天所讲的内容的前提基础。说到回表&#xff0c;我们需要从索引…

HarmonyOS学习路之开发篇—Java UI框架(DirectionalLayout)

DirectionalLayout DirectionalLayout是Java UI中的一种重要组件布局&#xff0c;用于将一组组件(Component)按照水平或者垂直方向排布&#xff0c;能够方便地对齐布局内的组件。该布局和其他布局的组合&#xff0c;可以实现更加丰富的布局方式。 DirectionalLayout示意图 支持…

微信小程序实现瀑布流布局效果

一、效果 二、内容 1、xml代码 <!-- 列表 --><view class"list_title">推荐</view><view class"waterfall"><block wx:for"{{list}}" wx:key"index" wx:for-index"id" wx:for-item"itemNam…

cmd进入mysql及常用的mysql操作

cmd进入mysql操作 winR&#xff0c;输入cmd&#xff0c;打开cmd窗口&#xff0c;进入到 mysql bin目录的路径下 第一步&#xff1a;启动mysql服务&#xff0c;可以通过“net start myql”命令实现&#xff1b; 第二步&#xff1a;先使用DOS命令进入mysql的安装目录下的bin目…

ChatGPT 国内镜像网站独家汇总:发现最优秀的人工智能对话体验

欢迎来到我们的 ChatGPT 镜像网站汇总博客&#xff01;在这个令人激动的人工智能时代&#xff0c;ChatGPT 作为一款顶尖的语言模型&#xff0c;已经引起了全球范围内的热议。但是&#xff0c;您是否曾经为了找到最佳的 ChatGPT 使用体验而苦苦搜寻&#xff1f;别担心&#xff0…

程序员工作中的 80/20 法则如何体现?

80/20 原则的基础概念 该原则认为&#xff0c; 大部分效果出自少数起因。例如&#xff0c; 少数人得到大部分收入&#xff0c; 少数研究者做出大多数创新成果&#xff0c;少数作者写出大部分图书&#xff0c;等等。 您可能听说过 80/20 原则——它在个人生产力文献中随处可见…

国产文档控件Spire.Doc for.NET ,增强从 Word 到 PDF 和 HTML 的转换

Spire.Doc pack &#xff08;hotfix&#xff09; 11.5.12 增强了从 Word 到 PDF 和 HTML 的转换 很高兴地宣布发布 Spire.Doc 11.5.12。此版本增强了从 Word 到 PDF 和 HTML 的转换。此外&#xff0c;此版本还修复了一些已知问题&#xff0c;例如应用程序在加载文档时抛出“Sy…

django实现读取数据导出生成excel表格

目录 一、简单示例&#xff1a; 1.创建文件对象&#xff1a; 2.添加工作表&#xff1a; 3.写入数据&#xff1a; 二、实践出真理 需要先安装xlwt模块 pip install -i https://pypi.douban.com/simple xlwt一、简单示例&#xff1a; import xlwt# 创建一个Excel文件对象 …

教你该如何设计接口测试用例方法!

目录 前言&#xff1a; 一、用例设计过程&#xff1a; 二、接口测试用例构思结构&#xff1a; 三、测试过程验证点&#xff1a; 前言&#xff1a; 接口测试用例设计方法是进行接口测试的重要步骤。设计有效的测试用例可以帮助我们发现软件中可能存在的问题和缺陷&#xff…

有了IP地址,还需要MAC地址嘛?二选一可否?

概要 在计算机网络中&#xff0c;IP地址和MAC地址是两个最基本的概念。IP地址在互联网中是用于标识主机的逻辑地址&#xff0c;而MAC地址则是用于标识网卡的物理地址。虽然它们都是用于标识一个设备的地址&#xff0c;但是它们的作用和使用场景是不同的。 IP地址是在网络层&am…

Xilinx原语——IDDR与ODDR的使用(Ultrascale系列)

Xilinx原语——IDDR与ODDR的使用&#xff08;Ultrascale系列&#xff09; 一、IDDR1.1 OPPOSITE_EDGE1.2 SAME_EDGE1.3 SAME_EDGE_PIPELINED1.4 三种模式异同 二、ODDR三、IDDR与ODDR仿真3.1 IDDR仿真3.1.1 IDDR顶层3.1.2 TestBench3.1.3 仿真结果 3.2 ODDR仿真3.2.1 ODDR顶层文…

5.2.9 无分类编址和CIDR

5.2.9 无分类编址和CIDR 前面我们知道&#xff0c;为了更加合理的使用IP地址&#xff0c;采用了子网划分的方法&#xff0c;事实证明子网划分这种网络编址&#xff0c;能够节省IP网络地址&#xff0c;但是到了1993年的时候因特网的增长速度还是让人们感觉到了这些技术它无法阻…

移动信道的多普勒扩展及相干时间

本专栏包含信息论与编码的核心知识&#xff0c;按知识点组织&#xff0c;可作为教学或学习的参考。markdown版本已归档至【Github仓库&#xff1a;https://github.com/timerring/information-theory 】或者公众号【AIShareLab】回复 信息论 获取。 文章目录 移动信道的多普勒扩…

深眸科技专注机器视觉的研发与创新,开启工业自动化、智能化进程

在智能制造、工业效能提升的社会背景之下&#xff0c;中国制造2025战略持续落实&#xff0c;工业制造业转型升级加速&#xff0c;作为人工智能领域重要技术之一的机器视觉&#xff0c;凭借着高精度、高准确度等优势检测能力&#xff0c;不断渗透进工业领域&#xff0c;并呈现出…