Python连接MySQL数据库图文教程,Python连接数据库MySQL入门教程

news/2025/2/22 7:10:42

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 1. 环境准备
    • 1.1安装 Python
    • 1.2选择开发环境
    • 1.3安装 MySQL 数据库
    • 1.4 安装 pymysql
  • 2. 连接数据库
  • 3. 数据库基本操作
    • 3.1 创建数据库
    • 3.2 创建表
    • 3.3 插入数据
    • 3.4 查询数据
    • 3.5 更新数据
    • 3.6 删除数据
    • 4. 实际应用案例


前言

本教程旨在为广大初学者和有一定基础的开发者提供一个全面、详细且易于理解的 Python 连接 MySQL 数据库的学习指南。我们将从环境准备开始,逐步引导你完成 MySQL 数据库的安装、Python 相关库的安装,然后详细介绍如何建立数据库连接,以及如何进行数据库的基本操作,如创建数据库、创建表、插入数据、查询数据、更新数据和删除数据等。同时,我们还会通过实际的应用案例,帮助你更好地理解和掌握 Python 与 MySQL 数据库的结合使用,让你能够将所学知识应用到实际项目中。


Python连接MySQL数据库教程
以下是一份全面的 Python 连接 MySQL 数据库教程,包含环境准备、数据库操作基础以及实际应用案例等内容。

1. 环境准备

1.1安装 Python

访问 Python 官方网站,根据你的操作系统(Windows、Mac 或 Linux)下载并安装 Python 3.x 版本。安装时勾选 “Add Python to PATH”,方便在命令行中使用 Python。

Python 3.7安装教程:https://blog.csdn.net/u014164303/article/details/145620847
Python 3.9安装教程:https://blog.csdn.net/u014164303/article/details/145570561
Python 3.11安装教程:https://blog.csdn.net/u014164303/article/details/145549489

1.2选择开发环境

下载 PyCharm 社区版(免费)或专业版(需付费或申请教育版)。安装完成后,打开 PyCharm,创建一个新的项目,在项目设置中选择之前创建的虚拟环境作为项目的 Python 解释器。PyCharm 功能强大,提供代码自动补全、调试等功能,适合开发大型项目。

Pycharm安装教程:https://blog.csdn.net/u014164303/article/details/145674773
PyCharm下载地址:https://pan.quark.cn/s/5756c8cf8b2a

1.3安装 MySQL 数据库

如果你还没有安装 MySQL 数据库,可以从 MySQL 官方网站 下载适合你操作系统的安装程序,然后按照安装向导进行安装。安装完成后,启动 MySQL 服务,并记住你设置的用户名和密码。

mysql 8.0安装教程:https://blog.csdn.net/u014164303/article/details/145493332

mysql__31">1.4 安装 pymysql

pymysql 是一个纯 Python 实现的 MySQL 客户端库,使用它可以方便地在 Python 中连接和操作 MySQL 数据库。在命令行中运行以下命令来安装 pymysql

pip install pymysql

2. 连接数据库

以下是一个简单的 Python 代码示例,展示了如何连接到 MySQL 数据库

import pymysql

# 建立数据库连接
try:
    conn = pymysql.connect(
        host='localhost',  # 数据库主机地址,本地数据库一般为 'localhost'
        user='root',  # 数据库用户名
        password='your_password',  # 数据库密码,替换为你自己设置的密码
        database='test_db',  # 要连接的数据库名,如果不存在需要先创建
        charset='utf8mb4'  # 字符编码
    )
    print("数据库连接成功!")
except pymysql.Error as e:
    print(f"数据库连接失败:{e}")
finally:
    if conn:
        conn.close()

3. 数据库基本操作

3.1 创建数据库

如果你需要创建一个新的数据库,可以使用以下代码:

import pymysql

# 建立数据库连接,这里不指定具体数据库名
conn = pymysql.connect(
    host='localhost',
    user='root',
    password='your_password',
    charset='utf8mb4'
)

try:
    # 创建游标对象
    cursor = conn.cursor()
    # 执行创建数据库的 SQL 语句
    cursor.execute("CREATE DATABASE IF NOT EXISTS test_db")
    print("数据库创建成功!")
except pymysql.Error as e:
    print(f"数据库创建失败:{e}")
finally:
    if conn:
        conn.close()

3.2 创建表

在连接到指定数据库后,可以创建表来存储数据。以下是一个创建用户表的示例:

import pymysql

# 建立数据库连接
conn = pymysql.connect(
    host='localhost',
    user='root',
    password='your_password',
    database='test_db',
    charset='utf8mb4'
)

try:
    cursor = conn.cursor()
    # 定义创建表的 SQL 语句
    create_table_sql = """
    CREATE TABLE IF NOT EXISTS users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(255) NOT NULL,
        age INT
    )
    """
    cursor.execute(create_table_sql)
    print("表创建成功!")
except pymysql.Error as e:
    print(f"表创建失败:{e}")
finally:
    if conn:
        conn.close()

3.3 插入数据

可以向表中插入新的数据记录,示例代码如下:

import pymysql

conn = pymysql.connect(
    host='localhost',
    user='root',
    password='your_password',
    database='test_db',
    charset='utf8mb4'
)

try:
    cursor = conn.cursor()
    # 定义插入数据的 SQL 语句
    insert_sql = "INSERT INTO users (name, age) VALUES (%s, %s)"
    data = ('John', 25)
    cursor.execute(insert_sql, data)
    # 提交事务
    conn.commit()
    print("数据插入成功!")
except pymysql.Error as e:
    # 回滚事务
    conn.rollback()
    print(f"数据插入失败:{e}")
finally:
    if conn:
        conn.close()

3.4 查询数据

可以从表中查询数据,以下是一个简单的查询示例:

import pymysql

conn = pymysql.connect(
    host='localhost',
    user='root',
    password='your_password',
    database='test_db',
    charset='utf8mb4'
)

try:
    cursor = conn.cursor()
    # 定义查询数据的 SQL 语句
    select_sql = "SELECT * FROM users"
    cursor.execute(select_sql)
    # 获取查询结果
    results = cursor.fetchall()
    for row in results:
        print(row)
except pymysql.Error as e:
    print(f"数据查询失败:{e}")
finally:
    if conn:
        conn.close()
        

3.5 更新数据

如果需要修改表中的数据记录,可以使用更新操作,示例代码如下:

import pymysql

conn = pymysql.connect(
    host='localhost',
    user='root',
    password='your_password',
    database='test_db',
    charset='utf8mb4'
)

try:
    cursor = conn.cursor()
    # 定义更新数据的 SQL 语句
    update_sql = "UPDATE users SET age = %s WHERE name = %s"
    new_age = 26
    name = 'John'
    cursor.execute(update_sql, (new_age, name))
    conn.commit()
    print("数据更新成功!")
except pymysql.Error as e:
    conn.rollback()
    print(f"数据更新失败:{e}")
finally:
    if conn:
        conn.close()

3.6 删除数据

可以从表中删除指定的数据记录,示例代码如下:

import pymysql

conn = pymysql.connect(
    host='localhost',
    user='root',
    password='your_password',
    database='test_db',
    charset='utf8mb4'
)

try:
    cursor = conn.cursor()
    # 定义删除数据的 SQL 语句
    delete_sql = "DELETE FROM users WHERE name = %s"
    name = 'John'
    cursor.execute(delete_sql, (name,))
    conn.commit()
    print("数据删除成功!")
except pymysql.Error as e:
    conn.rollback()
    print(f"数据删除失败:{e}")
finally:
    if conn:
        conn.close()

4. 实际应用案例

假设你正在开发一个简单的学生信息管理系统,需要使用 Python 连接 MySQL 数据库来存储和管理学生信息。以下是一个完整的示例代码:

import pymysql

# 连接数据库
def connect_db():
    try:
        conn = pymysql.connect(
            host='localhost',
            user='root',
            password='your_password',
            database='student_management',
            charset='utf8mb4'
        )
        return conn
    except pymysql.Error as e:
        print(f"数据库连接失败:{e}")
        return None

# 创建学生表
def create_table(conn):
    try:
        cursor = conn.cursor()
        create_table_sql = """
        CREATE TABLE IF NOT EXISTS students (
            id INT AUTO_INCREMENT PRIMARY KEY,
            name VARCHAR(255) NOT NULL,
            age INT,
            grade VARCHAR(50)
        )
        """
        cursor.execute(create_table_sql)
        conn.commit()
        print("学生表创建成功!")
    except pymysql.Error as e:
        conn.rollback()
        print(f"学生表创建失败:{e}")

# 插入学生信息
def insert_student(conn, name, age, grade):
    try:
        cursor = conn.cursor()
        insert_sql = "INSERT INTO students (name, age, grade) VALUES (%s, %s, %s)"
        cursor.execute(insert_sql, (name, age, grade))
        conn.commit()
        print("学生信息插入成功!")
    except pymysql.Error as e:
        conn.rollback()
        print(f"学生信息插入失败:{e}")

# 查询所有学生信息
def query_all_students(conn):
    try:
        cursor = conn.cursor()
        select_sql = "SELECT * FROM students"
        cursor.execute(select_sql)
        results = cursor.fetchall()
        for row in results:
            print(row)
    except pymysql.Error as e:
        print(f"学生信息查询失败:{e}")

# 主函数
def main():
    conn = connect_db()
    if conn:
        create_table(conn)
        insert_student(conn, 'Alice', 18, 'Grade 12')
        query_all_students(conn)
        conn.close()

if __name__ == "__main__":
    main()

通过以上步骤和示例代码,你可以掌握如何使用 Python 连接和操作 MySQL 数据库。在实际应用中,还可以根据具体需求对代码进行扩展和优化。


http://www.niftyadmin.cn/n/5861860.html

相关文章

数据中心储能蓄电池状态监测管理系统 组成架构介绍

安科瑞刘鸿鹏 摘要 随着数据中心对供电可靠性要求的提高,蓄电池储能系统成为关键的后备电源。本文探讨了蓄电池监测系统在数据中心储能系统中的重要性,分析了ABAT系列蓄电池在线监测系统的功能、技术特点及其应用优势。通过蓄电池监测系统的实施&#…

微信小程序修改个人信息头像(uniapp开发)

HTML部分 <div class"user-img" click"editUserImg"><image style"height: 128rpx;width: 128rpx;border-radius: 999px;margin-right: 10px;":src"userInfo?.userImg" mode"scaleToFill" /></div> TS部…

Django Admin: 实现基于数据库实际值的动态过滤器

在 Django Admin 中,我们经常需要使用 list_filter 来为管理界面添加过滤功能。然而,有时我们希望过滤器能够动态地反映数据库中的实际值,而不是依赖于预定义的选项。本文将介绍如何实现一个基于数据库实际值的动态过滤器,以 ECR 仓库的区域过滤为例。 问题背景 在管理 E…

《代码随想录第三十九天》——背包问题二维、背包问题一维、分割等和子集

《代码随想录第三十九天》——背包问题二维、背包问题一维、分割等和子集 本篇文章的所有内容仅基于C撰写。 1. 背包问题二维 背包问题掌握01背包和完全背包即可&#xff0c;多重背包都比较少。 而完全背包又是也是01背包稍作变化而来&#xff0c;即&#xff1a;完全背包的物…

面对低消费欲人群,我们如何开发其需求?

在市场增量放缓的当下&#xff0c;开发深度开发各层次的人群已经成为现实需求。低消费欲人群并非“没有需求”&#xff0c;而是更谨慎、更理性。他们可能对价格敏感&#xff0c;但对实用性、情感共鸣和生活品质的追求依然存在。就让我们从以下四个角度&#xff0c;拆解如何激发…

Web - JS基础语法与表达式

概述 这篇文章主要介绍了 JavaScript 的基础语法&#xff0c;包括代码书写位置、ERPL 环境、变量&#xff08;命名规则、默认值、初始化&#xff09;、数据类型&#xff08;基本和复杂&#xff0c;及各类型特点、转换&#xff09;、表达式和运算符&#xff08;算数、特殊算数、…

Repeated Sequence

记suma[1]a[2]a[3]...a[n]。 该序列以a[1]&#xff0c;a[2]&#xff0c;a[3]....a[n]为循环节&#xff0c;明显的&#xff0c;问题可转化为:s%sum是否为该序列的某个连续子序列和。 断环为链。将a复制一份。 枚举a[i]为左端点的所有区间的和。再查找s是否存在。二分O&#x…

langchain 调用 本地部署 deepseek-r1 模型

如何本地部署 deepseek 请参考&#xff08;windows 部署安装 大模型 DeepSeek-R1&#xff09; LangChain 就是一个 LLM 编程框架&#xff0c;你想开发一个基于 LLM 应用&#xff0c;需要什么组件它都有&#xff0c;直接使用就行&#xff1b; 下面是langchain 调用 本地部署 de…