15 Python使用MySQL
概述
在上一节,我们介绍了如何在Python中使用网络,包括:套接字编程、socketserver等内容。在这一节,我们将介绍如何在Python中使用MySQL。MySQL是最流行的关系型数据库管理系统之一,由瑞典MySQL AB公司开发,属于Oracle旗下产品。Python MySQL是一个用于在Python中连接和操作MySQL数据库的库。它提供了一个接口,使得Python程序可以与MySQL数据库进行交互,执行SQL查询、插入、更新和删除数据等操作。
在Python MySQL中,最常用的库是mysql-connector-python,它是一个纯Python实现的MySQL连接器。通过安装该库,我们可以轻松地在Python程序中连接和操作MySQL数据库。
mysql.connector简介
mysql.connector是Python的一个数据库驱动程序,用于在Python中与MySQL数据库进行交互。它提供了一组API和工具,使开发人员能够轻松地编写安全、高效的MySQL应用程序。
mysql.connector的一些主要特性和功能如下。
连接管理:通过mysql.connector,可以轻松地创建与MySQL数据库的连接。它支持多种连接选项,包括主机名、用户名、密码、数据库名称等。
游标管理:mysql.connector提供了游标对象,用于执行SQL语句和获取结果。游标支持各种操作,比如:查询、插入、更新和删除数据等。
数据类型转换:mysql.connector会自动将Python数据类型转换为MySQL数据类型,并将MySQL数据类型转换回Python数据类型。
事务管理:通过mysql.connector可以进行事务管理,包括提交和回滚操作,以确保数据的一致性。
连接池:mysql.connector支持连接池功能,可以缓存数据库连接。有效避免了每次需要时都创建新连接的开销,提高了性能。
异步操作:mysql.connector支持异步操作,可以使用异步编程模型来编写高性能的MySQL应用程序。
与其他框架和工具集成:mysql.connector可以与许多开源框架和工具集成,比如:Django、Flask等,使开发人员能够更方便地与MySQL进行交互。
mysql.connector的函数
要使用mysql.connector,必须先安装mysql.connector库。参考如下的pip命令安装即可:
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple mysql-connector==2.1.7
mysql.connector提供了一组函数和工具,使开发人员能够编写安全、高效的MySQL应用程序。下面是一些常用的mysql.connector函数及其功能。
connect(): 用于创建与MySQL数据库的连接,它接受各种连接选项,如主机名、用户名、密码、数据库名称等。
import mysql.connectormydb = mysql.connector.connect(host='localhost', user='username', password='password', database='mydb')
cursor(): 用于创建一个游标对象,执行SQL查询和操作数据库。
cursor = mydb.cursor()
execute(): 用于执行SQL查询,它接受一个SQL查询字符串作为参数,并执行该查询。
query = 'SELECT * FROM customers'
cursor.execute(query)
fetchall(): 用于获取查询结果的所有行,它返回一个包含查询结果的所有行的列表。
rows = cursor.fetchall()
for row in rows:print(row)
fetchone(): 用于获取查询结果的一行,它返回一个包含一行数据的列表。
row = cursor.fetchone()
print(row)
commit(): 用于提交事务,它确保对数据库的更改被保存并应用。
mydb.commit()
rollback(): 用于回滚事务,它撤销对数据库的更改。
mydb.rollback()
close(): 用于关闭游标和连接,它释放资源并关闭与数据库的连接。
cursor.close()
mydb.close()
使用mysql.connector
我们可以使用mysql.connector进行插入数据、更新数据、删除数据、查询数据等操作,下面是一个可供参考的示例代码。
import mysql.connector# 创建到数据库的连接
mydb = mysql.connector.connect(host = "your_host",user = "your_user",password = "your_password",database = "your_database"
)# 创建一个游标对象
cursor = mydb.cursor()# 插入数据
add_data = ("INSERT INTO your_table ""(column1, column2, column3) ""VALUES (%s, %s, %s)")
data = ("value1", "value2", "value3")
cursor.execute(add_data, data)
mydb.commit()
print("Data inserted successfully.")# 更新数据
update_data = ("UPDATE your_table ""SET column1 = 'new_value' ""WHERE column2 = 'some_value'")
cursor.execute(update_data)
mydb.commit()
print("Data updated successfully.")# 删除数据
delete_data = ("DELETE FROM your_table ""WHERE column2 = 'some_value'")
cursor.execute(delete_data)
mydb.commit()
print("Data deleted successfully.")# 查询数据
query = ("SELECT * FROM your_table WHERE column1 = 'some_value'")
cursor.execute(query)
rows = cursor.fetchall()
for row in rows:print(row)# 关闭游标和连接
cursor.close()
mydb.close()
请确保将上述示例代码中的"your_host"、"your_user"、"your_password"、"your_database" 替换为你实际的MySQL的主机、用户名、密码和数据库名。同样地,将表名和列名替换为你的实际表名和列名,并根据需要修改插入、更新、删除和查询的数据。
注意:每次执行SQL语句后,都应该检查是否有错误并正确处理。另外,在完成数据库操作后,不要忘记关闭游标和连接,以避免资源浪费。
相关文章:
15 Python使用MySQL
概述 在上一节,我们介绍了如何在Python中使用网络,包括:套接字编程、socketserver等内容。在这一节,我们将介绍如何在Python中使用MySQL。MySQL是最流行的关系型数据库管理系统之一,由瑞典MySQL AB公司开发,…...
3、Nginx 常用的命令和配置文件
文章目录 3、nginx 常用的命令和配置文件3.1 nginx 常用的命令:3.2 nginx.conf 配置文件3.2.1 地址3.2.2 内容3.2.2 vim不正常退出后再次打开信息提示解决方法 3.3 第一部分:全局块3.4 第二部分:events 块3.4 第三部分:http 块①、…...
python经典百题之兔子出生问题
这是一个经典的 Fibonacci 数列问题,可以通过递归或循环来解决。 递归方法: 由题意可知,第 n 个月的兔子数等于第 n-1 个月的兔子数加上第 n-2 个月的兔子数。设 f(n) 表示第 n 个月的兔子数,则有: f(n) f(n-1) f…...

不定积分的概念和性质
目录 原函数 不定积分 不定积分的几何意义 原函数的存在定理 不定积分的性质 不定积分是微积分的一个关键部分,它涉及到一个函数的不定积分的计算。不定积分可以理解为求一个函数的原函数,也被称为反导数。原函数是一个函数,使得该函数的…...

远程访问服务器JupyterLab的配置方法
远程访问服务器JupyterLab的配置方法 环境及工具注意 基本步骤生成密码生成并修改配置文件*错误:jupyter localhost 已拒绝连接*后台运行jupyter后台关闭 其实就是在服务器运行JupyterLab,然后在本地浏览器访问 环境及工具 服务器:Ubuntu 1…...

Java native 关键字
如你在看 JDK 的源代码的时候,大概率会看到很多方法使用了 native 关键字。 下面是 String 对象 JDK 中的源代码,就带有了一个 native 关键字。 native 是干什么用的 简单来说就是 Java 的 native 方法的实现不是用 Java 实现的,可能在其他…...

【线性代数】沉浸式线性代数在线学习网站
地址:http://immersivemath.com/ila/index.html 这是全球第一本带交互式图形的线性代数教材,作者是 J. Strm, K. strm, and T. Akenine-Mller。 全书一共十章,各章节内容如下: 接下来我将对各章节进行简单的总结,另外…...
Kotlin中特性、数据类、伴生对象、顶层函数
Kotlin中的函数参数和属性声明 在 Kotlin 中,函数参数和属性有不同的声明方式和行为。这些特性使得 Kotlin 代码更加安全、易于理解和维护。 函数参数的只读性 fun sum(a: Int, b: Int): Int {var modifiedA aif (modifiedA > 0) {modifiedA 1}//三元表达式v…...

《PostgreSQL物化视图:创建、维护与应用》
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🐅🐾猫头虎建议程序员必备技术栈一览表📖: 🛠️ 全栈技术 Full Stack: 📚…...
shell脚本之test命令
shell脚本之test命令 数值比较:2. 字符串比较:3. 文件测试:4. 逻辑操作:5. 其他测试: test命令在Shell脚本中用于进行条件测试和条件判断。它用于检查文件、字符串和数值的各种条件,并返回一个状态码&#…...

JAVA设计模式8:装饰模式,动态地将责任附加到对象上,扩展对象的功能
作者主页:Designer 小郑 作者简介:3年JAVA全栈开发经验,专注JAVA技术、系统定制、远程指导,致力于企业数字化转型,CSDN博客专家,阿里云社区专家博主,蓝桥云课讲师。 目录 一、什么是装饰模式二、…...
Linux学习之MySQL备份
xtrabackup资源下载 完全备份与恢复 # 1.物理备份与恢复 # 冷备份,需停止数据库服务 适合线下服务器。 [rootmysql50 ~]# systemctl stop mysqld [rootmysql50 ~]# mkdir /bakdir [rootmysql50 ~]# cp -r /var/lib/mysql /bakdir/mysql.bak [rootmysql50 ~]# cd /…...

时序分解 | MATLAB实现北方苍鹰优化算法NGO优化VMD信号分量可视化
时序分解 | MATLAB实现北方苍鹰优化算法NGO优化VMD信号分量可视化 目录 时序分解 | MATLAB实现北方苍鹰优化算法NGO优化VMD信号分量可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 北方苍鹰优化算法NGO优化VMD,对其分解层数,惩罚因子数做优化…...

分类预测 | Matlab实现RBF-Adaboost多特征分类预测
分类预测 | Matlab实现RBF-Adaboost多特征分类预测 目录 分类预测 | Matlab实现RBF-Adaboost多特征分类预测效果一览基本介绍研究内容程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于RBF-Adaboost数据分类预测(Matlab完整程序和数据) 2.多特征输入…...
【Java代码规范】阿里编码规约 VS CheckStyle
全文速览: 1、关于代码编码质量2、如何小成本有效管理企业内的编码规范 2.1 阿里编码规约IDE插件2.2 CheckStyle IDE插件 3、如何在代码提交中检验规范 3.1 阿里编码规约配置git precommit check3.2 CheckStyle配置git precommit check3.3 实践 1、关于代码编码质…...

iPhone苹果15手机圆点怎么设置让屏幕上显示出来圆形图标?
iPhone苹果15手机圆点怎么设置让屏幕上显示出来圆形图标? 1、在iPhone苹果手机上找到「设置」并点击打开; 2、在苹果iPhone设置内找到「辅助功能」并点击打开; 3、在苹果iPhone手机辅助功能内的动作交互内找到「触控」并点击打开;…...

kibana报错内存溢出问题解决
一、背景: kibana内存溢出,进程被kill掉,导致前端页面访问不到。 报错内容 二、报错原因: 发现是前端 js 报的内存 oom 异常,通过网上资料发现node.js 的默认内存大小为1.4G Node 中通过 JavaScript 使用内存时只能…...
【C语法】1124循环结构
#include <stdio.h> int main(){ //输入一个数。倒叙输出各个位上的数。 //123456 6 5 4 3 2 1 // 1输出个位上的数 %10 // 2将这个数去掉个位上的数。 / 10 // 3当这个数最后变成0时结束 int a 0; printf("请输入一个正整数:"); scanf…...

在PHP8中向数组添加元素-PHP8知识详解
在php8中向数组添加元素有多种方法,在这里主要讲解几个常用的方法:使用方括号[]添加元素、使用array_unshift()函数,向数组的头部添加元素、使用array_push()函数,向数组的尾部添加元素、使用array_splice()函数添加元素。 1、使用…...

Drupal __ 8.5.0 __ XSS文件上传 __CVE-2019-6341
Drupal __ 8.5.0 __ XSS文件上传 __CVE-2019-6341 说明内容漏洞编号CVE-2019-6341漏洞名称Drupal XSS漏洞漏洞评级中危影响范围在7.65之前的Drupal 7版本中; 8.6.13之前的Drupal 8.6版本; 8.5.14之前的Drupal 8.5版本。漏洞描述Drupal诞生于2000年,是一…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...

Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...

【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...

WebRTC调研
WebRTC是什么,为什么,如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...
从实验室到产业:IndexTTS 在六大核心场景的落地实践
一、内容创作:重构数字内容生产范式 在短视频创作领域,IndexTTS 的语音克隆技术彻底改变了配音流程。B 站 UP 主通过 5 秒参考音频即可克隆出郭老师音色,生成的 “各位吴彦祖们大家好” 语音相似度达 97%,单条视频播放量突破百万…...
拟合问题处理
在机器学习中,核心任务通常围绕模型训练和性能提升展开,但你提到的 “优化训练数据解决过拟合” 和 “提升泛化性能解决欠拟合” 需要结合更准确的概念进行梳理。以下是对机器学习核心任务的系统复习和修正: 一、机器学习的核心任务框架 机…...

react-pdf(pdfjs-dist)如何兼容老浏览器(chrome 49)
之前都是使用react-pdf来渲染pdf文件,这次有个需求是要兼容xp环境,xp上chrome最高支持到49,虽然说iframe或者embed都可以实现预览pdf,但为了后续的定制化需求,还是需要使用js库来渲染。 chrome 49测试环境 能用的测试…...