当前位置: 首页 > article >正文

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

前言

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

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

在这里插入图片描述


一、mysql-connector-python

1. 简介

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

2. 安装

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

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

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

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

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

1. 创建连接

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

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. 查询

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

import mysql.connector
from mysql.connector import Error

class  MysqlUtil:
    def __init__(self, host_name, user_name, passwd, db_name):
        self.host_name = host_name
        self.user_name = user_name
        self.passwd = passwd
        self.db_name = db_name

    def get_connection(self):
        connection = None
        try:
            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 connection

    def query(self,conn, sql):
        try:
           cursor = conn.cursor()
           cursor.execute(sql)
           return cursor
        except 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函数:

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

main函数中,进行测试:

# 创建连接
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即可:

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

5. 事务

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

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

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

# 提交事务
conn.commit()

6. 其他

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

结语

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

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


在这里插入图片描述


http://www.kler.cn/news/325010.html

相关文章:

  • 【Power Compiler手册】13.UPF多电压设计实现(5)
  • 图像处理基础知识点简记
  • HTML5实现好看的唐朝服饰网站模板源码2
  • [Excel VBA]如何使用VBA自动生成图表
  • [论文翻译]基于多模态特征融合的Android恶意软件检测方法
  • 初识Linux以及Linux的基本命令
  • 栏目二:Echart绘制动态折线图+柱状图
  • HCIP——HCIA回顾
  • 华为OD机试 - 对称美学(Python/JS/C/C++ 2024 E卷 100分)
  • MySQL实现按分秒统计数据量
  • android 身份证取景框
  • Python Web 与区块链集成的最佳实践:智能合约、DApp与安全
  • 前端工程记录:Vue2 typescript项目升级Vue3
  • ppt压缩有什么简单方法?压缩PPT文件的几种方法
  • Qt_对话框QDialog的介绍
  • Docker搭建 RabbitMQ 最新版
  • 作业报告┭┮﹏┭┮(Android反调试)
  • Linux安装go-fastdfs
  • 编译安装的 Nginx 设置为服务启动
  • 基于mediapipe深度学习算法的手势数字0-9识别系统python源码+精美GUI界面
  • 9-pg内核之锁管理器(四)常规锁
  • [前端]DOM+CSS+HTML实现水波进度效果
  • SpringBoot 流式输出时,正常输出后为何突然报错?
  • 使用Prometheus进行系统监控,包括Mysql、Redis,并使用Grafana图形化表示
  • JVM和GC监控技术
  • 前端html+css+js 基础总结
  • Ubuntu24.04 yum安装
  • Android问题笔记五十:构建错误-AAPT2 aapt2-7.0.2-7396180-windows Daemon
  • “滑动窗口”思想在算法里面的应用
  • llama3.1 8b instruct的function calling的template解析