如何使用Python连接MySQL数据库

数据库编程是在应用程序中与数据库交互和管理数据的关键部分。MySQL是一种流行的关系型数据库管理系统(RDBMS),在Python中进行MySQL数据库编程相对容易。

本文介绍如何使用Python进行MySQL数据库编程,包括连接数据库、执行SQL查询、插入、更新和删除数据等操作。

目录

  1. 安装MySQL驱动
  2. 连接MySQL数据库
  3. 创建数据库
  4. 创建数据表
  5. 插入数据
  6. 查询数据
  7. 更新数据
  8. 删除数据
  9. 执行事务
  10. 关闭数据库连接
  11. 示例:一个完整的MySQL数据库编程示例
  12. 安全性注意事项
  13. 总结

1. 安装MySQL驱动

在开始之前,需要安装Python的MySQL数据库驱动程序。最常用的驱动程序之一是mysql-connector-python

使用pip进行安装:

pip install mysql-connector-python


2. 连接MySQL数据库

在进行任何数据库操作之前,首先需要建立与MySQL数据库的连接。通常,需要提供数据库的主机名、用户名、密码和数据库名称。

以下是连接到MySQL数据库的示例:

import mysql.connector

# 创建数据库连接
db = mysql.connector.connect(
    host="localhost",  # MySQL服务器地址
    user="username",   # 用户名
    password="password",  # 密码
    database="mydatabase"  # 数据库名称
)

# 创建游标对象,用于执行SQL查询
cursor = db.cursor()


3. 创建数据库

创建一个新的数据库,可以执行以下操作:

# 创建一个名为"mydatabase"的新数据库
cursor.execute("CREATE DATABASE mydatabase")


4. 创建数据表

在数据库中,数据以表格形式组织。在创建表格之前,需要定义表格的结构,包括列名、数据类型和约束。

以下是一个示例:

# 创建一个名为"customers"的数据表
cursor.execute("CREATE TABLE customers (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255))")


5. 插入数据

插入数据是将数据添加到数据表中的过程。可以使用SQL的INSERT INTO语句来执行插入操作。

以下是一个示例:

# 插入一条记录到"customers"表中
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
values = ("John Smith", "123 Main St")
cursor.execute(sql, values)

# 提交更改到数据库
db.commit()

print(f"插入了 {cursor.rowcount} 条记录")


6. 查询数据

查询数据是从数据库中检索数据的过程。使用SQL的SELECT语句来执行查询操作。

以下是一个示例:

# 查询所有记录
cursor.execute("SELECT * FROM customers")

# 获取查询结果
results = cursor.fetchall()

for row in results:
    print(row)


7. 更新数据

更新数据是修改现有数据的过程。使用SQL的UPDATE语句来执行更新操作。

以下是一个示例:

# 更新"customers"表中id为1的记录
sql = "UPDATE customers SET address = %s WHERE id = %s"
values = ("456 Elm St", 1)
cursor.execute(sql, values)

# 提交更改到数据库
db.commit()

print(f"更新了 {cursor.rowcount} 条记录")


8. 删除数据

删除数据是从数据库中删除数据的过程。使用SQL的DELETE语句来执行删除操作。

以下是一个示例:

# 删除"customers"表中id为1的记录
sql = "DELETE FROM customers WHERE id = %s"
values = (1,)
cursor.execute(sql, values)

# 提交更改到数据库
db.commit()

print(f"删除了 {cursor.rowcount} 条记录")


9. 执行事务

事务是一组SQL操作,要么全部成功,要么全部失败。在某些情况下,需要使用事务来确保数据库的完整性。

以下是一个示例:

try:
    db.start_transaction()
    # 执行一系列SQL操作
    cursor.execute("INSERT INTO customers (name, address) VALUES (%s, %s)", ("Alice", "789 Oak St"))
    cursor.execute("UPDATE customers SET address = %s WHERE id = %s", ("789 Elm St", 2))
    db.commit()  # 提交事务
except:
    db.rollback()  # 事务回滚,撤销之前的操作


10. 关闭数据库连接

在完成数据库操作后,不要忘记关闭数据库连接,以释放资源。

cursor.close()  # 关闭游标
db.close()  # 关闭数据库连接


11. 示例:一个完整的MySQL数据库编程示例

以下是一个完整的MySQL数据库编程示例,包括连接数据库、创建表格、插入数据、查询数据、更新数据和删除数据:

import mysql.connector

# 创建数据库连接
db = mysql.connector.connect(
    host="localhost",
    user="username",
    password="password",
    database="mydatabase"
)

# 创建游标对象
cursor = db.cursor()

# 创建一个名为"customers"的数据表
cursor.execute("CREATE TABLE customers (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255))")

# 插入记录
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
values = [("John Smith", "123 Main St"), ("Alice Johnson", "456 Elm St")]
cursor.executemany(sql, values)
db.commit()

# 查询记录
cursor.execute("SELECT * FROM customers")
results = cursor.fetchall()
for row in results:
    print(row)

# 更新记录
sql = "UPDATE customers SET address = %s WHERE name = %s"
values = ("789 Oak St", "Alice Johnson")
cursor.execute(sql, values)
db.commit()

# 删除记录
sql = "DELETE FROM customers WHERE name = %s"
values = ("John Smith",)
cursor.execute(sql, values)
db.commit()

# 关闭游标和数据库连接
cursor.close()
db.close()


12.安全性注意事项

在进行数据库编程时,请务必注意安全性。避免直接将用户提供的数据插入SQL语句,以防止SQL注入攻击。可以使用参数化查询或ORM(对象关系映射)来增强安全性。

总结

MySQL数据库编程是Python应用程序的关键组成部分。本文介绍了如何连接数据库、创建数据表、插入、查询、更新和删除数据,以及执行事务。通过这些操作,您可以有效地管理数据,并确保数据的完整性和安全性。希望本文对您在Python中进行MySQL数据库编程有所帮助。

---------------------------END---------------------------

题外话

当下这个大数据时代不掌握一门编程语言怎么跟的上时代呢?当下最火的编程语言Python前景一片光明!如果你也想跟上时代提升自己那么请看一下.

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。
关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。让你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取保证100%免费

点击免费领取《CSDN大礼包》:Python入门到进阶资料 & 实战源码 & 兼职接单方法 安全链接免费领取

  • 29
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值