利用Python连接MySQL超详细实战教程

Written by

in

文章目录
  • 在 Python 开发中,数据库基本是绕不开的核心环节,而 MySQL + PyMySQL 是最常见、最稳定、最轻量的组合。很多同学在刚开始连接数据库时,经常会遇到连不上、编码错误、游标报错等问题。 这篇文章我会用非常清晰的方式带你完成: PyMySQL 安装 数据库连接参数配置 创建连接对象 创建游标对象 执行 SQL 查询 执行插入语句 完整代码可直接运行 内容全部来自实战总结,照着敲你就能用!
  • PyMySQL 是 Python 中用于连接 MySQL 的轻量级库,安装方式非常简单: pip install pymysql 安装完成后我们就可以在项目中使用它进行数据库操作。
  • 连接 MySQL 需要提供登录信息,我们通常将参数写成一个字典,方便管理: import pymysql db_confing = { ‘host’: ‘127.0.0.1’, # 服务器地址 ‘port’: 3306, # MySQL 端口 ‘user’: ‘root’, # 用户名 ‘password’: ‘root’, # 密码 ‘db’: ‘wp’, # 需要连接的数据库 ‘charset’: ‘utf8’, # 字符编码 } ⚠ 这些参数必须真实存在,否则连接会失败。
  • PyMySQL 最核心的一句代码: 数据库对象 = pymysql.connect(**db_confing) print(数据库对象) 这里使用 **db_confing 是 Python 字典解包语法,等同于: host=’127.0.0.1′, port=3306, user=’root’ … 执行后会得到类似: <pymysql.connections.Connection object at 0xxx> 代表连接成功。
  • 游标对象用来 执行 SQL 与 接收查询结果。 游标对象 = 数据库对象.cursor() print(游标对象) 每一次查询、插入,都必须通过游标来完成。
  • 下面是最常用的查询模式: # 创建游标对象 游标对象 = 数据库对象.cursor() # 写 SQL 语句 sql = ‘SELECT * FROM hk’ # 执行 SQL 游标对象.execute(sql) # 接受所有结果 返回结果 = 游标对象.fetchall() # 打印结果 for row in 返回结果: print(row) # 关闭 游标对象.close() 数据库对象.close() 这里 fetchall() 会返回一个 元组列表,每一行数据都是一个元组。
  • def select(): sql = ‘select * from demo’ 游标对象.execute(sql) 返回结果 = 游标对象.fetchall() print(返回结果) 你可以在需要的地方直接调用: select()
  • 插入与查询不同,执行后必须 commit(),否则无法真正写入数据库。 def insert(): name = input(‘请输入你的姓名:’) sql = f’insert into demo value(null,”{name}”)’ 游标对象.execute(sql) 数据库对象.commit() # ✔️ 必须提交 ⚠ 注意字符串需要加引号,否则 SQL 会报错。 下面我在你 刚刚那篇 CSDN 博客的基础上,继续追加两个核心模块: ✅ DELETE(删除数据) ✅ UPDATE(修改数据) 格式依旧符合 CSDN 爆款文章结构,你可以直接复制回博客中,放在原文 “七、执行插入(INSERT)” 的后面即可。
  • 删除操作同样需要 commit() 才能生效。 最推荐写成一个交互式函数:输入要删除的 ID,然后执行删除。 def delete(): delete_id = input(‘请输入要删除的ID:’) sql = f’DELETE FROM demo WHERE id = {delete_id}’ 游标对象.execute(sql) 数据库对象.commit() print(f’ID 为 {delete_id} 的记录已删除’) ⚠ 注意: DELETE 操作必须加 WHERE 条件 否则可能会删光整个表! 示例输入: 请输入要删除的ID:3 输出: ID 为 3 的记录已删除
  • UPDATE 同样需要提交才能生效。 这是一个最常见的「根据 ID 修改姓名」的例子: def update(): update_id = input(‘请输入要修改的ID:’) new_name = input(‘请输入新的姓名:’) sql = f’UPDATE demo SET name = “{new_name}” WHERE id = {update_id}’ 游标对象.execute(sql) 数据库对象.commit() print(f’ID 为 {update_id} 的记录已成功修改’) 执行时会有两次输入: 请输入要修改的ID:2 请输入新的姓名:王五 输出: ID 为 2 的记录已成功修改
  • 你可以在原文的最终代码中加入以下内容,结构完全统一: def select(): sql = ‘select * from demo’ 游标对象.execute(sql) 返回结果 = 游标对象.fetchall() print(返回结果) def insert(): name = input(‘请输入你的姓名:’) sql = f’insert into demo value(null,”{name}”)’ 游标对象.execute(sql) 数据库对象.commit() print(‘插入成功’) def delete(): delete_id = input(‘请输入要删除的ID:’) sql = f’DELETE FROM demo WHERE id = {delete_id}’ 游标对象.execute(sql) 数据库对象.commit() print(f’ID 为 {delete_id} 的记录已删除’) def update(): update_id = input(‘请输入要修改的ID:’) new_name = input(‘请输入新的姓名:’) sql = f’UPDATE demo SET name = “{new_name}” WHERE id = {update_id}’ 游标对象.execute(sql) 数据库对象.commit() print(f’ID 为 {update_id} 的记录已成功修改’)
  • 至此为止,你已经拥有: ✔ SELECT 查询 ✔ INSERT 插入 ✔ DELETE 删除 ✔ UPDATE 修改 ✔ commit 提交机制 ✔ 游标对象生命周期 ✔ 完整数据库交互代码 到此这篇关于利用Python连接MySQL的文章就介绍到这了,更多相关Python连接MySQL内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Python操作MySQL数据库9个实用实例 Python如何读取MySQL数据库表数据 python连接mysql数据库示例(做增删改操作) Python连接mysql数据库的正确姿势 python的mysql数据库建立表与插入数据操作示例 Python的mysql数据库的更新如何实现
  • 目录
    • 前言
    • 一、安装 PyMySQL
    • 二、准备数据库连接配置
    • 三、建立数据库连接
    • 四、创建游标对象(Cursor)
    • 五、执行 SQL 查询(SELECT)
    • 六、封装查询函数(实战)
    • 七、执行插入(INSERT + commit)
    • 八、执行删除(DELETE)
    • 九、执行修改(UPDATE)
    • 十、最终完整版(增删改查四合一)
    • 总结:增删改查你已经全会了!

    在 Python 开发中,数据库基本是绕不开的核心环节,而 MySQL + PyMySQL 是最常见、最稳定、最轻量的组合。
    很多同学在刚开始连接数据库时,经常会遇到连不上、编码错误、游标报错等问题。

    这篇文章我会用非常清晰的方式带你完成:

    • PyMySQL 安装
    • 数据库连接参数配置
    • 创建连接对象
    • 创建游标对象
    • 执行 SQL 查询
    • 执行插入语句
    • 完整代码可直接运行

    内容全部来自实战总结,照着敲你就能用!

    PyMySQL 是 Python 中用于连接 MySQL 的轻量级库,安装方式非常简单:

    pip install pymysql
    

    安装完成后我们就可以在项目中使用它进行数据库操作。

    连接 MySQL 需要提供登录信息,我们通常将参数写成一个字典,方便管理:

    import pymysql
    
    db_confing = {
        'host': '127.0.0.1',   # 服务器地址
        'port': 3306,          # MySQL 端口
        'user': 'root',        # 用户名
        'password': 'root',    # 密码
        'db': 'wp',       # 需要连接的数据库
        'charset': 'utf8',     # 字符编码
    }
    

    ⚠ 这些参数必须真实存在,否则连接会失败。

    PyMySQL 最核心的一句代码:

    数据库对象 = pymysql.connect(**db_confing)
    print(数据库对象)
    

    这里使用 **db_confing 是 Python 字典解包语法,等同于:

    host='127.0.0.1', port=3306, user='root' ...
    

    执行后会得到类似:

    <pymysql.connections.Connection object at 0xxx>
    

    代表连接成功。

    游标对象用来 执行 SQL接收查询结果

    游标对象 = 数据库对象.cursor()
    print(游标对象)
    

    每一次查询、插入,都必须通过游标来完成。

    下面是最常用的查询模式:

    # 创建游标对象
    游标对象 = 数据库对象.cursor()
    
    # 写 SQL 语句
    sql = 'SELECT * FROM hk'
    
    # 执行 SQL
    游标对象.execute(sql)
    
    # 接受所有结果
    返回结果 = 游标对象.fetchall()
    
    # 打印结果
    for row in 返回结果:
        print(row)
    
    # 关闭
    游标对象.close()
    数据库对象.close()
    

    这里 fetchall() 会返回一个 元组列表,每一行数据都是一个元组。

    def select():
        sql = 'select * from demo'
        游标对象.execute(sql)
        返回结果 = 游标对象.fetchall()
        print(返回结果)
    

    你可以在需要的地方直接调用:

    select()
    

    插入与查询不同,执行后必须 commit(),否则无法真正写入数据库。

    def insert():
        name = input('请输入你的姓名:')
        sql = f'insert into demo value(null,"{name}")'
        游标对象.execute(sql)
        数据库对象.commit()  # ✔️ 必须提交
    

    ⚠ 注意字符串需要加引号,否则 SQL 会报错。

    下面我在你 刚刚那篇 CSDN 博客的基础上,继续追加两个核心模块:

    DELETE(删除数据)

    UPDATE(修改数据)

    格式依旧符合 CSDN 爆款文章结构,你可以直接复制回博客中,放在原文 “七、执行插入(INSERT)” 的后面即可。

    删除操作同样需要 commit() 才能生效。

    最推荐写成一个交互式函数:输入要删除的 ID,然后执行删除。

    def delete():
        delete_id = input('请输入要删除的ID:')
        sql = f'DELETE FROM demo WHERE id = {delete_id}'
        游标对象.execute(sql)
        数据库对象.commit()
        print(f'ID 为 {delete_id} 的记录已删除')
    

    ⚠ 注意:

    • DELETE 操作必须加 WHERE 条件
    • 否则可能会删光整个表!

    示例输入:

    请输入要删除的ID:3
    

    输出:

    ID 为 3 的记录已删除
    

    UPDATE 同样需要提交才能生效。

    这是一个最常见的「根据 ID 修改姓名」的例子:

    def update():
        update_id = input('请输入要修改的ID:')
        new_name = input('请输入新的姓名:')
    
        sql = f'UPDATE demo SET name = "{new_name}" WHERE id = {update_id}'
        游标对象.execute(sql)
        数据库对象.commit()
    
        print(f'ID 为 {update_id} 的记录已成功修改')
    

    执行时会有两次输入:

    请输入要修改的ID:2
    请输入新的姓名:王五
    

    输出:

    ID 为 2 的记录已成功修改
    

    你可以在原文的最终代码中加入以下内容,结构完全统一:

    def select():
        sql = 'select * from demo'
        游标对象.execute(sql)
        返回结果 = 游标对象.fetchall()
        print(返回结果)
    
    def insert():
        name = input('请输入你的姓名:')
        sql = f'insert into demo value(null,"{name}")'
        游标对象.execute(sql)
        数据库对象.commit()
        print('插入成功')
    
    def delete():
        delete_id = input('请输入要删除的ID:')
        sql = f'DELETE FROM demo WHERE id = {delete_id}'
        游标对象.execute(sql)
        数据库对象.commit()
        print(f'ID 为 {delete_id} 的记录已删除')
    
    def update():
        update_id = input('请输入要修改的ID:')
        new_name = input('请输入新的姓名:')
        sql = f'UPDATE demo SET name = "{new_name}" WHERE id = {update_id}'
        游标对象.execute(sql)
        数据库对象.commit()
        print(f'ID 为 {update_id} 的记录已成功修改')
    

    至此为止,你已经拥有:

    • ✔ SELECT 查询
    • ✔ INSERT 插入
    • ✔ DELETE 删除
    • ✔ UPDATE 修改
    • ✔ commit 提交机制
    • ✔ 游标对象生命周期
    • ✔ 完整数据库交互代码

    到此这篇关于利用Python连接MySQL的文章就介绍到这了,更多相关Python连接MySQL内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

    您可能感兴趣的文章:

    • Python操作MySQL数据库9个实用实例
    • Python如何读取MySQL数据库表数据
    • python连接mysql数据库示例(做增删改操作)
    • Python连接mysql数据库的正确姿势
    • python的mysql数据库建立表与插入数据操作示例
    • Python的mysql数据库的更新如何实现

    站内搜索