做慕课的网站,东莞市网络seo推广企业,做网站一般用什么字体,狠狠做最新网站概述 在上一节#xff0c;我们介绍了Python的shutil模块#xff0c;包括#xff1a;shutil模块中一些常用的函数。在这一节#xff0c;我们将介绍Python的sqlite3模块。sqlite3模块是Python中的内置模块#xff0c;用于与SQLite数据库交互。SQLite是一个轻量级的磁盘数据库…概述 在上一节我们介绍了Python的shutil模块包括shutil模块中一些常用的函数。在这一节我们将介绍Python的sqlite3模块。sqlite3模块是Python中的内置模块用于与SQLite数据库交互。SQLite是一个轻量级的磁盘数据库不需要单独的服务器进程。你可以在多个线程和进程之间共享SQLite数据库并且它支持事务处理、零配置以及多种数据类型。 下面我们将逐一介绍sqlite3模块中一些常用的函数和类。 connect()函数 connect()函数用于建立与SQLite数据库的连接。该函数接受一个数据库文件名作为参数并返回一个连接对象该对象可用于执行SQL命令和操作数据库。如果指定的数据库文件不存在connect()函数将创建一个新的数据库文件。
import sqlite3# 连接到数据库文件
conn sqlite3.connect(test.db) close()函数 close()函数用于关闭数据库连接。一旦完成了与数据库的交互使用close()函数是一个推荐的做法因为它可以释放资源并确保连接被正确关闭。
import sqlite3# 连接到数据库文件
conn sqlite3.connect(test.db)# 关闭数据库连接
conn.close() cursor()函数 cursor()函数用于创建一个游标对象以执行SQL命令和处理结果。
import sqlite3# 连接到数据库文件
conn sqlite3.connect(test.db)# 创建游标对象
cursor conn.cursor()# 关闭游标
cursor.close()# 关闭数据库连接
conn.close() execute()函数 execute()函数是游标对象Cursor的一个方法用于执行SQL命令。使用execute()函数可以执行各种SQL命令比如SELECT、INSERT、UPDATE、DELETE等。注意execute()函数只是执行SQL命令并不会自动提交更改。
import sqlite3# 连接到数据库文件
conn sqlite3.connect(test.db)# 创建游标对象
cursor conn.cursor()# 执行SQL命令
cursor.execute(CREATE TABLE IF NOT EXISTS users(id INTEGER PRIMARY KEY, name TEXT))# 关闭游标
cursor.close()# 关闭数据库连接
conn.close() executemany()函数 executemany()函数是游标对象Cursor的一个方法用于执行相同的SQL命令多次每次使用来自序列的不同参数。使用executemany()函数可以在一次数据库交互中执行多次插入、更新或删除操作这通常比重复执行execute()函数更有效。
import sqlite3# 连接到数据库文件
conn sqlite3.connect(test.db)# 创建游标对象
cursor conn.cursor()# 执行SQL命令多次
users [(Jack,), (Tom,), (Mike,)]
cursor.executemany(INSERT INTO users (name) VALUES (?), users)# 关闭游标
cursor.close()# 关闭数据库连接
conn.close() commit()函数 commit()函数是数据库连接对象Connection的一个方法用于提交事务。在SQLite中事务是一组数据库操作要么全部成功执行要么全部回滚撤销。当我们在SQLite中执行多个操作时可以使用事务来确保数据的一致性。 使用commit()函数可以提交之前执行的所有数据库操作。一旦调用了commit()函数所有未提交的更改都会被保存到数据库中。如果在调用commit()函数之前发生了错误可以选择回滚事务以撤销所有更改。
import sqlite3# 连接到数据库文件
conn sqlite3.connect(test.db)# 创建游标对象
cursor conn.cursor()# 执行一些数据库操作
cursor.execute(CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT))
cursor.execute(INSERT INTO users (name) VALUES (Jack))
cursor.execute(INSERT INTO users (name) VALUES (Tom))# 提交更改
conn.commit()# 关闭游标
cursor.close()# 关闭数据库连接
conn.close() fetchall()函数 fetchall()函数是游标对象Cursor的一个方法用于获取查询结果集中的所有行。使用该函数可以一次性获取查询结果集中的所有行并以列表的形式返回。每行数据表示为一个元组或列表其中包含了该行的各个列的值。 注意如果查询结果集非常大使用fetchall()函数可能会消耗较多的内存。在这种情况下可以考虑使用 fetchone()或fetchmany()函数来分批获取查询结果。
import sqlite3# 连接到数据库文件
conn sqlite3.connect(test.db)# 创建游标对象
cursor conn.cursor()# 执行查询
cursor.execute(SELECT * FROM users)# 获取查询结果集中的所有行
rows cursor.fetchall()# 输出查询结果
for row in rows:print(row)# 关闭游标
cursor.close()# 关闭数据库连接
conn.close() fetchone()函数 fetchone()函数是游标对象Cursor的一个方法用于获取查询结果集中的下一行。使用该函数可以逐行获取查询结果集中的数据。每次调用fetchone()函数它会返回结果集中的下一行数据。当没有更多的行可用时它将返回None。
import sqlite3# 连接到数据库文件
conn sqlite3.connect(test.db)# 创建游标对象
cursor conn.cursor()# 执行查询
cursor.execute(SELECT * FROM users)# 获取查询结果集中的下一行数据
row cursor.fetchone()# 输出查询结果
while row:print(row)row cursor.fetchone()# 关闭游标
cursor.close()# 关闭数据库连接
conn.close() fetchmany()函数 fetchmany(size)函数是游标对象Cursor的一个方法用于获取查询结果集中的多行数据最多获取size行。注意每次调用 fetchmany()都会从上次获取数据的地方开始继续获取也就是说如果先调用了fetchmany(5)然后再调用 fetchmany(5)那么第二次调用将返回查询结果的第6-10行。如果想要重新从头开始获取数据需要先调用 cursor.scroll(0, modeabsolute) 来重置游标位置。
import sqlite3# 连接到数据库文件
conn sqlite3.connect(test.db)# 创建游标对象
cursor conn.cursor()# 执行查询
cursor.execute(SELECT * FROM users)# 最多获取5行数据
rows cursor.fetchmany(5)# 输出查询结果
for row in rows:print(row)# 关闭游标
cursor.close()# 关闭数据库连接
conn.close()