Python处理数据库:MySQL与SQLite详解

Python处理数据库:MySQL与SQLite详解

在数据处理和存储方面,数据库扮演着至关重要的角色。Python提供了多种与数据库交互的方式,其中pymysql库用于连接和操作MySQL数据库,而SQLite则是一种轻量级的嵌入式数据库,Python标准库中的sqlite3模块即可满足操作需求。本文将为入门者介绍MySQL和SQLite,并分别展示如何使用Python进行增删改查操作。

1. MySQL 简介

MySQL是一种开源的关系型数据库管理系统(RDBMS),广泛应用于各种Web应用。它支持标准的SQL语言,提供了高性能、高可靠性和可扩展性。

安装pymysql

在Python中操作MySQL数据库,需要先安装pymysql库。可以使用pip进行安装:

bash 复制代码
pip install pymysql

1.1 连接MySQL数据库

python 复制代码
import pymysql

# 创建数据库连接
connection = pymysql.connect(
    host='localhost',  # 数据库主机地址
    user='your_username',  # 数据库用户名
    password='your_password',  # 数据库密码
    database='your_database'  # 数据库名称
)

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

1.2 增加数据(Insert)

python 复制代码
try:
    # SQL插入语句
    sql = "INSERT INTO your_table (column1, column2) VALUES (%s, %s)"
    val = ("value1", "value2")
    
    # 执行SQL语句
    cursor.execute(sql, val)
    
    # 提交事务
    connection.commit()
    print("插入成功")
except Exception as e:
    print("插入失败:", e)
    # 回滚事务
    connection.rollback()
finally:
    # 关闭游标和连接
    cursor.close()
    connection.close()

1.3 查询数据(Select)

python 复制代码
try:
    # SQL查询语句
    sql = "SELECT * FROM your_table"
    
    # 执行SQL语句
    cursor.execute(sql)
    
    # 获取所有记录
    results = cursor.fetchall()
    
    for row in results:
        print(row)
except Exception as e:
    print("查询失败:", e)
finally:
    # 关闭游标和连接
    cursor.close()
    connection.close()

1.4 更新数据(Update)

python 复制代码
try:
    # SQL更新语句
    sql = "UPDATE your_table SET column1 = %s WHERE column2 = %s"
    val = ("new_value1", "value2")
    
    # 执行SQL语句
    cursor.execute(sql, val)
    
    # 提交事务
    connection.commit()
    print("更新成功")
except Exception as e:
    print("更新失败:", e)
    # 回滚事务
    connection.rollback()
finally:
    # 关闭游标和连接
    cursor.close()
    connection.close()

1.5 删除数据(Delete)

python 复制代码
try:
    # SQL删除语句
    sql = "DELETE FROM your_table WHERE column1 = %s"
    val = ("value1",)
    
    # 执行SQL语句
    cursor.execute(sql, val)
    
    # 提交事务
    connection.commit()
    print("删除成功")
except Exception as e:
    print("删除失败:", e)
    # 回滚事务
    connection.rollback()
finally:
    # 关闭游标和连接
    cursor.close()
    connection.close()

2. SQLite 简介

SQLite是一种轻量级的嵌入式数据库,它不需要单独的服务器进程,非常适合在本地存储数据。SQLite支持标准的SQL语法,并且Python标准库中的sqlite3模块可以直接操作SQLite数据库。

2.1 连接SQLite数据库

python 复制代码
import sqlite3

# 创建数据库连接(如果数据库文件不存在会自动创建)
connection = sqlite3.connect('your_database.db')

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

2.2 增加数据(Insert)

python 复制代码
try:
    # SQL插入语句
    sql = "INSERT INTO your_table (column1, column2) VALUES (?, ?)"
    val = ("value1", "value2")
    
    # 执行SQL语句
    cursor.execute(sql, val)
    
    # 提交事务
    connection.commit()
    print("插入成功")
except sqlite3.Error as e:
    print("插入失败:", e)
finally:
    # 关闭游标和连接
    cursor.close()
    connection.close()

2.3 查询数据(Select)

python 复制代码
try:
    # SQL查询语句
    sql = "SELECT * FROM your_table"
    
    # 执行SQL语句
    cursor.execute(sql)
    
    # 获取所有记录
    results = cursor.fetchall()
    
    for row in results:
        print(row)
except sqlite3.Error as e:
    print("查询失败:", e)
finally:
    # 关闭游标和连接
    cursor.close()
    connection.close()

2.4 更新数据(Update)

python 复制代码
try:
    # SQL更新语句
    sql = "UPDATE your_table SET column1 = ? WHERE column2 = ?"
    val = ("new_value1", "value2")
    
    # 执行SQL语句
    cursor.execute(sql, val)
    
    # 提交事务
    connection.commit()
    print("更新成功")
except sqlite3.Error as e:
    print("更新失败:", e)
finally:
    # 关闭游标和连接
    cursor.close()
    connection.close()

2.5 删除数据(Delete)

python 复制代码
try:
    # SQL删除语句
    sql = "DELETE FROM your_table WHERE column1 = ?"
    val = ("value1",)
    
    # 执行SQL语句
    cursor.execute(sql, val)
    
    # 提交事务
    connection.commit()
    print("删除成功")
except sqlite3.Error as e:
    print("删除失败:", e)
finally:
    # 关闭游标和连接
    cursor.close()
    connection.close()

通过以上步骤,你可以轻松地使用Python对MySQL和SQLite数据库进行增删改查操作。希望这篇博客能够帮助你入门Python数据库编程!

相关推荐
百结2142 小时前
Mysql数据库操作
数据库·mysql·oracle
keep one's resolveY2 小时前
时区问题解决
数据库
Leinwin3 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
qq_417695053 小时前
机器学习与人工智能
jvm·数据库·python
漫随流水3 小时前
旅游推荐系统(view.py)
前端·数据库·python·旅游
ego.iblacat3 小时前
MySQL 服务基础
数据库·mysql
yy我不解释4 小时前
关于comfyui的mmaudio音频生成插件时时间不一致问题(一)
python·ai作画·音视频·comfyui
Maverick065 小时前
Oracle Redo 日志操作手册
数据库·oracle
紫丁香5 小时前
AutoGen详解一
后端·python·flask
FreakStudio5 小时前
不用费劲编译ulab了!纯Mpy矩阵micronumpy库,单片机直接跑
python·嵌入式·边缘计算·电子diy