文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

24 Python的sqlite3模块

2023-10-08 07:02

关注

概述

        在上一节,我们介绍了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, mode='absolute') 来重置游标位置。

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()

来源地址:https://blog.csdn.net/hope_wisdom/article/details/133618350

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯