详细讲解Python连接Mysql的基本操作

前言

连接Mysql一般有几种方法,主要讲解mysql.connector以及pymysql的连接
后续如果用到其他库还会持续总结!

对于数据库中的表格,本人设计如下:(为了配合下面的操作)

在这里插入图片描述

1. mysql.connector

mysql.connector 是一个用于连接 MySQL 数据库的 Python 模块,它提供了一个官方的 MySQL 驱动程序,用于在 Python 中执行与 MySQL 数据库的交互。

概念:

  • 连接器(Connector): mysql.connector 是 MySQL 官方提供的一个 Python 连接器,用于在 Python 程序中连接和操作 MySQL 数据库。
  • 游标(Cursor): 游标是用于执行 SQL 语句并获取结果的对象。通过游标,可以执行查询、插入、更新、删除等数据库操作。
作用基本功能
1.连接数据库: 提供了建立与 MySQL 数据库的连接的功能。

2.执行 SQL 语句: 可以通过游标执行 SQL 查询和操作。

3.事务管理: 支持事务,可以提交或回滚事务。

4.错误处理: 提供了处理数据库操作中的错误的机制。

5.数据转换: 自动进行 Python 数据类型和 MySQL 数据类型之间的转换。

6.连接池管理: 可以使用连接池提高数据库连接的性能和效率。
1.建立连接: 使用 connect() 方法建立与 MySQL 数据库的连接。

2.创建游标: 使用 cursor() 方法创建游标对象,用于执行 SQL 语句。

3.执行 SQL 语句: 使用游标的 execute() 方法执行 SQL 查询或操作。

4.获取结果: 使用游标的 fetchone()、fetchall() 等方法获取查询结果。

5.提交事务: 使用连接的 commit() 方法提交事务。

6.回滚事务: 使用连接的 rollback() 方法回滚事务。

7.关闭连接: 使用连接的 close() 方法关闭与数据库的连接。

执行代码前,需要安装如下包:pip install mysql-connector-python

在这里插入图片描述

示例代码如下:

import datetime

import mysql.connector

# 建立数据库连接
db_connection = mysql.connector.connect(
    host="your_host",  # 数据库主机地址
    user="your_username",  # 数据库用户名
    password="your_password",  # 数据库密码
    database="your_database"  # 数据库名称
)


if "__main__" == __name__:
    try:
        # 创建游标对象
        cursor = db_connection.cursor()

        # 示例1: 执行插入
        insert_query = "INSERT INTO test_student (username,delete_flag,time) VALUES (%s, %s, %s)"
        data = ('manong',0,datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
        cursor.execute(insert_query, data)
        # 提交事务
        db_connection.commit()


        # 执行 SQL 查询或操作
        cursor.execute("SELECT * FROM test_student")
        # 获取查询结果
        result = cursor.fetchall()
        for row in result:
            print(row)


    finally:
        # 关闭游标和连接
        cursor.close()
        db_connection.close()

截图如下:
在这里插入图片描述

2. pymysql

pymysql 是一个纯 Python 实现的 MySQL 客户端库,用于在 Python 中连接和操作 MySQL 数据库。

DB-API 2.0 兼容: pymysql 遵循 Python 数据库 API 规范,使得在使用时更容易与其他数据库连接库切换。

对于作用以及API,与上述代码一致,只需要把包名替换即可!

运行前,先安装pymsql:pip install pymysql

在这里插入图片描述

修改的代码如下:

import pymysql

# 建立数据库连接
db_connection = pymysql.connect(
    host="your_host",  # 数据库主机地址
    user="your_username",  # 数据库用户名
    password="your_password",  # 数据库密码
    database="your_database"  # 数据库名称
)

最终截图如下:

在这里插入图片描述
由于pymysqlmysql.connector要更加常用(但两者代码又差不多),所以在此处科普其他的CRUD,现已有插入和查询

如果是删除数据,示例代码:

if "__main__" == __name__:
    try:
        # 创建游标对象
        cursor = db_connection.cursor()

        # 示例1: 执行删除
        delete_query = "DELETE FROM test_student WHERE id = 9"
        cursor.execute(delete_query)
        # 提交事务
        db_connection.commit()


        # 执行 SQL 查询或操作
        cursor.execute("SELECT * FROM test_student")
        # 获取查询结果
        result = cursor.fetchall()
        for row in result:
            print(row)
            
    except:
        db_connection.rollback();

    finally:
        # 关闭游标和连接
        cursor.close()
        db_connection.close()

截图如下:

在这里插入图片描述


增加一张表:

if "__main__" == __name__:
    try:
        # 创建游标对象
        cursor = db_connection.cursor()

        # 示例1: 创建一张表
        create_query = """CREATE TABLE test_student1 (
          username  CHAR(20) NOT NULL,
          age INT,
          sex CHAR(1) )"""
        cursor.execute(create_query)


        # 示例1: 执行插入
        insert_query = "INSERT INTO test_student1 (username,age,sex) VALUES (%s, %s, %s)"
        data = ('manong', 18, 1)
        cursor.execute(insert_query, data)


        # 执行 SQL 查询或操作
        cursor.execute("SELECT * FROM test_student1")
        # 获取查询结果
        result = cursor.fetchall()
        for row in result:
            print(row)

        # 提交事务
        db_connection.commit()

    except:
        db_connection.rollback();

    finally:
        # 关闭游标和连接
        cursor.close()
        db_connection.close()

截图如下:

在这里插入图片描述
数据库表如下:

在这里插入图片描述

  • 46
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农研究僧

你的鼓励将是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值