前言

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

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

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

1. mysql.connector

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

概念:

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

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

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

示例代码如下:

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()

截图如下:
详细讲解Python连接Mysql的基本操作-LMLPHP

2. pymysql

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

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

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

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

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

修改的代码如下:

import pymysql

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

最终截图如下:

详细讲解Python连接Mysql的基本操作-LMLPHP
由于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()

截图如下:

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


增加一张表:

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()

截图如下:

详细讲解Python连接Mysql的基本操作-LMLPHP
数据库表如下:

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

01-16 08:28