SQLite3-Python的使用

为了使用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))')
# 
# 继续执行一条SQL语句,插入一条记录:
cursor.execute('insert into user (id, name) values (\'1\', \'Michael\')')
# 
# 通过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()

  • 该例程获取查询结果集中所有(剩余)的行,返回一个列表。
  • 当没有可用的行时,则返回一个空的列表。

 

 

 

 

 

 

 

你可能感兴趣的:(Python开发,SQL)