Python酷玩之旅_如何连接MySQL(mysql-connector-python)

news/2024/9/29 6:32:17/

前言

Python作为数据科学、机器学习等领域的必选武器,备受各界人士的喜爱。当你面对不同类型、存储于各类介质的数据时,第一时间是不是要让它亮个相?做个统计,画个图表,搞个报表… 等等。

正如Java中的JdbcDriver一样,Python中也有同样角色的库。比如今天博主正要介绍的mysql-connector-python,它是Python中操作数据库的常用工具,我们先从它说起吧,Let’s go~

在这里插入图片描述


mysqlconnectorpython_8">一、mysql-connector-python

1. 简介

Python中连接mysql有各种工具支持,博主推荐使用mysql-connector-python,它是MySQL官方提供的标准工具,依赖少,查询方便。

2. 安装

python中安装mysql-connector-python很简单,只需执行如下命令:

python"># 使用清华源pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple mysql-connector-python

安装过程:
在这里插入图片描述
安装结果:
在这里插入图片描述

二、数据操作教程(源码)

安装mysql-connector-python完成后,我们可以尽情的玩耍玩耍,先来看看如何连接。

1. 创建连接

我们可通过mysql.connector.connect创建连接,示例代码:

python">connection = mysql.connector.connect(host=[HOST_NAME],user=[USERNAME],passwd=[PASSWORD],database=[DATABASE]
)

其中,它支持哪些参数,我们来看看:

参数说明
host数据库主机IP
port数据库端口,默认3306
user数据库用户
password数据库密码
database数据库名称
autocommit是否自动提交事务,默认为False
charset字符编码
pool_name连接池名称
pool_size连接池大小

2. 查询

创建连接后,先做一个查询吧(代码已封装,请参考执行):

python">import mysql.connector
from mysql.connector import Errorclass  MysqlUtil:def __init__(self, host_name, user_name, passwd, db_name):self.host_name = host_nameself.user_name = user_nameself.passwd = passwdself.db_name = db_namedef get_connection(self):connection = Nonetry:connection = mysql.connector.connect(host=self.host_name,user=self.user_name,passwd=self.passwd,database=self.db_name)print("恭喜你,成功连接MySQL")except Error as e:print(f"异常啦,原因: '{e}'")return connectiondef query(self,conn, sql):try:cursor = conn.cursor()cursor.execute(sql)return cursorexcept Error as e:print(f"异常啦,原因: '{e}'")if __name__ == '__main__':# 连接信息host = '127.0.0.1'user = 'root'password = '123456'database = 'mysql'# 创建连接mysql_util = MysqlUtil(host, user, password, database)conn = mysql_util.get_connection()# 查询sql = 'select * from 表名'my_cursor = mysql_util.query(conn, sql)result = my_cursor.fetchall()print(f'查询记录数:{len(result)}')# 关闭游标my_cursor.close()# 关闭连接conn.close()

提示:查询完成后,一定要关闭游标和连接。

3. 新增

新增记录时,可在查询源码的基础上,封装一个insert函数:

python"># 插入记录
def insert(self, conn, sql, val):try:cursor = conn.cursor()cursor.execute(sql,val)return cursorexcept Error as e:print(f"异常啦,原因: '{e}'")

main函数中,进行测试:

python"># 创建连接
mysql_util = MysqlUtil(host, user, password, database)
conn = mysql_util.get_connection()# SQL
sql = "INSERT INTO 表名(id,name) VALUES (%s, %s)"
val = ('1','python')
mysql_util.insert(conn,sql, val)# 提交
conn.commit()
# 关闭连接
conn.close()

4. 删除

同理,删除我们也可以封装一个delete函数,因为和insert类似,这里不再呈现。只需调整执行的SQL即可:

python"># SQL
sql = "delete from 表名 where name=%s"
val = ('python',)

5. 事务

在创建游标前,我们可以主动开启一个事务:

python">conn = mysql_util.get_connection()
# 开始事务
conn.start_transaction()
""" 数据操作 """

最后一步很重要,一定要提交哦:

python"># 提交事务
conn.commit()

6. 其他

其他场景比如按条件查询,删除表,清空表等操作,均可通过改变SQL的方式,执行相关数据操作。这里不再一一罗列,是不是很简单?

结语

mysql-connector-python是一款mysql官方支持的数据库工具,博主通过示例呈现了它的能力和优势,希望对你有帮助。

走过的、路过的盆友们,点点赞,收收藏,并加以指导,以备不时之需哈~


在这里插入图片描述


http://www.ppmy.cn/news/1531802.html

相关文章

《C++设计新思维-泛型编程与设计模式之应用》阅读记录

目录 写在前面policy和policy class的认识 写在前面 这本书是2003年出版的,大佬侯捷翻译的,21年前的书了,最近打算翻一翻。 看这种技术书籍,特别是简历理论体系的书籍,最好看纸质书。 本书从根本上展示了generic pa…

Java五子棋

目录 一:案例要求: 二:代码: 三:结果: 一:案例要求: 实现一个控制台下五子棋的程序。用一个二维数组模拟一个15*15路的五子棋棋盘,把每个元素赋值位“┼”可以画出棋…

在传销案件中数据库取证的分步指南

金字塔计划的特点是分层结构,主要由招募新成员的机制驱动。取证部门调查这些方案时,往往依靠数据库记录来分析这种结构。这些记录详细描述了上级和下级之间的关系,使调查人员能够描绘出组织的动态。在本文中,我们将探讨如何利用数…

可靠传输是什么?是基于UDP实现的吗

可靠传输(Reliable Transmission)是指在数据通信过程中,确保数据包能够安全、完整地从发送端传输到接收端的机制。这种传输方式确保了数据的准确性和顺序性,即使在存在丢包、延迟或网络故障的情况下,也能够保证数据的正…

深度学习的核心特点:全面解析

近年来,深度学习成为了人工智能领域的核心推动力量,它的成功不仅仅是算法的创新,还包括方法论和实践模式的巨大转变。本文将深入分析深度学习的核心特点,并揭示它为何在多个领域中取得了突破性的进展。 1. 多层次表示学习 深度学…

论文 | Reframing Instructional Prompts to GPTk’s Language

作者:Swaroop Mishra, Daniel Khashabi, Chitta Baral, Yejin Choi, Hannaneh Hajishirzi 论文摘要:语言模型 (LM) 更容易遵循哪些类型的指令提示? 我们通过进行广泛的实证分析来研究这个问题,这些分析阐明了成功指令提示的重要特…

Spring Boot 中的拦截器 Interceptors

​ 博客主页: 南来_北往 系列专栏:Spring Boot实战 前言 Spring Boot中的拦截器(Interceptor)是一种用于拦截和处理HTTP请求的机制,它基于Spring MVC框架中的HandlerInterceptor接口实现。拦截器允许在请求到达控制器&#…

Excel 获取某列不为空的值【INDEX函数 | SMALL函数或 LARGE函数 | ROW函数 | ISBLANK 函数】

〇、需求 Excel 获取某列不为空的值(获取某列中第一个非空值 或 获取某列中最后一个非空值)。 一、知识点讲解 INDEX函数 和 SMALL函数 两个函数搭配使用都可以实现上述需求 获取某列中第一个非空值 。 INDEX函数 和 LARGE函数 两个函数搭配使用都可以实现上述需求 获取某…