【python】操作mysql数据库

一、操作步骤

MySQL是一个开源的关系型数据库管理系统(RDBMS),它使用结构化查询语言(SQL)作为操作和管理数据的主要方式。MySQL具有以下特点:

  1. 开源:MySQL是开源软件,这意味着任何人都可以免费使用、修改和分发源代码。
  2. 关系型数据库:MySQL支持关系型数据库模型,允许用户创建表、定义关系和执行复杂的查询。
  3. 多用户支持:MySQL支持多个用户同时访问数据库,每个用户可以拥有自己的权限和访问级别。
  4. 高性能:MySQL经过优化,能够处理大量的并发连接和大型数据集。
  5. 可扩展性:MySQL可以通过分区、复制和集群等技术进行扩展,以满足不断增长的数据需求。
  6. 安全性:MySQL提供了多种安全机制,如用户认证、访问控制和加密,以确保数据的安全性。
  7. 跨平台:MySQL可以在各种操作系统上运行,包括Windows、Linux和macOS。
  8. 广泛的应用:MySQL被广泛应用于Web应用程序、企业级应用、移动应用和大数据处理等领域。

在Python中,要操作MySQL,需要依赖于第三方库:pymysql,pymySQL是一个Python库,用于连接和操作MySQL数据库。它提供了一种方便的方式来与MySQL数据库进行交互,使得开发者能够使用Python语言编写代码来执行各种数据库操作,如查询、插入、更新和删除数据等。

先安装:pip install pymysql

1、建立数据库连接 

2、执行SQL语句

3、关闭数据库连接 

二、操作过程

1.首先需要构造数据,构造完成的数据结果:

2.数据库连接,查询操作

import pymysql
# 建立连接
conn = pymysql.connect(host='127.0.0.1', user='root', password='root', database='learn', charset='utf8')
#操作数据库
#先定义一个游标对象(默认情况下,游标对象返回的结果是元组
cursor = conn.cursor()
#执行SQL语句
sq1 = "select id,username,password from users "
cursor.execute(sq1)
# 获取结果集
result = cursor.fetchall() # 以二维元组的格式返回
for row in result:print(row[0],row[1],row[2])
conn.close()

执行成功,获得结果:

3.使用列表+字典的方式查询数据

from pymysql.cursors import DictCursor
import pymysql
# 将游标对象定义为 字典 类型,进而通过 列表+字典 的格式获取结果集conn = pymysql.connect(host='localhost',user='root',password='root',database='learn',charset='utf8')
cursor = conn.cursor(DictCursor)
sq1 = "select * from users"
cursor.execute(sq1)
result = cursor.fetchall()
print(result)
#通过建值取数据
for row in result:print(row['username'])print(row['password'])
conn.close()    

执行成功,获得结果:

 4.执行更新操作

from pymysql.cursors import DictCursor
import pymysql
# 更新的操作,必须确认提交,两种方式:一种是设置autocommit为True,另外则是在代码中显式提交
conn = pymysql.connect(host='localhost', user='root', password='root', database='learn', charset='utf8')
#conn = pymysql.connect(host='localhost', user='root', password='123456', database='learn', charset='utf8', autocommit=True) #自动提交不需要后面的commit
cursor = conn.cursor()
sq1 = "update users set username='zhangsan' where username='zs'"
cursor.execute(sq1)
# conn.commit() # 显式提交更新操作  
conn.close()

执行成功,获得结果:

5.使用函数的方式进行封装操作

from pymysql.cursors import DictCursor
import pymysql
def query_mysql(sql):conn = pymysql.connect(host='localhost',user='root',password='root',database='learn',charset='utf8')cursor = conn.cursor(DictCursor)cursor.execute(sql)result=cursor.fetchall()conn.close()return result
# 封装更新类操作
def update_mysq1(sql):conn = pymysql.connect(host='localhost',user='root',password='root',database='learn',charset='utf8')cursor = conn.cursor(DictCursor)cursor.execute(sql)conn.commit()conn.close()sql1 = "select * from users"
sql2 = "update users set username='zhangsan' where username='zs'"query_mysql(sql1)
update_mysq1(sq2)

每篇一言:每个人的心里,都有一个忘不记,却无法拥抱珍惜的人。

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

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

相关文章

数电基础 - 触发器

目录 ​编辑 一. 简介 二. SR锁存器 三. JK 触发器 四. D 触发器 五. 电平触发的触发器 六. 脉冲触发的触发器 七. 边沿触发的触发器 八 . 触发器的逻辑功能和描述方法 一. 简介 触发器是数字电路中的一种基本存储单元,具有记忆功能,能够存储一…

36.UART(通用异步收发传输器)-RS232(3)

(1)串口发送模块visio视图: (2)串口发送模块Verilog代码: /* 常见波特率: 4800、9600、14400、115200 在系统时钟为50MHz时,对应计数为: (1/4800) * 10^9 /20 -1 10416 …

macOS 安装软件提示 “已损坏,无法打开。 您应该将推出磁盘映像” 或 “已损坏,无法打开。 您应该将它移到废纸篓”,解决办法

本文以 Pulsar Assistant 软件为例进行介绍,Redisant 系列的其他软件同理,只需要根据不同软件修改下面命令中的软件名即可。 在 macOS 系统上安装 下载最新的.dmg包,双击打开安装程序,将软件拖动到下方的程序目录即可。 安装时报…

AWS Aurora Postgres 的开源替代品:存储和计算分离 | 开源日报 No.278

neondatabase/neon Stars: 13.0k License: Apache-2.0 Neon 是一个无服务器的开源替代品,用于 AWS Aurora Postgres。它将存储和计算分离,通过在节点集群中重新分配数据来替换 PostgreSQL 存储层。 提供自动扩展、分支和无限存储。Neon 安装包括计算节…

C#环境与数据类型

文章目录 C#环境.NET 框架集成开发环境 创建一个C#项目数据类型值类型引用类型对象类型object动态类型dynamic字符串类型string 指针类型 类型转换隐式转换显示转换(强制转换)C#提供的类型转换方法Convert类Parse方法TryParse方法 C#环境 .NET 框架 C#是…

pdf文件怎么转换为jpg图片?这几种转换方法操作起来很简单!

pdf文件怎么转换为jpg图片?在数字化洪流席卷职场的当下,PDF文档虽一度稳坐信息传输与储存的宝座,却逐渐显露出其在效率与便捷性追求中的疲态,随着技术疆界的不断拓宽,我们愈发深刻地意识到,PDF那复杂的格式…

逆向案例十八——某医药平台登录

网址:aHR0cHM6Ly91c2VyLjkxMTYwLmNvbS9sb2dpbi5odG1s 找到登陆包,发现用户和密码还有token都进行了加密 跟栈分析,进入第三个栈,找到加密位置。 找到加密位置,仔细分析。发现token$(#token).val(),根据之前的经验&…

如何利用windows本机调用Linux服务器,以及如何调用jupyter界面远程操控

其实这篇文章没必要存在,教程太多了 参考博客(1 2 3),如侵删 奈何网上的大神总是会漏掉一些凡人遇到的小问题 (1) 建议下载PuTTy for windows,从而建立与远程服务器的SSH连接 需要确认目标服…

【RAGFlow】Ubuntu系统下实现源码启动RAGFlow

一、RAGFlow 是什么? RAGFlow 是一款基于深度文档理解构建的开源 RAG(Retrieval-Augmented Generation)引擎。RAGFlow 可以为各种规模的企业及个人提供一套精简的 RAG 工作流程,结合大语言模型(LLM)针对用…

平价养猫最值得入的主食冻干,希喂生骨肉冻干喂养测评

不少猫主人反映,自家的猫咪体型偏瘦,体质较弱,尤其是在季节变换时更易出现问题,如敏感、掉毛严重、食欲下降等。听说生骨肉冻干富含营养且易于吸收,能显著改善猫咪体质,便纷纷尝试。然而,未加甄…

如何优雅的处理字节类型数据

原文:赵侠客 前言 字节(Byte)是计算机信息技术用于计量存储容量的一种基本单位,通常简写为B,1Byte8bit,在ASCII编码中1Byte可以表示一个标准的英文字符,包括大写字母、小写字母、数字、标点符号和控制字符等,共128个不…

nginx前端部署配置

nginx前端部署配置 Nginx部署项目 1、yarn build打包Vue项目 2、打开nginx.conf文件,配置对应的信息 nginx.conf location / {root C:\Users\17542\Desktop\rrpject-v2\dist;root index.html index.htm;try_files $uri $uri/ router; //解决页面刷新404问题 } location…

艾迈斯欧司朗最新推出的DURIS® LED将引领柔性多变照明新时代

中国 上海,2024年7月15日——全球领先的光学解决方案供应商艾迈斯欧司朗(瑞士证券交易所股票代码:AMS)今日宣布,艾迈斯欧司朗最新推出的DURIS E 2835 LED,实现从封装工艺到出光性能的升级与创新。这款LED采…

PyQt5图形界面--基础笔记

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QToolTip, QLabel, QLineEdit from PyQt5.QtGui import QIcon, QFont, QPixmap import sys https://www.bitbug.net/ 将图片转换为ico格式, 用来更改打包的文件图标 -F 只产生exe文件, 其他临时文件不产生 -…

K8S系列-Kubernetes基本概念及Pod、Deployment、Service的使用

一、Kubernetes 的基本概念和术语 一、资源对象 ​ Kubernetes 的基本概念和术语大多是围绕资源对象 Resource Object 来说的,而资源对象在总体上可分为以下两类: 1、某种资源的对象 ​ 例如节点 Node) Pod 服务 (Service) 、存储卷 (Volume)。 2、…

408数据结构-图的应用3-有向无环图、拓扑排序 自学知识点整理

前置知识:表达式,图的遍历 有向无环图描述表达式 有向无环图:若一个有向图中不存在环,则称为有向无环图,简称 D A G DAG DAG图 。 (图片来自王道考研408数据结构2025) 由王道考研-咸鱼学长的讲…

emqx(v5.0)常见问题

emqx(v5.0)常见问题 1 官方常见问题解答2 EMQX 启动时日志提示 “WARNING: Default (insecure) Erlang cookie is in use.” 应该怎么办?3 EMQX 启动时日志提示“filed to merge schema”? 1 官方常见问题解答 常见问题解答 2 E…

前端框架学习之 搭建vue2的环境 书写案例并分析

目录 搭建vue的环境 Hello小案例 分析案例 搭建vue的环境 官方指南假设你已经了解关于HTML CSS 和JavaScript的中级知识 如果你刚开始学习前端开发 将框架作为你的第一步可能不是最好的主意 掌握好基础知识再来吧 之前有其他框架的使用经验会有帮助 但这不是必需的 最…

JDK垃圾回收机制和垃圾回收算法

查看java相关信息 java -XX:PrintCommandLineFlags -version UseParallelGC 即 Parallel Scavenge Parallel Old,再查看详细信息 内存分配策略 1. 对象优先在 Eden 分配 大多数情况下,对象在新生代 Eden 区分配,当 Eden 区空间不够时,发…

PX4 UM982 配合F9P Base 进行 RTK 定位

UM982是新兴的常见双天线GPS模块,支持双天线定向,RTK功能,PX4也引入了对其的支持,需要按需额外设置 官方手册号称直接用F9P做地面站,搭配QGC使用就能进行RTK定位 但是经过实践,发现这样是进不了RTK模式的…