sqlite3 python
时间: 2025-01-15 11:08:42 浏览: 35
### 使用Python中的SQLite3进行数据库操作
#### 导入SQLite3库并建立连接
为了使用SQLite3模块,在Python环境中首先需要导入`sqlite3`库。如果工作环境未安装此库,则可以通过解注释特定代码来完成安装[^2]。
```python
import sqlite3
```
#### 创建或访问现有数据库
通过调用`connect()`方法可以创建一个新的数据库或者打开已有的数据库文件。该函数接受一个参数作为目标路径名;如果指定的数据库不存在,将会自动创建新的数据库文件。
```python
conn = sqlite3.connect('example.db')
```
#### 执行SQL语句
一旦建立了到数据库的连接,就可以执行各种类型的SQL命令。这通常涉及到创建表、插入记录以及检索数据等基本操作。对于每一个要执行的操作,都需要先获取游标对象,再利用它发送指令给SQLite引擎处理。
##### 创建表格
下面的例子展示了怎样定义一张名为`users`的新表:
```sql
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
email TEXT UNIQUE NOT NULL
);
```
在Python脚本里实现上述建表过程如下所示:
```python
cursor = conn.cursor()
create_table_query = """
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
email TEXT UNIQUE NOT NULL
);
"""
cursor.execute(create_table_query)
conn.commit() # 提交更改以保存至磁盘
```
##### 插入新纪录
向刚刚创建好的`users`表内添加一条或多条记录的方法也很简单:
```python
insert_user_query = "INSERT INTO users (name, email) VALUES (?, ?)"
data_to_insert = ('Alice', '[email protected]')
try:
cursor.execute(insert_user_query, data_to_insert)
conn.commit()
except sqlite3.IntegrityError as e:
print(f"An error occurred while inserting user: {e}")
finally:
pass
```
此处采用了占位符(`?`)的方式传递实际值,从而提高了安全性并防止SQL注入攻击的发生。
##### 查询数据
当想要读取存储于某张表里的信息时,可构建相应的SELECT查询字符串并通过execute()方法将其提交给游标实例解析返回结果集。例如,假设希望获得所有用户的姓名列表:
```python
select_names_query = "SELECT name FROM users;"
cursor.execute(select_names_query)
for row in cursor.fetchall():
print(row[0])
```
以上就是关于如何运用Python配合SQLite3来进行基础级别的CRUD(增删改查)功能介绍的一部分内容[^1]。
#### 数据库维护——清理空间
有时可能需要手动释放不再使用的页空间,这时可以用VACUUM命令收缩整个数据库文件大小,优化性能表现[^3]:
```python
def vacuum_database(connection):
connection.execute("VACUUM;")
vacuum_database(conn)
```
阅读全文
相关推荐














