import sqlite3
stocks = [
('GOOG', 100, 490.1),
('AAPL', 50, 545.75),
('FB', 150, 7.45),
('HPQ', 75, 33.2),
]
db = sqlite3.connect('database.db')
sqlite3.connect(database [,timeout ,other optional arguments])
该 API 打开一个到 SQLite 数据库文件 database 的链接。如果给定的数据库名称 filename 不存在,则该调用将创建一个数据库。如果不想在当前目录中创建数据库,可以指定带有路径的文件名,就能在任意地方创建数据库。
当一个数据库被多个连接访问,且其中一个修改了数据库,此时 SQLite 数据库被锁定,直到事务提交。timeout 参数表示连接等待锁定的持续时间,直到发生异常断开连接。timeout 参数默认是 5.0(5 秒)。
c = db.cursor()
创建一个cursor(游标),一旦有了游标,就可以执行SQL语句了
c.execute('create table portfolio (symbol text, shares integer, price real)')
执行一条SQL语句,创建表
c.executemany('insert into portfolio values (?,?,?)', stocks)
执行一条SQL语句,像表中插入4条记录
cursor.executemany(sql, seq_of_parameters),该例程对 seq_of_parameters 中的所有参数或映射执行一个 SQL 命令。
c.execute('insert into portfolio values ("Alibaba", 100, 600)')
执行一条SQL语句,像表中插入一条记录
db.commit()
该方法提交当前的事务。如果未调用该方法,那么自您上一次调用 commit() 以来所做的任何动作对其他数据库连接来说是不可见的。
for row in db.execute('select t.* from portfolio t'):
print(row)
查询操作
min_price = 100
for row in db.execute('select t.* from portfolio t where t.price >= ?',
(min_price,)):
print(row)
如果想执行的查询操作需要接受用户提供的输入参数,确保用?隔开参数
db.close()
该方法关闭数据库连接。请注意,这不会自动调用 commit(),如果之前未调用 commit() 方法,就直接关闭数据库连接,您所做的所有更改将全部丢失!
db.rollback()
该方法回滚自上一次调用 commit() 以来对数据库所做的更改。