Python第二语言(十二、SQL入门和实战)

目录

1. Python中使用MySQL

1.1 pymysql第三方库使用MySQL

1.2 连接MySQL

1.3 操作数据库,创建表

1.4 执行查询数据库语句

2. python中MySQL的插入语句

2.1 commit提交

2.2 自动提交

3. pymysql案例

3.1 数据内容

3.2 DDL定义

3.3 实现步骤

3.4 文件操作


导航:

Python第二语言(一、Python start)-CSDN博客

Python第二语言(二、Python语言基础)-CSDN博客

Python第二语言(三、Python函数def)-CSDN博客

Python第二语言(四、Python数据容器)-CSDN博客

Python第二语言(五、Python文件相关操作)-CSDN博客

Python第二语言(六、Python异常)-CSDN博客

Python第二语言(七、Python模块)-CSDN博客

Python第二语言(八、Python包)-CSDN博客

Python第二语言(九、Python第一阶段实操)-CSDN博客

Python第二语言(十、Python面向对象(上))-CSDN博客

Python第二语言(十一、Python面向对象(下))-CSDN博客

Python第二语言(十二、SQL入门和实战)-CSDN博客

Python第二语言(十三、PySpark实战)-CSDN博客

Python第二语言(十四、高阶基础)-CSDN博客

1. Python中使用MySQL

1.1 pymysql第三方库使用MySQL
  • 除了使用图形化工具以外,我们也可以使用编程语言来执行SQL从而操作数据库;
  • 在Python中,使用第三方库:pymysql来完成对MySQL数据库的操作;
  • 安装 pip install pymysql;
1.2 连接MySQL
# 导入pymysql包
from pymysql import Connection# 获取到MySQL数据库连接对象
conn = Connection(host='127.0.0.1',port=13306,user='root',password='123456',
)print(conn.get_server_info())
conn.close()

1.3 操作数据库,创建表
from pymysql import Connection
# 1.获取MySQL连接
coon = Connection(host='localhost',port=3306,user='root',password='123456'
)
# 2.获取游标对象
cursor = coon.cursor()
coon.select_db("demo")  # 3.use数据库
# 4.使用游标对象,执行sql
cursor.execute("CREATE TABLE test_pymysql(id INT, info VARCHAR(225))")
# 5.关闭数据库连接
coon.close()

1.4 执行查询数据库语句

数据库数据:

代码:

from pymysql import Connection# 1.获取MySQL连接
coon = Connection(host='localhost',port=3306,user='root',password='123456'
)
# 2.获取游标对象
cursor = coon.cursor()
coon.select_db("demo")  # 3.use数据库
# 4.使用游标对象,执行sql
execute = cursor.execute("SELECT * FROM test_pymysql")
# 获取查询结果
results: tuple = cursor.fetchall()
for r in results:print(r)
# 5.关闭数据库连接
coon.close()

小结:

  1. Python中使用pymysql第三方库来操作MySQL;
    • 安装:pip install pymysql
  2. 获取链接对象:
    • from pymysql import Connection 导包;
    • Connection(主机,端口,账户,密码)即可得到链接对象;
    • 链接对象.close()关闭和MySQL数据库的连接
  3. 执行SQL查询:
    • 通过连接对象调用cursor()方法,得到游标对象;
    • 游标对象.execute()执行SQL语句;
    • 游标对象.fetchall()得到全部的查询结果封装从元组内

2. python中MySQL的插入语句

2.1 commit提交

在pymysql中,执行数据插入或其它产生数据更改SQL语句时,默认是需要commit提交更改的;

# 执行sql
cursor.execute("INSERT INTO test_pymysql VALUES(6, '这是插入')")
# 提交
coon.commit()

2.2 自动提交

autocommit=True # 设置自动提交

插入结果:

3. pymysql案例

  • 案例需求:使用python语言,读取数据,并将数据写入到MySQL;
3.1 数据内容
  • 6月份数据是普通文本,使用逗号分割数据记录,从前到后分别是(日期,订单id,销售额,销售省份)
  • 7月份数据是JSON数据,同样包含(日期,订单id,销售额,销售省份)
  • 数据参考:Python第二语言(十一、Python面向对象(下))-CSDN博客

3.2 DDL定义

数据库名:demo

建表语句:

CREATE TABLE `orders` (`id` int(11) NOT NULL COMMENT '主键',`date_time` datetime DEFAULT NULL COMMENT '日期',`order_id` varchar(40) DEFAULT NULL COMMENT '订单id',`money` int(4) DEFAULT NULL COMMENT '销售额',`province` varchar(40) DEFAULT NULL COMMENT '销售省份',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
3.3 实现步骤
  1. 读取数据:使用面向对象代码案例;
  2. 封装数据对象:使用面向对象代码案例;
  3. 构建数据库连接;
  4. 写入数据库;
3.4 文件操作

1. all_data数据:

2. 开发工具配置数据库:

3. 遇到ModuleNotFoundError: No module named 'data_define'

需要使用from my_package.orm_data_plan.data_define import Record这个包路径;

4. 插入语句构建:

if __name__ == '__main__':text_file_reader = TextFileReader("../file/2024年6月数据")json_file_reader = JsonFileReader("../file/2024年7月销售数据JSON")data = text_file_reader.read_data()data1 = json_file_reader.read_data()all_data = data + data1sql = ""id = 0for record in all_data:id += 1sql = f"INSERT INTO orders VALUES({id}, '{record.date}', '{record.order_id}', {record.money}, '{record.province}')"print(sql)

5. 插入案例

  • 解释:获取数据库连接,设置自动提交,配置创建表语句,IF NOT EXISTS表不存在就创建,读取两个文件的内容并合并,加上表id,组装sql,使用execute执行插入语句;
from pymysql import Connectionfrom my_package.orm_data_plan.file_define import TextFileReader, JsonFileReadercoon = Connection(host='localhost',port=3306,user='root',password='123456',autocommit=True
)cursor = coon.cursor()
coon.select_db("demo")# 创建表的SQL语句
create_table_sql = """CREATE TABLE IF NOT EXISTS  `orders` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`date_time` datetime DEFAULT NULL COMMENT '日期',`order_id` varchar(40) DEFAULT NULL COMMENT '订单id',`money` int(11) DEFAULT NULL COMMENT '销售额',  -- 更改为更合适的int(11)`province` varchar(40) DEFAULT NULL COMMENT '销售省份',PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"""
# 执行创建表的SQL语句
cursor.execute(create_table_sql)text_file_reader = TextFileReader("../file/2024年6月数据")
json_file_reader = JsonFileReader("../file/2024年7月销售数据JSON")
data = text_file_reader.read_data()
data1 = json_file_reader.read_data()
all_data = data + data1sql = ""
id = 0
for record in all_data:id += 1sql = f"INSERT INTO orders VALUES({id}, '{record.date}', '{record.order_id}', {record.money}, '{record.province}')"print(sql)# SQL插入语句cursor.execute(sql)coon.close()

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

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

相关文章

用python克隆了前男友的声音

声音克隆开源项目推荐:MockingBird 项目简介 MockingBird 是一个由开源社区开发的声音克隆项目,托管在 GitHub 上。该项目旨在通过深度学习技术实现高质量的声音克隆,使用户能够合成任意人的声音,并生成自然、流畅的语音输出。M…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 单词大师(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 &#x1f…

010-基于Sklearn的机器学习入门:聚类(上)

本节及后续章节将介绍深度学习中的几种聚类算法,所选方法都在Sklearn库中聚类模块有具体实现。本节为上篇,将介绍几种相对基础的聚类算法,包括K-均值算法和均值漂移算法。 目录 10.1 聚类概述 10.1.1 聚类的种类 10.1.2 Sklearn聚类子模…

搭建zookeeper、Kafka集群

搭建zookeeper、Kafka集群 1、绘制kafka的存储结构、副本机制2、搭建zookeeper集群3、搭建kafka集群4、使用kafka创建名为自己姓名汉语拼音的topic5、查看topic的分区和副本策略 1、绘制kafka的存储结构、副本机制 2、搭建zookeeper集群 实验环境准备: 3台服务器&…

npm install cnpm -g 报错4048

npm install cnpm -g 报错4048 设置淘宝镜像: 报错如下: 其他博主提供的方法都尝试了,比如管理员权限打开终端,删除.npmrc文件,清除缓存npm cache clean -f等都试了无效,最后怀疑是npm和cnpm版本不对应&…

JSP之原理剖析

什么是JSP: java Server Pages: java服务端页面,也和Servlet一样,用于动态Web技术? 最大特点: 写jsp就像在写HTML区别: HTML只给用户提供静态的数据JSP页面中可以嵌入Java代码,为用户提供动态数据 JSP原…

基于STM32和人工智能的智能四轴飞行器系统

目录 引言环境准备智能四轴飞行器系统基础代码实现:实现智能四轴飞行器系统 4.1 数据采集模块4.2 数据处理与分析4.3 控制系统4.4 用户界面与数据可视化应用场景:智能飞行器管理与优化问题解决方案与优化收尾与总结 1. 引言 随着无人机技术的发展&…

群晖NAS部署在线PS工具Potopea并实现浏览器远程访问处理图片

文章目录 前言1. 部署Photopea2. 运行Photopea3. 群晖安装Cpolar4. 配置公网地址5. 公网访问测试6. 固定公网地址 前言 本文主要介绍如何在群晖NAS本地部署Potopea在线图片PS编辑工具,并结合cpolar内网穿透实现公网环境远程访问本地部署的Potopea处理图片. Photop…

【CT】LeetCode手撕—103. 二叉树的锯齿形层序遍历

目录 题目1- 思路2- 实现⭐103. 二叉树的锯齿形层序遍历——题解思路 2- ACM实现 题目 原题连接:103. 二叉树的锯齿形层序遍历 1- 思路 二叉树的层序遍历,遇到奇数时,利用 Collections.reverse() 翻转即可 2- 实现 ⭐103. 二叉树的锯齿形层…

【第17章】Vue实战篇之注册界面

文章目录 前言一、搭建界面二、数据绑定1.定义响应数据2.绑定数据 三、数据校验1. 定义校验规则2. 表单校验3. 展示 四、注册接口调用1. user.js2. Login.vue 五、展示总结 前言 本章内容主要包含&#xff1a; 注册界面搭建数据绑定表单校验调用后端接口 一、搭建界面 <s…

Java23种设计模式(二)

1、单例模式 单例模式&#xff08;Singleton Pattern&#xff09;是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类&#xff0c;该类负责创建自己的对象&#xff0c;同时确保只有…

电脑硬盘文件隐藏了怎么恢复数据?轻松上手不求人

在数字化时代&#xff0c;电脑硬盘中存储的数据对于个人和企业而言都至关重要。然而&#xff0c;有时我们可能会遇到一些意想不到的情况&#xff0c;比如硬盘中的文件突然消失了或者变成了隐藏状态。这种情况不仅让人感到困惑&#xff0c;还可能对日常工作和生活造成不小的影响…

【unity笔记】三、冰山碰撞变成碎块效果

一、模型准备 共需准备两个模型&#xff0c;一个原始模型&#xff0c;一个破碎后的模型。 破碎后的模型制作教程&#xff1a; 下载Blender 导入原始模型在添加偏好设置中添加Cell Fracture插件&#xff0c;调整模型碎裂效果。导出&#xff0c;保存到项目预制体文件夹。 二、…

胡说八道(24.6.17)——STM32以及通信杂谈

之前的文章中咱们谈到了STM32的时钟&#xff0c;今天我们来联系实际&#xff0c;来看看内部时钟下和外部时钟下的两种不同时钟的电平翻转。本次终于有硬件了&#xff0c;是最基础的STM32F103C8T6。 首先是&#xff0c;内部时钟的配置操作。 系统的内部时钟是72MHz&#xff0c;由…

【Windows系统】文件操作出现“文件访问被拒绝”弹窗问题

环境 系统&#xff1a;win10x64 版本&#xff1a;1709 问题 重命名系统文件夹文件&#xff0c;有时会出现【文件访问被拒绝】的弹窗&#xff0c;导致操作失败。 如何才能避免弹窗&#xff0c;成功操作&#xff1f; 解决方法 前提&#xff1a;实施以下解决&#xff0c;首先…

设置角色运动的动画

(1) 打开Assets-UnityTechnologies-Animation-Animators&#xff0c;Create-Animation-Controller,命名为JohnLemon (2) 打开JohnLemon&#xff0c;出现下图 (3) 依次将Assets-UnityTechnologies-Animation-Animation中的JohnIdle和JohnWalk拖放到Base Layer窗口中 (4) 右击Idl…

Sora不香了,Runway Gen-3震撼发布!AI电影时代真的要来了!(附与快手可灵对比测试)

文章首发于公众号&#xff1a;X小鹿AI副业 大家好&#xff0c;我是程序员X小鹿&#xff0c;前互联网大厂程序员&#xff0c;自由职业2年&#xff0c;也一名 AIGC 爱好者&#xff0c;持续分享更多前沿的「AI 工具」和「AI副业玩法」&#xff0c;欢迎一起交流~ AI 视频太卷了&…

TikTok养号新手保姆级教程

对于很多刚开始运营TikTok的新手小白来说&#xff0c;都会有一个同样的疑问&#xff0c;那就是&#xff1a;TikTok到底需不需要养号&#xff1f;这里明确告诉大家是需要养号的&#xff0c;今天就把我自己实操过的养号经验和策略总结出来&#xff0c;分享给大家。 一、什么是Ti…

【每日刷题】Day68

【每日刷题】Day68 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 451. 根据字符出现频率排序 - 力扣&#xff08;LeetCode&#xff09; 2. 最小的K个数_牛客题霸_牛客…

现在市面上哪个大大数据信用查询平台比较好用?

在当今信息化和数字化的时代&#xff0c;信用查询平台的重要性愈发突出&#xff0c;特别是在个人贷款、信用卡申请和金融服务领域。选择一个优秀的大数据信用查询平台&#xff0c;不仅可以帮助用户全面了解自己的信用状况&#xff0c;还能提供针对性的解读和建议&#xff0c;帮…