Python中的数据库操作:从SQLite到MySQL
在Python中,与数据库的交互是常见的操作。Python提供了多种库来帮助开发者与各种数据库进行交互。在本篇文章中,我们将介绍如何使用Python连接SQLite和MySQL数据库。
SQLite数据库
SQLite是一个轻量级的数据库系统,常用于小型应用或单个用户应用。Python的标准库中包含了一个名为sqlite3
的模块,可用于SQLite数据库的操作。
连接到SQLite数据库
连接到SQLite数据库非常简单,因为SQLite数据库实际上是一个文件,您可以直接使用文件路径来连接。以下是一个简单的示例:
import sqlite3
# 连接到SQLite数据库(如果数据库不存在,会自动创建)
conn = sqlite3.connect('example.db')
# 创建一个Cursor对象并执行SQL命令
c = conn.cursor()
c.execute('CREATE TABLE stocks (date text, trans text, symbol text, qty real, price real)')
# 提交事务
conn.commit()
# 关闭连接
conn.close()
MySQL数据库
MySQL是一个广泛使用的关系型数据库管理系统。Python中常用的库来连接MySQL是mysql-connector-python
。您可以使用pip来安装它:
pip install mysql-connector-python
连接到MySQL数据库
要连接到MySQL数据库,您需要提供主机名、用户名、密码和数据库名称。以下是一个示例:
import mysql.connector
# 连接到MySQL数据库
conn = mysql.connector.connect(user='username', password='password', host='localhost', database='database_name')
# 创建一个Cursor对象并执行SQL命令
c = conn.cursor()
c.execute('SELECT * FROM stocks')
rows = c.fetchall()
for row in rows:
print(row)
# 关闭连接
conn.close()
Python数据库操作的进阶
除了基本的数据库连接和查询,Python还可以执行更复杂的数据库操作,例如插入、更新和删除数据,以及执行更复杂的查询和数据处理。
对于SQLite,您可以使用INSERT
, UPDATE
, 和 DELETE
语句来操作数据。例如:
c.execute("INSERT INTO stocks VALUES ('2023-07-05', 'BUY', 'RHAT', 100, 35.14)")
conn.commit() # 提交事务
c.execute("UPDATE stocks SET price=? WHERE symbol=?", (35.50, 'RHAT'))
conn.commit() # 提交事务
c.execute("DELETE FROM stocks WHERE symbol=?", ('RHAT',))
conn.commit() # 提交事务
对于MySQL,操作方式与SQLite类似,但语法可能略有不同。例如:
c.execute("INSERT INTO stocks (date, trans, symbol, qty, price) VALUES ('2023-07-05', 'BUY', 'RHAT', 100, 35.14)")
conn.commit() # 提交事务
c.execute("UPDATE stocks SET price=? WHERE symbol=?", (35.50, 'RHAT'))
conn.commit() # 提交事务
c.execute("DELETE FROM stocks WHERE symbol=?", ('RHAT',))
conn.commit() # 提交事务
使用ORM进行数据库操作
除了直接使用SQL语句,Python开发者还经常使用对象关系映射(ORM)工具,如SQLAlchemy,来处理数据库操作。使用ORM的好处是,您可以以面向对象的方式处理数据库操作,而不需要编写直接的SQL语句。这使得代码更易于理解和维护,特别是对于大型和复杂的数据库应用。
Python提供了多种工具和库来处理数据库操作,从简单的SQLite连接,到复杂的MySQL操作,再到高级的ORM工具,开发者可以根据需要选择合适的工具。