在 Python 中使用 sqlite3

2018/04/24 Python

最近接触了 sqlite3,一种轻量的数据库,超好用。除了在命令行能直接操作以外,在 Python 脚本里也能执行 sql 语句,非常方便。这里记录一些基础的用法。

在命令行使用 sqlite3

简单说一下在命令行使用 sqlite3 的一些命令。
首先,创建一个空的数据库文件:

$ touch test.db

新建一个 test 表:

$ sqlite3 test.db
sqlite> CREATE TABLE test (
   ...> id int,
   ...> name text);

插入数据:

INSERT INTO test (id, name) VALUES(1, 'miopas');

查看数据:

SELECT * FROM test;

在 Python 中使用 sqlite3

首先要引入 sqlite3 模块:

import sqlite3 

链接相关的数据库文件:

db = sqlite3.connect('test.db')

创建一个 cursor 对象,来执行 sql 语句。

cursor = db.cursor()

然后可以进行各种 sql 操作

SELECT 操作,可以用 for 循环打印结果:

sql = 'SELECT * from test'

cursor.execute(sql)

for record in records:
    print(record)

运行结果为:

$ python test.py
(1, 'miopas')

UPDATE 操作,需要用 commit() 方法更新到数据库:

sql = 'UPDATE test SET id=2'
cursor.execute(sql)
db.commit()

运行结果为:

$ sqlite3 test.db 'SELECT * FROM test'
2|miopas

另外,如果需要在 sql 语句中使用变量,需要用占位符 ?:

name = 'miopas'
cursor.execute('UPDATE test SET id=3 WHERE name = ?', [name,])
db.commit()

运行结果为:

$ sqlite3 test.db 'SELECT * FROM test'
3|miopas

最后,需要关闭数据库链接:

db.close()

Search

    Table of Contents