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

相关推荐
寻星探路3 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
陌上丨6 小时前
Redis的Key和Value的设计原则有哪些?
数据库·redis·缓存
AI_56786 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
ValhallaCoder6 小时前
hot100-二叉树I
数据结构·python·算法·二叉树
ccecw6 小时前
Mysql ONLY_FULL_GROUP_BY模式详解、group by非查询字段报错
数据库·mysql
JH30736 小时前
达梦数据库与MySQL的核心差异解析:从特性到实践
数据库·mysql
数据知道6 小时前
PostgreSQL 核心原理:如何利用多核 CPU 加速大数据量扫描(并行查询)
数据库·postgresql
猫头虎7 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
八零后琐话7 小时前
干货:程序员必备性能分析工具——Arthas火焰图
开发语言·python