Python sqlite3安装及使用
1. 什么是sqlite3?
SQLite是一款轻型的、嵌入式的数据库,它是开源的,并且可以在多个平台上运行。SQLite通常被用作开发移动设备和小型应用程序的数据库。它具有以下特点:
- 轻量级:SQLite不需要独立的服务器进程或配置。
- 嵌入式:SQLite数据库引擎被嵌入到应用程序中,应用程序可以直接访问数据库文件。
- 零配置:与大多数数据库不同,SQLite不需要任何配置或安装过程。
- 事务支持:SQLite支持事务,可以确保数据库中的数据完整性。
Python内置了sqlite3模块,通过它可以方便地使用SQLite数据库。
2. 安装sqlite3模块
Python自带的sqlite3模块不需要额外安装。要开始使用它,只需要导入sqlite3模块即可:
import sqlite3
3. 连接到数据库
在使用sqlite3之前,我们需要先连接到一个已存在的数据库,或者创建一个新的数据库。连接数据库的代码如下:
import sqlite3
conn = sqlite3.connect('mydatabase.db')
这里,我们使用sqlite3.connect()
函数来连接到一个名为mydatabase.db
的数据库。如果该数据库不存在,则会自动创建一个新的数据库。通过连接对象conn
,我们可以执行后续的数据库操作。
4. 创建表
在SQLite中,数据是以表的形式存储的,我们需要先创建表结构,然后才能向表中插入数据。下面是一个创建名为employees
的表的示例:
import sqlite3
conn = sqlite3.connect('mydatabase.db')
# 获取游标对象
cursor = conn.cursor()
# 创建表
cursor.execute('''CREATE TABLE employees
(id INT PRIMARY KEY NOT NULL,
name TEXT NOT NULL,
age INT NOT NULL,
department TEXT NOT NULL)''')
# 提交事务
conn.commit()
# 关闭连接
conn.close()
在上面的代码中,我们创建了一个名为employees
的表,表中包含id
、name
、age
和department
四个字段。id
字段为主键,name
、age
和department
字段都是非空字段。
5. 插入数据
在表创建完成后,我们可以向表中插入数据。下面是一个向employees
表中插入一条记录的示例:
import sqlite3
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
# 插入数据
cursor.execute("INSERT INTO employees (id, name, age, department) VALUES (1, 'John Doe', 30, 'IT')")
# 提交事务
conn.commit()
# 关闭连接
conn.close()
6. 查询数据
要从表中检索数据,我们可以使用SELECT
语句。下面是一个查询employees
表中所有记录的示例:
import sqlite3
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
# 查询数据
cursor.execute("SELECT * FROM employees")
# 获取所有查询结果
results = cursor.fetchall()
# 输出查询结果
for row in results:
print(row)
# 关闭连接
conn.close()
上面的代码中,SELECT * FROM employees
语句用于查询employees
表中的所有数据。cursor.fetchall()
方法用于获取所有的查询结果,然后我们可以通过遍历结果集来输出每一条记录。
7. 更新数据
要更新表中的记录,我们可以使用UPDATE
语句。下面是一个更新employees
表中某个记录的示例:
import sqlite3
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
# 更新数据
cursor.execute("UPDATE employees SET age = 35 WHERE id = 1")
# 提交事务
conn.commit()
# 关闭连接
conn.close()
上面的代码中,UPDATE employees SET age = 35 WHERE id = 1
语句用于将id
为1的记录的age
字段更新为35。
8. 删除数据
要从表中删除记录,我们可以使用DELETE
语句。下面是一个删除employees
表中某个记录的示例:
import sqlite3
conn = sqlite3.connect('mydatabase.db')