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数据库编程!

相关推荐
2601_962293242 小时前
Python自动化统计团队工作量并生成可视化仪表盘的脚本方案【指导】
python·数据分析·自动化·可视化·仪表盘
2601_962293793 小时前
OCRmyPDF批处理脚本:使用Python自动化复杂OCR任务
python·自动化·批处理脚本·ocrmypdf·ocr任务
袋鼠云数栈4 小时前
实时湖仓如何真正做到“数据够新”?
大数据·数据库·人工智能·数据治理
ACP广源盛139246256734 小时前
M6/M5 Pro Mac mini 端侧 AI 落地@ACP#YLB3116 中端多盘存储扩展在 AI 服务中的机会与应用场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos
Java后端的Ai之路4 小时前
20、Python - 备忘录模式
开发语言·人工智能·python·外观模式·备忘录模式
ACP广源盛139246256734 小时前
M6/M5 Pro Mac mini 端侧 AI 新形态@ACP#GSV5800 Serdes 长距离视频传输在 AI 服务中的机会与落地场景
大数据·网络·数据库·人工智能·嵌入式硬件·macos·音视频
2601_962077715 小时前
基于Python与NLP的新闻事件信息抽取实战:从NER到时空标准化
python·nlp·transformers·spacy·新闻事件抽取
JavaPub-rodert5 小时前
LangChain 从入门到 Agent 实战:用 Python 搭建一个真正能调用工具和知识库的 AI 助手
人工智能·python·langchain
郝学胜-神的一滴5 小时前
Qt 高级编程 045:坐标体系深度实战
开发语言·c++·windows·python·qt·程序人生
倔强的石头_6 小时前
事务边界与批量写入:避免长事务、锁等待和日志压力
数据库