Python连接SQLite数据库并进行增删改查操作
随着数据量的增长,我们经常需要处理大量的数据。对于小型应用或个人项目,SQLite是一个很好的选择,因为它不需要一个单独的服务器进程或操作系统级的配置。在Python中,我们可以使用sqlite3模块来连接和操作SQLite数据库。
一、安装sqlite3模块
在Python的标准库中已经包含了sqlite3模块,所以我们不需要额外安装。
二、创建数据库和表
首先,我们需要创建一个数据库和表。在Python中,我们可以使用sqlite3模块的execute()函数来执行SQL命令。
import sqlite3
# 连接到SQLite数据库,如果数据库不存在,会自动创建
conn = sqlite3.connect('test.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()
三、插入数据
接下来,我们可以使用INSERT INTO语句来插入数据。在Python中,我们可以使用sqlite3模块的execute()函数来执行SQL命令。
import sqlite3
# 连接到SQLite数据库
conn = sqlite3.connect('test.db')
c = conn.cursor()
# 插入一行数据
c.execute("INSERT INTO stocks VALUES ('2023-07-05', 'BUY', 'AAPL', 100, 148.95)")
# 提交到数据库执行
conn.commit()
# 关闭连接
conn.close()
四、查询数据
我们可以通过SELECT语句来查询数据。在Python中,我们可以使用sqlite3模块的execute()函数来执行SQL命令。我们还可以使用fetchall()函数来获取查询结果中的所有行,使用fetchone()函数来获取查询结果中的下一行。
import sqlite3
# 连接到SQLite数据库
conn = sqlite3.connect('test.db')
c = conn.cursor()
# 查询所有数据并获取结果中的所有行
c.execute("SELECT * FROM stocks")
rows = c.fetchall()
for row in rows:
print(row) # ('2023-07-05', 'BUY', 'AAPL', 100, 148.95) ...
```**五、更新和删除数据**
更新和删除数据与插入数据类似,我们只需要使用UPDATE和DELETE语句即可。
**六、关闭数据库连接**
最后,当我们完成所有的数据库操作后,需要关闭数据库连接。
```python
import sqlite3
# 连接到SQLite数据库
conn = sqlite3.connect('test.db')
c = conn.cursor()
# 执行更新或删除操作
# ...
# 提交到数据库执行
conn.commit()
# 关闭连接
conn.close()
注意:
在实际操作中,为了避免数据丢失或错误,每次执行INSERT、UPDATE或DELETE语句后,都需要调用commit()函数,以便将更改保存到数据库中。在完成所有数据库操作后,应确保关闭与数据库的连接。
Python的sqlite3模块使得操作SQLite数据库变得非常简单。虽然SQLite不像MySQL或PostgreSQL那样强大,但对于许多小型应用或个人项目来说,它已经足够了。