使用Python操作MySQL数据库:入门指南和实际案例

news/2024/11/24 9:20:28/

在本篇技术博客中,我们将探讨如何使用Python操作MySQL数据库。我们将首先介绍如何建立连接,然后展示如何执行基本的数据库操作(如创建表、插入数据、查询数据等)。最后,我们将通过一个详细的代码案例来巩固所学内容。

目录

  1. 简介
  2. 安装MySQL Connector
  3. 建立连接
  4. 创建数据库
  5. 创建表
  6. 插入数据
  7. 查询数据
  8. 更新数据
  9. 删除数据
  10. 详细代码案例
  11. 总结

1. 简介

MySQL是一种关系型数据库管理系统,广泛应用于各种应用程序和网站。Python提供了多种库来与MySQL数据库进行交互,本文将使用官方推荐的mysql-connector-python库。

2. 安装MySQL Connector

在开始之前,确保已经安装了mysql-connector-python库。如果尚未安装,可以使用以下命令进行安装:

pip install mysql-connector-python

3. 建立连接

为了与MySQL数据库进行交互,我们首先需要建立连接。以下代码展示了如何使用mysql.connector.connect()方法建立连接:

import mysql.connectorcnx = mysql.connector.connect(host="localhost",user="your_username",password="your_password"
)print("Connected to MySQL server!")
cnx.close()

4. 创建数据库

连接到MySQL服务器后,我们可以创建一个新的数据库。以下代码展示了如何使用CREATE DATABASE语句创建一个名为mydb的数据库:

import mysql.connectorcnx = mysql.connector.connect(host="localhost",user="your_username",password="your_password"
)cursor = cnx.cursor()
cursor.execute("CREATE DATABASE mydb")print("Database 'mydb' created!")
cnx.close()

5. 创建表

创建数据库后,我们需要在其中创建表。以下代码展示了如何创建一个名为users的表,并为其添加idnameemail列:

import mysql.connectorcnx = mysql.connector.connect(host="localhost",user="your_username",password="your_password",database="mydb"
)cursor = cnx.cursor()
cursor.execute("""
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100),email VARCHAR(100)
)
""")print("Table 'users' created!")
cnx.close()

6. 插入数据

创建表后,我们可以向其中插入数据。以下代码展示了如何向users表插入一条数据:

import mysql.connectorcnx = mysql.connector.connect(host="localhost",user="your_username",password="your_password",database="mydb"
)cursor = cnx.cursor()
sql = "INSERT INTO users (name, email) VALUES (%s, %s)"
val = ("John Doe", "john.doe@example.com")
cursor.execute(sql, val)cnx.commit()print(f"{cursor.rowcount} record(s) inserted!")
cnx.close()

7. 查询数据

我们可以使用SELECT语句从表中查询数据。以下代码展示了如何从users表中查询所有数据:

import mysql.connectorcnx = mysql.connector.connect(host="localhost",user="your_username",password="your_password",database="mydb"
)cursor = cnx.cursor()
cursor.execute("SELECT * FROM users")for row in cursor.fetchall():print(row)cnx.close()

8. 更新数据

要更新表中的数据,我们可以使用UPDATE语句。以下代码展示了如何更新users表中的一条数据:

import mysql.connectorcnx = mysql.connector.connect(host="localhost",user="your_username",password="your_password",database="mydb"
)cursor = cnx.cursor()
sql = "UPDATE users SET email = %s WHERE name = %s"
val = ("john.doe@newexample.com", "John Doe")
cursor.execute(sql, val)cnx.commit()print(f"{cursor.rowcount} record(s) updated!")
cnx.close()

9. 删除数据

要从表中删除数据,我们可以使用DELETE语句。以下代码展示了如何从users表中删除一条数据:

import mysql.connectorcnx = mysql.connector.connect(host="localhost",user="your_username",password="your_password",database="mydb"
)cursor = cnx.cursor()
sql = "DELETE FROM users WHERE name = %s"
val = ("John Doe",)
cursor.execute(sql, val)cnx.commit()print(f"{cursor.rowcount} record(s) deleted!")
cnx.close()

10. 详细代码案例

在本节中,我们将通过一个实际案例来巩固前面所学的内容。我们将创建一个简单的应用程序,该程序可以将用户信息添加到数据库中,并根据需要查询、更新或删除这些信息。

import mysql.connectordef connect_to_db():return mysql.connector.connect(host="localhost",user="your_username",password="your_password",database="mydb")def create_user(name, email):cnx = connect_to_db()cursor = cnx.cursor()sql = "INSERT INTO users (name, email) VALUES (%s, %s)"val = (name, email)cursor.execute(sql, val)cnx.commit()cnx.close()def get_all_users():cnx = connect_to_db()cursor = cnx.cursor()cursor.execute("SELECT * FROM users")result = cursor.fetchall()cnx.close()return resultdef update_user_email(name, new_email):cnx = connect_to_db()cursor = cnx.cursor()sql = "UPDATE users SET email = %s WHERE name = %s"val = (new_email, name)cursor.execute(sql, val)cnx.commit()cnx.close()def delete_user(name):cnx = connect_to_db()cursor = cnx.cursor()sql = "DELETE FROM users WHERE name = %s"val = (name,)cursor.execute(sql, val)cnx.commit()cnx.close()# 添加用户
create_user("Alice", "alice@example.com")
create_user("Bob", "bob@example.com")# 查询所有用户
users = get_all_users()
print("All users:")
for user in users:print(user)# 更新用户邮箱
update_user_email("Alice", "alice@newexample.com")# 查询所有用户
users = get_all_users()
print("All users after update:")
for user in users:print(user)# 删除用户
delete_user("Bob")# 查询所有用户
users = get_all_users()
print("All users after deletion:")
for user in users:print(user)

11. 总结

在本篇博客中,我们学习了如何使用Python操作MySQL数据库。我们讨论了如何建立连接、创建数据库和表、插入数据、查询数据、更新数据以及删除数据。最后,通过一个详细的代码案例来巩固所学知识。

最后,绵薄之力
感谢每一个认真阅读我文章的人,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!


软件测试面试小程序
被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!
涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux
6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

 获取方式 :

这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,关注公众号:一个心态巨好的朋友 扣 ‘1’ 即可自行领取。


http://www.ppmy.cn/news/708693.html

相关文章

数据说话:GIS搭载鲲鹏和英特尔至强CPU,效果有啥不一样?

目前,超图GIS基础软件产品已经与越来越多的国产CPU和国产操作系统完成适配测试和认证,如:龙芯、飞腾、华为鲲鹏等CPU,中标麒麟、银河麒麟等操作系统,本文将通过两个基础案例,对比测试分别搭载鲲鹏CPU和英特…

英特尔至强新添七大算力神器,PyTorch训练性能可提升至10倍!

英特尔、英特尔标识、以及其他英特尔商标是英特尔公司或其子公司在美国和/或其他国家的商标。 © 英特尔公司版权所有。 * 文中涉及的其它名称及商标属于各自所有者资产 点击阅读原文,了解更多内容!

金蝶ERP+英特尔至强:重塑企业数字化转型,再定义云ERP应用体验

数字化转型浪潮之下,企业纷纷借助云ERP系统,实现内部、外部各类资源间的整合,经过多年发展,云ERP的应用也已经十分普遍。 但是问题也随之而来,当所有的企业都在使用云ERP系统,那么,企业的竞争集…

英特尔至强联手东软,打造“智慧医疗”新引擎

全自动鼻咽拭子采样机器人、5G 远程超声机械臂、手术机器人、5G 远程问诊……在 2021 中国国际服务贸易交易会上,众多智慧医疗高科技纷纷亮相,惊艳了观众。 后疫情时代,智慧医疗已成为大家关注的热门话题之一。据 IDC 数据显示,到…

建碁数字引擎小型计算机跳线,建碁推基于英特尔至强的视觉数据数字引擎

建碁推基于英特尔至强的视觉数据数字引擎 2017-02-10 08:10:52来源:智能电子集成 [摘要]全新的DE7400XE能够处理三块独立超高清(UHD)屏幕,进行全面HEVC (H.265)硬件加速,可以服务高端标牌、视频监控、分析、虚拟化和SQL服务器 建碁(AOPEN)新推出基于英特…

英特尔 至强 单核计算性能_使用英特尔性能计数器调整垃圾收集

英特尔 至强 单核计算性能 介绍 我不得不承认我很震惊。 确实,当我意识到这个出现的日历帖子将涉及垃圾收集时,我感到非常震惊。 GC的主题引起了Java倡导者和那些认为内存管理应该是手动的人的热情。 撰写了许多文章,内容涉及看起来奇怪的命令…

英特尔 至强 单核计算性能_英特尔至强和Dual Xeon Limited提供高性能,完全托管的专用托管服务器...

英特尔 至强 单核计算性能 A dedicated hosting server is a standalone server configured to handle any amount of traffic to deploy uninterrupted services to a website. Its resources are not being utilized by other clients like shared server, it is a type of I…

AI规模化落地,英特尔至强的七重助力

当今时代,各行各业与人工智能(AI)加速融合,通过智能化创新来寻求业务转型升级。与为数不多的顶级AI研发公司相比,大多数传统行业或企业有着更丰富的 AI 应用场景,推动着规模化的AI应用落地,其AI…