当前位置:   article > 正文

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

mysql.connector

前言

连接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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

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

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"  # 数据库名称
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

最终截图如下:

在这里插入图片描述
由于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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

截图如下:

在这里插入图片描述


增加一张表:

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

截图如下:

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

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/778518
推荐阅读
相关标签
  

闽ICP备14008679号