SQLite文件数据库、内存数据库建立及导入导出
时间: 2023-07-16 09:13:43 浏览: 319
SQLite是一种轻量级的关系型数据库管理系统,它被广泛应用在移动设备和嵌入式系统中。下面介绍如何建立SQLite文件数据库和内存数据库,并进行数据的导入和导出。
## 建立SQLite文件数据库
### 建立数据库
在Python中使用SQLite,首先需要安装SQLite3模块。使用以下命令安装:
```
pip install pysqlite3
```
然后可以通过以下代码建立一个SQLite文件数据库:
```python
import sqlite3
# 建立连接
conn = sqlite3.connect('example.db')
# 关闭连接
conn.close()
```
在这个例子中,我们使用`connect`方法建立一个连接,并指定要创建的数据库文件名为`example.db`。然后使用`close`方法关闭连接。
### 建立表和插入数据
建立数据库之后,我们需要建立表和插入数据。以下是一个简单的例子:
```python
import sqlite3
# 建立连接
conn = sqlite3.connect('example.db')
# 建立表
conn.execute('''
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
)
''')
# 插入数据
conn.execute('INSERT INTO users (name, age) VALUES (?, ?)', ('Alice', 20))
conn.execute('INSERT INTO users (name, age) VALUES (?, ?)', ('Bob', 25))
# 提交更改
conn.commit()
# 关闭连接
conn.close()
```
在这个例子中,我们建立了一个名为`users`的表,包含`id`、`name`和`age`三个字段。然后使用`INSERT INTO`语句插入了两条数据,并使用`commit`方法提交更改。最后使用`close`方法关闭连接。
### 查询数据
查询数据可以使用`SELECT`语句。以下是一个简单的例子:
```python
import sqlite3
# 建立连接
conn = sqlite3.connect('example.db')
# 查询数据
cursor = conn.execute('SELECT * FROM users')
for row in cursor:
print(row)
# 关闭连接
conn.close()
```
在这个例子中,我们使用`execute`方法执行了一个`SELECT`语句,并使用`for`循环遍历查询结果。输出结果为:
```
(1, 'Alice', 20)
(2, 'Bob', 25)
```
## 建立内存数据库
如果不需要将数据保存到文件中,可以建立一个内存数据库。以下是一个简单的例子:
```python
import sqlite3
# 建立连接
conn = sqlite3.connect(':memory:')
# 建立表
conn.execute('''
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
)
''')
# 插入数据
conn.execute('INSERT INTO users (name, age) VALUES (?, ?)', ('Alice', 20))
conn.execute('INSERT INTO users (name, age) VALUES (?, ?)', ('Bob', 25))
# 提交更改
conn.commit()
# 查询数据
cursor = conn.execute('SELECT * FROM users')
for row in cursor:
print(row)
# 关闭连接
conn.close()
```
在这个例子中,我们使用`:memory:`作为连接参数,表示建立一个内存数据库。其他操作与建立文件数据库类似。
## 导入导出数据
可以使用SQLite提供的`.dump`和`.restore`命令导入导出数据。以下是一个简单的例子:
```python
import sqlite3
import subprocess
# 建立连接
conn = sqlite3.connect('example.db')
# 导出数据
with open('example.sql', 'w') as f:
subprocess.call(['sqlite3', 'example.db', '.dump'], stdout=f)
# 关闭连接
conn.close()
# 建立连接
conn = sqlite3.connect(':memory:')
# 导入数据
with open('example.sql', 'r') as f:
subprocess.call(['sqlite3', ':memory:', '.read', '-'], stdin=f)
# 查询数据
cursor = conn.execute('SELECT * FROM users')
for row in cursor:
print(row)
# 关闭连接
conn.close()
```
在这个例子中,我们首先使用`.dump`命令将数据导出到`example.sql`文件中。然后使用`:memory:`作为连接参数,建立一个内存数据库,并使用`.read`命令导入数据。其他操作与前面的例子类似。
阅读全文