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

这篇具有很好参考价值的文章主要介绍了python基础----10-----python操作mysql。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一 前言

对于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()

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

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

2.2 commit提交

python基础----10-----python操作mysql
即在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()

插入前的表数据:
python基础----10-----python操作mysql

插入后的表数据:
python基础----10-----python操作mysql

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

三 综合案例

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

因为文件有四列,所以我们数据库的表创建对应四个字段,如下图。
python基础----10-----python操作mysql

然后打开DBeaver(Nvicat也可以),输入以下内容创建数据库和表。
python基础----10-----python操作mysql

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

生成打开表。
python基础----10-----python操作mysql

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条数据被插入。
python基础----10-----python操作mysql文章来源地址https://www.toymoban.com/news/detail-479494.html

到了这里,关于python基础----10-----python操作mysql的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySql前言

    🎥 个人主页:Dikz12 🔥个人专栏:MySql 📕格言:那些在暗处执拗生长的花,终有一日会馥郁传香 欢迎大家👍点赞✍评论⭐收藏 目录  数据库有哪些软件??  Mysql  MySql数据存储 mysql安装 mysql重装                                                          Oracle: 数据

    2024年02月01日
    浏览(47)
  • MySQL数据库 10.DCL操作

    目录 🤔 前言: 🤔DCL介绍: 🤔1.DCL管理用户: 1.查询用户: 图示:  2.创建用户 示例1: 运行结果:​ 示例2:  运行结果:​ 3.修改用户密码 示例: 运行结果:​ 4.删除用户: 示例: 运行结果:​ 🤔 2.DCL管理权限: 1.查询用户当前权限  示例: 运行结果: ​ 2.授予

    2024年02月08日
    浏览(76)
  • MySQL数据库基础 10

    存储数据是处理数据的第一步 。只有正确地把数据存储起来,我们才能进行有效的处理和分析。否则,只能是一团乱麻,无从下手。 那么,怎样才能把用户各种经营相关的、纷繁复杂的数据,有序、高效地存储起来呢? 在 MySQL 中,一个完整的数据存储过程总共有 4 步,分别

    2024年02月08日
    浏览(61)
  • 【自制视频课程】C++OpnecV基础35讲——第一章 前言

            首先,opencv是一个广泛使用的计算机视觉库,它提供了丰富的图像处理和计算机视觉算法,可以帮助我们快速地开发出高质量的图像处理应用程序;         其次,opencv是一个开源库,可以免费使用和修改,这为我们提供了一个学习和研究计算机视觉的良好平

    2024年02月05日
    浏览(55)
  • 银河麒麟V10操作系统(aarch64架构)部署mysql

    1.解压 2.安装必须软件(务必根据顺序) 3.修改配置文件 在末尾补一行: 4.初始化数据库 5.目录授权 6.启动mysql服务 7.编辑下环境变量 末尾加上一行: 8.查看临时密码 9.用临时密码登录 10.修改密码  navicat远程连接报错 1251 client does not support authentication protocol requested by server;c

    2024年02月09日
    浏览(67)
  • 银河麒麟v10操作系统之 mysql 5.7 手动安装

    官网下载地址:https://dev.mysql.com/downloads/mysql/ 打开 https://dev.mysql.com/downloads/mysql/,默认显示的是最新版MySQL8,需要我们点击查看其他版本。  或者也可以这样。 我图省事直接按上图操作了哈。  接下来看图操作  根据自己的系统位数去选择,Linux系统输入  getconf LONG_BIT 命令

    2024年02月09日
    浏览(53)
  • sql——对于行列转换相关的操作

    目录 一、lead、lag 函数 二、wm_concat 函数 三、pivot 函数 四、判断函数         遇到需要进行行列转换的数据处理需求,以 oracle 自带的表作为例子复习一下:          需要行列转换的表:         先将转化结果贴出来易于理解         得到:          可以看出

    2024年03月26日
    浏览(41)
  • 对于windows10家庭版无法勾选Hyper-V的问题的解决

    Hyper-V是Win10自带的虚拟机安装管理工具,使用Hyper-V 可以比较方便地在win10上安装各种不同的虚拟机,包括各种版本的Linux,FreeBSD和Windows。 但是不少初学者在尝试使用该功能时,发现自己并不能按照上文链接中的方法达成目的,其中很大一部分是由于本身电脑版本问题。因此

    2024年02月02日
    浏览(35)
  • [MySQL] MySQL基础操作汇总

    MySQL专栏汇总 :MySQL 必死 数据库:DataBase (DB) 按照一定格式存储数据的一些文件的组合 存储数据的仓库,数据文件,日志文件。具有一定特定格式的数据。 数据库管理系统:DataBase Management (DBMS) 专门用来管理数据库中的数据的,数据库管理系统可以对数据当中的数据进行增

    2024年02月11日
    浏览(35)
  • [MySQL] MySQL表的基础操作

    文章目录 一、创建表 1、1 SQL语法 1、2 实例演示 二、查询表 三、修改表 3、1 修改表名字 3、2 新增列(字段) 3、3 修改列类型 3、4 修改列名 3、5 删除表 四、总结 🙋‍♂️ 作者:@Ggggggtm 🙋‍♂️ 👀 专栏:MySQL 👀 💥 标题:MySQL表的基础操作💥  ❣️ 寄语:与其忙

    2024年02月05日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包