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,一经查实,立即删除!

相关文章

赶紧收藏!2024 年最常见 20道设计模式面试题(四)

上一篇地址:赶紧收藏!2024 年最常见 20道设计模式面试题(三)-CSDN博客 七、结构型模式:请解释适配器模式和装饰器模式的区别。 适配器模式(Adapter Pattern)和装饰器模式(Decorato…

用python克隆了前男友的声音

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

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

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

多版本GCC安装及切换

目录 1 背景2 安装3 配置4 切换4.1 切换到版本94.2 切换到版本10 1 背景 最近在研究C20中的协程需要安装GCC版本10。用到GCC多版本切换,记录步骤。 2 安装 运行如下命令安装两个版本编译器: sudo apt install gcc-9 g-9 sudo apt install gcc-10 g-103 配置 使…

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

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

shell脚本使用

判断程序有没有运行 ,没有则启动程序 #!/bin/sh# 替换为你要检查的程序名称 program_name"xxx"# 使用pgrep命令查找程序的进程ID pid$(pgrep -f "$program_name")# 如果没有找到进程ID,说明程序没有运行,启动程序 if [ …

搭建zookeeper、Kafka集群

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

封装一个工具类,拒绝重复代码!

一、介绍 为了简化开发过程并提高代码的可维护性,我们可以创建一个统一的工具类来处理这些需求。 在本文中,我将介绍如何使用SpringBoot创建一个返回多级菜单、多级评论、多级部门、多级分类的统一工具类。 介绍数据库字段设计 数据库设计 「主要是…

在C语言中,可以使用strtol函数来将字符串中的16进制数转换为10进制整数

在C语言中&#xff0c;可以使用strtol函数来将字符串中的16进制数转换为10进制整数&#xff0c;进而转换为MAC地址的字节表示。以下是一个将字符串形式的MAC地址转换为16进制表示的例子&#xff1a; #include <stdio.h> #include <stdlib.h> #include <string.…

npm install cnpm -g 报错4048

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

数据库面试题-Redis

数据库面试题-Redis 1、Redis是什么?2、为什么要使用Redis?3、说说Redis和Memcache的异同?4、说说Redis的线程模型?5、为什么Redis是单线程模型效率也能那么高?6、为什么Redis需要把所有数据放到内存中?7、说说Redis 的同步机制?8、Redis中pipeline有什么好处,为什么要…

Springboot全局异常处理和统一返回结果

①统一返回结果 package com.ioc.exception;import lombok.Data;import java.io.Serializable;/*** 后端统一返回结果* param <T>*/ Data //使用泛型对Result返回类进行了封装 public class Result<T> implements Serializable {private Integer code; //编码&…

JSP之原理剖析

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

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

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

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

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

【INTEL(ALTERA)】make: nios2-swexample-create:未找到命令

目录 说明 解决方法 说明 由于外部内存接口英特尔 Stratix 10 FPGA IP 出现问题&#xff0c;如果在 Windows 平台上使用英特尔 Quartus Prime Pro Edition Software v20.4 或更早版本的"使用软Nios处理器进行片上调试"选项&#xff0c;编译Nios II 片上处理器调试…

2288. 价格减免 Medium

句子 是由若干个单词组成的字符串&#xff0c;单词之间用单个空格分隔&#xff0c;其中每个单词可以包含数字、小写字母、和美元符号 $ 。如果单词的形式为美元符号后跟着一个非负实数&#xff0c;那么这个单词就表示一个 价格 。 例如 "$100"、"$23" 和 &…

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

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

USMT(微软用户状态迁移工具) 入门指南

前言 以下知识来自,我实际经验总结,官网文档不会这样讲. 如有遗漏或错误,请指正. 如有新的想法,请评论,我将添加到此文,并以您的昵称为来源标注在文中. 自定义XML语法 基础 语法: path\ [filename]例如: %SYSTEMROOT%\MyVideo\ [邓文怡和老师.mp4]这会迁移或排除C:\\MyVi…

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

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