Python基础教程(十八):MySQL - mysql-connector 驱动

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快!
💝💝💝如有需要请大家订阅我的专栏【Python系列】哟!我会定期更新相关系列的文章
💝💝💝关注!关注!!请关注!!!请大家关注下博主,您的支持是我不断创作的最大动力!!!

文章目录

    • 引言
    • 一、安装 mysql-connector-python
    • 二、连接数据库
    • 三、创建数据库
    • 四、插入数据
    • 五、查询数据
    • 六、更新数据
    • 七、删除数据
    • 八、排序数据
    • 九、结论
    • 结束语

引言

在Web开发和数据分析领域,数据库的操作是一项核心技能。Python,作为一种流行的编程语言,提供了多种库来与MySQL数据库进行交互,其中mysql-connector-python是官方推荐的驱动之一。本文将详细介绍如何使用mysql-connector-python来创建数据库、插入、删除、查询数据以及进行排序等操作。

一、安装 mysql-connector-python

在开始之前,确保你已经安装了mysql-connector-python库。如果没有,可以通过pip安装:

pip install mysql-connector-python

二、连接数据库

首先,我们需要建立与MySQL数据库的连接。以下是连接代码的基本结构:

import mysql.connector
from mysql.connector import Errortry:connection = mysql.connector.connect(host='localhost',database='testdb',user='root',password='password')if connection.is_connected():db_Info = connection.get_server_info()print("Connected to MySQL Server version ", db_Info)
except Error as e:print("Error while connecting to MySQL", e)
finally:if (connection.is_connected()):connection.close()print("MySQL connection is closed")

三、创建数据库

要使用mysql-connector-python创建数据库,我们首先需要连接到MySQL服务器,然后执行SQL语句来创建数据库:

def create_database(connection, query):cursor = connection.cursor()try:cursor.execute(query)print("Database created successfully")except Error as e:print(f"The error '{e}' occurred")create_db_query = "CREATE DATABASE testdb"
create_database(connection, create_db_query)

四、插入数据

一旦数据库创建完成,我们就可以在其中创建表并插入数据:

def insert_data(connection, query):cursor = connection.cursor()try:cursor.execute(query)connection.commit()print("Data inserted successfully")except Error as e:print(f"The error '{e}' occurred")insert_query = """
INSERT INTO students (id, name, age)
VALUES (1, 'John Doe', 22),(2, 'Jane Doe', 25);
"""
insert_data(connection, insert_query)

五、查询数据

查询数据是数据库操作中最常见的需求之一。使用mysql-connector-python,我们可以轻松地执行SELECT语句:

def select_data(connection, query):cursor = connection.cursor()try:cursor.execute(query)result = cursor.fetchall()for row in result:print(row)except Error as e:print(f"The error '{e}' occurred")select_query = "SELECT * FROM students"
select_data(connection, select_query)

六、更新数据

更新数据涉及到修改现有记录:

def update_data(connection, query):cursor = connection.cursor()try:cursor.execute(query)connection.commit()print("Data updated successfully")except Error as e:print(f"The error '{e}' occurred")update_query = "UPDATE students SET age = 26 WHERE name = 'Jane Doe'"
update_data(connection, update_query)

七、删除数据

删除数据是另一个基本操作,我们可以通过以下方式实现:

def delete_data(connection, query):cursor = connection.cursor()try:cursor.execute(query)connection.commit()print("Data deleted successfully")except Error as e:print(f"The error '{e}' occurred")delete_query = "DELETE FROM students WHERE id = 1"
delete_data(connection, delete_query)

八、排序数据

对数据进行排序可以使用ORDER BY子句:

def sort_data(connection, query):cursor = connection.cursor()try:cursor.execute(query)result = cursor.fetchall()for row in result:print(row)except Error as e:print(f"The error '{e}' occurred")sort_query = "SELECT * FROM students ORDER BY age DESC"
sort_data(connection, sort_query)

九、结论

通过mysql-connector-python,我们可以方便地与MySQL数据库进行交互,无论是创建数据库、插入数据、查询、更新还是删除数据,都能轻松实现。掌握这些基本操作,将大大增强你在项目中的数据库管理能力。
以上就是使用Python和mysql-connector-python操作MySQL数据库的完整指南。希望这篇文章能帮助你更好地理解和使用数据库操作。


结束语

喜欢博主的同学,请给博主一丢丢打赏吧↓↓↓您的支持是我不断创作的最大动力哟!感谢您的支持哦😘😘😘
打赏下吧

💝💝💝如有需要请大家订阅我的专栏【Python系列】哟!我会定期更新相关系列的文章
💝💝💝关注!关注!!请关注!!!请大家关注下博主,您的支持是我不断创作的最大动力!!!

python相关文章索引文章链接
Python基础语法(一):标识符与保留字部分Python基础语法(一):标识符与保留字部分
Python基础语法(二):数据类型Python基础语法(二):数据类型
Python基础语法(三):运算符Python基础语法(三):运算符
Python基础语法(四):条件控制Python基础语法(四):条件控制
Python基础语法(五):循环语句Python基础语法(五):循环语句
Python基础语法(六):推导式编程Python基础语法(六):推导式编程
Python基础教程(七):函数编程-从基础到进阶Python基础教程(七):函数编程-从基础到进阶
Python基础教程(八):迭代器与生成器编程Python基础教程(八):迭代器与生成器编程
Python基础教程(九):Lambda 函数Python基础教程(九):Lambda 函数
Python基础教程(十):装饰器Python基础教程(十):装饰器
Python基础教程(十一):数据结构汇总梳理Python基础教程(十一):数据结构汇总梳理
Python基础教程(十二):模块Python基础教程(十二):模块
Python基础教程(十三):file文件及相关的函数Python基础教程(十三):file文件及相关的函数
Python基础教程(十四):OS 文件/目录方法Python基础教程(十四):OS 文件/目录方法
Python基础教程(十五):面向对象编程Python基础教程(十五):面向对象编程
Python基础教程(十六):正则表达式Python基础教程(十六):正则表达式
Python基础教程(十七):CGI编程Python基础教程(十七):CGI编程

❤️❤️❤️觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

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

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

相关文章

碳化硅陶瓷膜良好的性能

碳化硅陶瓷膜是一种高性能的陶瓷材料,以其独特的物理和化学特性,在众多领域展现出了广泛的应用前景。以下是对碳化硅陶瓷膜的详细介绍: 一、基本特性 高强度与高温稳定性:碳化硅陶瓷膜是一种非晶态陶瓷材料,具有极高的…

ChatTTS

基于您的要求,我为您推荐一个开源项目——ChatTTS。 **项目名称:ChatTTS** ChatTTS是一个基于Python的自然语言处理项目,主要用于生成文本对话。该项目主要基于一种名为Text-to-Speech (TTS)的模型,可以模拟人类的语音对话。它提供…

从GAN到WGAN(02/2)

文章目录 一、说明二、GAN中的问题2.1 难以实现纳什均衡(Nash equilibrium)2.2 低维度支撑2.3 梯度消失2.4 模式坍缩2.5 缺乏适当的评估指标 三、改进的GAN训练四、瓦瑟斯坦(Wasserstein)WGAN4.1 什么是 Wasserstein 距离?4.2 为什么 Wassers…

mysql社区版可以用的聚类函数有哪些

MySQL社区版支持一系列聚类函数(或称为聚合函数),这些函数用于对一组值执行计算并返回单个值。以下是MySQL中常用的一些聚类函数,并附带简要描述和相关数字或信息(如适用): SUM() 功能&#x…

53.Python-web框架-Django开始第一个应用的多语言

针对上一篇的功能&#xff0c;本次仅对页面做了多语言&#xff0c;大家可以看看效果。 51.Python-web框架-Django开始第一个应用的增删改查-CSDN博客 目录 部门列表 新增部门 编辑部门 部门列表 源码 <!DOCTYPE html> {% load static %} {% load i18n %} <html …

JAVA开发 使用Apache PDFBox库生成PDF文件,绘制表格

1. 表格位置定点 2.执行效果展示&#xff08;截取PDF文件图片&#xff09; 3.执行代码 当我们使用Apache PDFBox库在PDF文件中创建带有表格的内容&#xff0c;需要遵循几个步骤。PDFBox本身并没有直接的API来创建表格&#xff0c;但我们可以通过定位文本、绘制线条和单元格矩形…

shell编程基础(第16篇:命令是什么?有哪些注意事项)

前言 前面我们已经使用过各种各样的命令&#xff0c;那么命令到底是什么呢&#xff1f;我们又该怎么理解该术语&#xff1f; 什么是命令&#xff1f; 命令是command的中文翻译&#xff0c;能在命令行中执行的是命令。因为早期的计算机只有文字界面&#xff0c;命令是程序&#…

高速公路智能管理系统:构建安全畅通的数字大动脉

随着城市化进程的加速和交通需求的增长&#xff0c;高速公路系统作为城市交通的重要组成部分&#xff0c;正承担着越来越多的交通运输任务。为了提升高速公路的安全性、便捷性和智能化管理水平&#xff0c;高速公路智能管理系统应运而生。本文将深入探讨高速公路智能管理系统的…

ExoPlayer 学习笔记

https://www.51cto.com/article/777840.html ExoPlayer支持多种媒体格式和流媒体协议的播放器 播放视频&#xff1a;player.play()暂停视频&#xff1a;player.pause()停止播放&#xff1a;player.stop() Media3 ExoPlayer | Android media | Android Developers implem…

双向链表详解及C++实现

一、引言 链表是一种常见的数据结构&#xff0c;它允许动态地分配内存空间&#xff0c;并通过指针&#xff08;或引用&#xff09;将数据元素连接在一起。双向链表作为链表的一种&#xff0c;除了拥有普通链表的特性外&#xff0c;每个节点还包含两个指针&#xff1a;一个指向…

Leetcode 剑指 Offer II 082.组合总和 II

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给定一个可能有重复数字的整数数组 candidates 和一个目标数 tar…

能耗监控与管理平台

在当今社会&#xff0c;随着工业化、城市化的快速发展&#xff0c;能源消耗问题日益凸显&#xff0c;节能减排已成为全社会共同关注的焦点。在这个背景下&#xff0c;一款高效、智能的能耗监控与管理平台显得尤为重要。 一、HiWoo Cloud平台的概念 HiWoo Cloud是一款集数据采…

六大维度全面焕新升级!麒麟信安服务器操作系统V3.6.1引领未来计算

昨日&#xff0c;openEuler 24.03 LTS 正式发布&#xff0c;麒麟信安作为openEuler社区重要贡献者和参与者&#xff0c;充分发挥自身在国产操作系统领域的技术优势&#xff0c;在打造安全可靠、极致体验的操作系统上与社区共同努力&#xff0c;同步推出服务器操作系统V3.6.1&am…

OpenGL3.3_C++_Windows(7)

演示 最终演示效果 ​​​​ 冯氏光照 光照原理&#xff1a;对于向量相乘默认为点乘&#xff0c;如果*lightColor(1.0f, 1.0f, 1.0f);白光&#xff0c;值不变物体的颜色显示原理&#xff1a;不被物体吸收的光反射&#xff0c;也就是由白光分解后的一部分&#xff0c;因此&…

【bugfix】解决Redis缓存键清理问题

前言 在Spring Boot应用中集成Redis作为缓存存储时&#xff0c;合理配置RedisTemplate是确保数据正确存储和检索的关键。本文将通过对比分析一段初始存在问题的Redis配置代码及其修正后的版本&#xff0c;探讨如何正确处理Redis键前缀&#xff0c;以避免清理缓存时遇到的问题。…

Cask ‘oraclexxx‘ is unavailable: No Cask with this name exists.

brew search oracle-jdk或brew search --cask oracle-jdk 原因&#xff1a;Homebrew官方仓库不再维护多个旧版本的OracleJDK 不推荐使用Homebrew环境安装JDK //指定版本安装 brew install --cask temurin17 //设置 JAVA_HOME 环境变量 //找到安装的JDK 版本的路径 /usr/lib…

探索测试分享

1. “器” 项目中的实践——我们是怎么做的 本章将带你身历其境的感受到思想和方法是如何具体使用在项目里的 1.如何挖掘探索性测试的探索点&#xff0c;在任何阶段都可以利用探索测试策略找到可探索的点&#xff0c;发现产品中的bug&#xff0c;或明显或隐含。 “器”的应用…

分布式管理

一、基本概念 分布式管理是指在一个由多个独立计算机节点组成的分布式系统中&#xff0c;通过对这些节点的资源、服务、数据进行统一的协调、控制和优化&#xff0c;以实现整个系统的高效、稳定、可靠运行。 二、核心原理 无中心化&#xff1a;分布式系统没有一个中心节点来…

ArcGIS JSAPI 高级教程 - ArcGIS Maps SDK for JavaScript - 锐化效果

ArcGIS JSAPI 高级教程 - ArcGIS Maps SDK for JavaScript - 锐化效果 核心代码完整代码在线示例ArcGIS Maps SDK for JavaScript 从 4.29 开始增加 RenderNode 类,可以添加数据以及操作 FBO(ManagedFBO); 通过操作 FBO,可以通过后处理实现很多效果,官方提供了几个示例,…

利用74HC165实现8路并行输入口的扩展

代码&#xff1a; #include <mega16.h>// Declare your global variables here #define hc165_clk PORTB.0 #define hc165_lp PORTB.1 #define hc165_out PINB.2unsigned char read_hc165(void) {unsigned char data0,i,temp0x80;hc165_lp0;hc165_lp1; for(i0;i<7;i)…