MySQL数据库基础(十五):PyMySQL使用介绍

文章目录

PyMySQL使用介绍

一、为什么要学习PyMySQL

二、安装PyMySQL模块

三、PyMySQL的使用

1、导入 pymysql 包

2、创建连接对象

3、获取游标对象

4、pymysql完成数据的查询操作

5、pymysql完成对数据的增删改


PyMySQL使用介绍

提前安装MySQL数据库(可以使用Linux系统的,也可以使用Windows版本)

一、为什么要学习PyMySQL

如何实现将100000条数据插入到MySQL数据库?

如果使用之前学习的MySQL客户端来完成这个操作,那么这个工作量无疑是巨大的,我们可以通过使用程序代码的方式去连接MySQL数据库,然后对MySQL数据库进行增删改查的方式,实现100000条数据的插入,像这样使用代码的方式操作数据库就称为数据库编程。

二、安装PyMySQL模块

安装PyMySQL:

pip install pymysql

卸载PyMySQL:

pip uninstall pymysql

三、PyMySQL的使用

1、导入 pymysql 包

 import pymysql

2、创建连接对象

调用pymysql模块中的connect()函数来创建连接对象,代码如下:

 conn=connect(参数列表)* 参数host:连接的mysql主机,如果本机是'localhost'* 参数port:连接的mysql主机的端口,默认是3306* 参数user:连接的用户名* 参数password:连接的密码* 参数database:数据库的名称* 参数charset:通信采用的编码方式,推荐使用utf8

连接对象操作说明:

  • 关闭连接 conn.close()

  • 提交数据 conn.commit()

  • 撤销数据 conn.rollback()

3、获取游标对象

获取游标对象的目标就是要执行sql语句,完成对数据库的增、删、改、查操作。代码如下:

 # 调用连接对象的cursor()方法获取游标对象   cur =conn.cursor()

游标操作说明:

  • 使用游标执行SQL语句: execute(operation [parameters ]) 执行SQL语句,返回受影响的行数,主要用于执行insert、update、delete、select等语句

  • 获取查询结果集中的一条数据:cur.fetchone()返回一个元组, 如 (1,'张三')

  • 获取查询结果集中的所有数据: cur.fetchall()返回一个元组,如((1,'张三'),(2,'李四'))

  • 关闭游标: cur.close(),表示和数据库操作完成

4、pymysql完成数据的查询操作

import pymysql# 创建连接对象
conn = pymysql.connect(host='localhost', port=3306, user='root', password='mysql',database='db_lanson', charset='utf8')# 获取游标对象
cursor = conn.cursor()# 查询 SQL 语句
sql = "select * from students;"
# 执行 SQL 语句 返回值就是 SQL 语句在执行过程中影响的行数
row_count = cursor.execute(sql)
print("SQL 语句执行影响的行数%d" % row_count)# 取出结果集中一行数据, 例如:(1, '张三')
# print(cursor.fetchone())# 取出结果集中的所有数据, 例如:((1, '张三'), (2, '李四'), (3, '王五'))
for line in cursor.fetchall():print(line)# 关闭游标
cursor.close()# 关闭连接
conn.close()

5、pymysql完成对数据的增删改

import pymysql# 创建连接对象
conn = pymysql.connect(host='localhost', port=3306, user='root', password='mysql',database='db_lanson', charset='utf8')# 获取游标对象
cursor = conn.cursor()try:# 添加 SQL 语句# sql = "insert into students(name) values('赵云'), ('王昭君');"# 删除 SQ L语句# sql = "delete from students where id = 6;"# 修改 SQL 语句sql = "update students set name = '王小丽' where id = 8;"# 执行 SQL 语句row_count = cursor.execute(sql)print("SQL 语句执行影响的行数%d" % row_count)# 提交数据到数据库conn.commit()
except Exception as e:# 回滚数据, 即撤销刚刚的SQL语句操作conn.rollback()# 关闭游标
cursor.close()# 关闭连接
conn.close()

注:PyMySQL是基于事务进行操作的,所以在数据库增删改操作时,必须通过conn.commit() 方法将事务操作提交到数据库,如果事务操作没有成功,则可以通过conn.rollback()进行回滚(返回到数据的原始状态)。


  • 📢博客主页:https://lansonli.blog.csdn.net

  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉

  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

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

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

相关文章

shell脚本介绍及基本功能

目录 1. 什么是shell 2. hello word 2.1 echo 2.2 第一个脚本 3. Bash的基本功能 3.1别名 3.2 常用快捷键 3.3 输入输出 3.4 输出重定向 3.5 多命令执行 3.6 管道符 3.7 通配符和特殊符号 1. 什么是shell Shell 是一个用 C 语言编写的程序,它是用户使用…

数据分析---常见处理逻辑

目录 数据清洗数据转换数据聚合数据筛选增删改查(以查为例)数据清洗 去除重复值:使用DISTINCT关键字去除重复行。//这将返回一个包含所有不重复城市的结果集 SELECT DISTINCT city FROM students;处理缺失值:使用IS NULL或IS NOT NULL判断是否为空值,并使用COALESCE或CASE…

STM32--低功耗模式详解

一、PWR简介 正常模式与睡眠模式耗电是mA级,停机模式与待机模式是uA级。 二、电源框图 供电区域有三处,分别是模拟部分供电(VDDA),数字部分供电,包括VDD供电区域和1.8V供电区域,后备供电&…

mysql和redis双写一致性策略分析

mysql和redis双写一致性策略分析 一.什么是双写一致性 当我们更新了mysql中的数据后也可以同时保证redis中的数据同步更新; 数据读取的流程: 1.读取redis,如果value!null,直接返回; 2.如果redis中valuenull,读取mysql中数据对应的…

【程序员养生延寿系列-万人关注的养生指南】

一.程序员面临的健康问题 应该说不只程序员,大部分互联网从业者,都会遇到很多类似的健康问题,比如: 心理压力大,失眠长期加班久坐不动熬夜,甚至通宵作息不规律饮食不均衡 短期可能不会表现出来&#xff…

MMDetection3D v1.1.0安装教程

MMDetection3D v1.1.0安装 1. 系统环境2. 安装2.1 基本环境安装2.2 验证2.3 安装MinkowskiEngine和TorchSparse 3. 最终环境配置 根据 v1.1.0版本官方手册,测试后的安装配置,亲测可行 1. 系统环境 项目版本日期Ubuntu18.04.06 LTS-显卡RTX 2070-显卡驱…

Leaflet-学习

一、官网 英文官网:Leaflet 中文官网:Leaflet 二、介绍 Leaflet 是一个开源并且对移动端友好的交互式地图 JavaScript 库。 它大小仅仅只有39 KB, 并且拥有绝大部分开发者所需要的所有地图特性。 Leaflet 简单、高效并且易用。 它可以高效的运行在桌…

uni-app原生api的promise化以解决异步等待问题分析

相信各位在进行uni-app开发的时候会遇到各种关于异步回调问题,例如要传code给后端以换取session_key,在这之前需要先调用 uni.login,所以执行的顺序是必须同步等待的。在写这篇文章之前对于整体的流程概念需要做一个梳理,以便能更…

SSMBUG之 url +

1. Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured. 经查, 书写一切正常. 注意到此时yml文件的图标是一个红色的Y而不是绿色的spring , 推测没有正确加载. 重新创建项目, 所有东西拷贝一份便恢复正常…

猫头虎分享已解决Bug || AttributeError: ‘Sequential‘ object has no attribute ‘session‘

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

MySQL报错:sql_mode=only_full_group_by解决方法

Linux环境 ubuntu 22.04 MySQL是8.0.35版本 问题描述 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column auth_system.t_class_temp_config.id which is not functionally dependent on columns in GROUP BY clause; this is inco…

Kubernetes基础(二十六)-kubernetes的eviction机制

eviction,即驱赶的意思,意思是当节点出现异常时,kubernetes将有相应的机制驱赶该节点上的Pod。eviction在openstack的nova组件中也存在。 目前kubernetes中存在两种eviction机制,分别由kube-controller-manager和kubelet实现。 …

Delphi之后的接班人?国产可视化编程工具重塑经典

Delphi,这个名字对于许多80后的程序员来说,无疑是一种深深的情怀。它曾是可视化编程的王者,承载着无数开发者的青春记忆。 在Pascal语言盛行的年代,Delphi以其独特的魅力,迅速在编程界崭露头角。当时流传着这样一句话&…

Java实现公司货物订单管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 客户管理模块2.2 商品维护模块2.3 供应商管理模块2.4 订单管理模块 三、系统展示四、核心代码4.1 查询供应商信息4.2 新增商品信息4.3 查询客户信息4.4 新增订单信息4.5 添加跟进子订单 五、免责说明 一、摘要 1.1 项目…

开启数字内容创作的新时代

目录 技术解析 未来展望 技术解析 Sora是一款由OpenAI开发的先进AI视频模型,其技术架构基于深度学习和自然语言处理技术。该模型的核心算法原理包括使用深度神经网络进行视频内容的理解、生成和互动。 在技术架构方面,Sora采用了一种混合的神经网络结…

架构设计:流式处理与实时计算

引言 随着大数据技术的不断发展,流式处理和实时计算在各行各业中变得越来越重要。那么什么是流式处理呢?我们又该怎么使用它?流式处理允许我们对数据流进行实时分析和处理,而实时计算则使我们能够以低延迟和高吞吐量处理数据。本…

怎么向最厉害的人偷师?

用户孙振楠William: 自己做重大决策,心里常常没底。你觉得有必要跟身边的长辈或者是公司里的上级有意识地建立导师关系吗? 选谁成为人生导师呢? 回答:做好决策的确是一件不容易的事情,你需要懂得决策的基本…

在Spring Boot启动时禁止自动配置数据源相关的组件、@SpringBootApplication

一、SpringBootApplication(exclude {DataSourceAutoConfiguration.class})注解 在Spring Boot启动时禁止自动配置数据源相关的组件。 SpringBootApplication(exclude {DataSourceAutoConfiguration.class})注解的使用案例 这个注解通常应该写在微服务项目的主启动类上&…

Java 面试题基础(四)

Java 面试题基础(四) 前言1、获取Class对象的构造方法?2、获取Class对象的成员变量?3、获取Class对象的成员方法?4、简述一下你了解的设计模式?5、java中fail-fast和fail-safe的区别说明?6、Jsp…

C#_事件简述

事件模型简述 C#中事件的运行模式为"发布订阅模型",事件触发者称为"发布者",事件处理者称为"订阅者" 事件模型的五个组成部分 事件(成员)事件的拥有者(类/对象)事件的响应…