• 15 Python使用MySQL


    概述

            在上一节,我们介绍了如何在Python中使用网络,包括:套接字编程、socketserver等内容。在这一节,我们将介绍如何在Python中使用MySQL。MySQL是最流行的关系型数据库管理系统之一,由瑞典MySQL AB公司开发,属于Oracle旗下产品。Python MySQL是一个用于在Python中连接和操作MySQL数据库的库。它提供了一个接口,使得Python程序可以与MySQL数据库进行交互,执行SQL查询、插入、更新和删除数据等操作。

            在Python MySQL中,最常用的库是mysql-connector-python,它是一个纯Python实现的MySQL连接器。通过安装该库,我们可以轻松地在Python程序中连接和操作MySQL数据库。

    mysql.connector简介

            mysql.connector是Python的一个数据库驱动程序,用于在Python中与MySQL数据库进行交互。它提供了一组API和工具,使开发人员能够轻松地编写安全、高效的MySQL应用程序。

            mysql.connector的一些主要特性和功能如下。

            连接管理:通过mysql.connector,可以轻松地创建与MySQL数据库的连接。它支持多种连接选项,包括主机名、用户名、密码、数据库名称等。

            游标管理:mysql.connector提供了游标对象,用于执行SQL语句和获取结果。游标支持各种操作,比如:查询、插入、更新和删除数据等。

            数据类型转换:mysql.connector会自动将Python数据类型转换为MySQL数据类型,并将MySQL数据类型转换回Python数据类型。

            事务管理:通过mysql.connector可以进行事务管理,包括提交和回滚操作,以确保数据的一致性。

            连接池:mysql.connector支持连接池功能,可以缓存数据库连接。有效避免了每次需要时都创建新连接的开销,提高了性能。

            异步操作:mysql.connector支持异步操作,可以使用异步编程模型来编写高性能的MySQL应用程序。

            与其他框架和工具集成:mysql.connector可以与许多开源框架和工具集成,比如:Django、Flask等,使开发人员能够更方便地与MySQL进行交互。

    mysql.connector的函数

            要使用mysql.connector,必须先安装mysql.connector库。参考如下的pip命令安装即可:

               pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple mysql-connector==2.1.7

            mysql.connector提供了一组函数和工具,使开发人员能够编写安全、高效的MySQL应用程序。下面是一些常用的mysql.connector函数及其功能。

            connect(): 用于创建与MySQL数据库的连接,它接受各种连接选项,如主机名、用户名、密码、数据库名称等。

    1. import mysql.connector
    2. mydb = mysql.connector.connect(host='localhost',
    3. user='username',
    4. password='password',
    5. database='mydb')

            cursor(): 用于创建一个游标对象,执行SQL查询和操作数据库。

    cursor = mydb.cursor()

            execute(): 用于执行SQL查询,它接受一个SQL查询字符串作为参数,并执行该查询。

    1. query = 'SELECT * FROM customers'
    2. cursor.execute(query)

            fetchall(): 用于获取查询结果的所有行,它返回一个包含查询结果的所有行的列表。

    1. rows = cursor.fetchall()
    2. for row in rows:
    3. print(row)

            fetchone(): 用于获取查询结果的一行,它返回一个包含一行数据的列表。

    1. row = cursor.fetchone()
    2. print(row)

            commit(): 用于提交事务,它确保对数据库的更改被保存并应用。

    mydb.commit()

            rollback(): 用于回滚事务,它撤销对数据库的更改。

    mydb.rollback()

            close(): 用于关闭游标和连接,它释放资源并关闭与数据库的连接。

    1. cursor.close()
    2. mydb.close()

    使用mysql.connector

            我们可以使用mysql.connector进行插入数据、更新数据、删除数据、查询数据等操作,下面是一个可供参考的示例代码。

    1. import mysql.connector
    2. # 创建到数据库的连接
    3. mydb = mysql.connector.connect(
    4. host = "your_host",
    5. user = "your_user",
    6. password = "your_password",
    7. database = "your_database"
    8. )
    9. # 创建一个游标对象
    10. cursor = mydb.cursor()
    11. # 插入数据
    12. add_data = ("INSERT INTO your_table "
    13. "(column1, column2, column3) "
    14. "VALUES (%s, %s, %s)")
    15. data = ("value1", "value2", "value3")
    16. cursor.execute(add_data, data)
    17. mydb.commit()
    18. print("Data inserted successfully.")
    19. # 更新数据
    20. update_data = ("UPDATE your_table "
    21. "SET column1 = 'new_value' "
    22. "WHERE column2 = 'some_value'")
    23. cursor.execute(update_data)
    24. mydb.commit()
    25. print("Data updated successfully.")
    26. # 删除数据
    27. delete_data = ("DELETE FROM your_table "
    28. "WHERE column2 = 'some_value'")
    29. cursor.execute(delete_data)
    30. mydb.commit()
    31. print("Data deleted successfully.")
    32. # 查询数据
    33. query = ("SELECT * FROM your_table WHERE column1 = 'some_value'")
    34. cursor.execute(query)
    35. rows = cursor.fetchall()
    36. for row in rows:
    37. print(row)
    38. # 关闭游标和连接
    39. cursor.close()
    40. mydb.close()

            请确保将上述示例代码中的"your_host"、"your_user"、"your_password"、"your_database" 替换为你实际的MySQL的主机、用户名、密码和数据库名。同样地,将表名和列名替换为你的实际表名和列名,并根据需要修改插入、更新、删除和查询的数据。

            注意:每次执行SQL语句后,都应该检查是否有错误并正确处理。另外,在完成数据库操作后,不要忘记关闭游标和连接,以避免资源浪费。

  • 相关阅读:
    springmvc复习(第二天)(黑马版)
    Json Schame匹配map<string, map<string, int>>
    fltter解决跨域问题
    RPC项目解析(1)
    开源项目分享:ChatGPT 控制台聊天应用
    hint: Updates were rejected because the tip of your current branch is behind
    浅谈—IBIS入门理解(二)
    软考 系统架构设计师系列知识点之基于架构的软件开发方法ABSD(5)
    Java实践-物联网loT入门-MQTT传输协议
    VMware 安装CentOS7
  • 原文地址:https://blog.csdn.net/hope_wisdom/article/details/132796057