为了使用sqlite3模块,必须创建一个表示数据库的连接对象,然后有选择地创建光标对象,以便于执行所有的SQL语句。
# 导入SQLite驱动:
import sqlite3
# 连接到SQLite数据库
# 数据库文件是test.db
# 如果文件不存在,会自动在当前目录创建:
connection = sqlite3.connect('test.db')
# 创建一个Cursor:
cursor = connection.cursor()
# 执行一条SQL语句,创建user表:
cursor.execute('create table user (id varchar(20) primary key, name varchar(20))')
# <sqlite3.Cursor object at 0x10f8aa260>
# 继续执行一条SQL语句,插入一条记录:
cursor.execute('insert into user (id, name) values (\'1\', \'Michael\')')
# <sqlite3.Cursor object at 0x10f8aa260>
# 通过rowcount获得插入的行数:
cursor.rowcount
#1
# 关闭Cursor:
cursor.close()
# 提交事务:
connection.commit()
# 关闭Connection:
connection.close()
1、connection = sqlite3.connect(database, [, timeout, other optional arguments])
- 该API(应用程序编程接口)打开一个到SQLite数据库文件database的连接。
- 如果数据库成功打开,则返回一个连接对象。
- 可以使用“.memory:”来在RAM中打开一个到database的数据库连接,而不是在磁盘上打开。
- 当一个数据库被多个连接访问,且其中一个修改了数据库,此时SQLite数据库会被锁定,直到事务提交。
- timeout参数表示连接等待锁定的持续时间,直到发生异常断开连接。timeout参数默认是5.0秒
- 如果给定的数据库名称filename不存在,则该调用会创建一个数据库。
- 可以指定带有路径的文件名,即可在任意地方创建数据库。
2、cursor = connection.cursor([cursorClass])
- 该过程创建一个cursor,该方法接受一个单一的可选的参数cursor。
- 如果提供了该参数,则它必须是一个扩展自sqlite3.cursor的自定义的cursor类。
3、cursor.execute(sql [, optional parameters])
- 该过程执行一个SQL语句,该SQL语句可以被参数化(即使用占位符代替SQL文本)。
- sqlite3模块支持两种类型的占位符:问号和命名占位符(命名样式)
- 又例如:cursor.execute("insert into people values(?, ?)", (who, age))
4、connection.execute(sql, [, optional parameters])
- 该过程是上面执行的由光标cursor对象提供的方法的快捷方式。
- 它是通过调用光标cursor方法创建了一个中间的光标对象,然后通过给定的参数调用光标的execute1方法。
5、cursor.executemany(sql, seq_of_parameters)
- 该过程对seq_of_parameters中的所有参数执行同一个SQL命令。
6、connection.executemany(sql, [, parameters])
- 该过程是一个由调用光标cursor方法创建的中间光标对象的快捷方式,然后通过给定的参数调用光标的executemany方法。
7、cursor.executescript(sql_script)
- 该语句一旦接收到脚本,就会执行多个SQL语句。
- 首先执行COMMIT语句,然后执行作为参数传入的SQL脚本,脚本内的SQL语句应该用分号;分割。
8、connection.executesctipt(sql_script)
- 该过程是一个由调用光标cursor方法创建的中间光标对象的快捷方式,然后通过给定的参数调用光标的executescript方法。
9、connection.total_changes()
- 该过程返回自数据库连接打开以来被修改、插入或删除的数据库的总行数。
10、connection.commit()
- 该方法提交当前的事务。
- 如果未调用该方法,那么自上一次调用commit()以来所做的任何操作对其他数据库连接来说是不可见的。
11、connection.rollback()
- 该方法回滚自上一次调用commit()以来对数据库所做的更改。
12、connection.close()
- 该方法关闭数据库连接。
- 请注意,这不会自动调用 commit()。如果之前未调用 commit() 方法,就直接关闭数据库连接,之前所做的所有更改将全部丢失!
13、cursor.fetchone()
- 该方法获取查询结果集中的下一行,返回一个单一的序列。
- 当没有更多可用的数据时,则会返回None。
14、cursor.fetchmany([size= cursor.arraysize])
- 该方法获取查询结果集中的下一行组,返回一个列表。
- 当没有更多的可用的行时,则返回一个空的列表。
- 该方法尝试获取由 size 参数指定的尽可能多的行。
15、cursor.fetchall()
- 该例程获取查询结果集中所有(剩余)的行,返回一个列表。
- 当没有可用的行时,则返回一个空的列表。