Python读取sqlite3数据库中的数据

news2024/12/23 19:17:30

文章目录

    • 1. 简介
    • 1.1. 使用
      • 1.1.1. 创建
      • 1.1.2. 插入
        • 1.1.2.1. 插入一条数据
      • 1.1.3. 查询
        • 1.1.3.1. 查询所有数据
        • 查询一条数据
        • 1.1.3.2. 读取特定位置的数据
      • 1.1.4. 修改数据
      • 1.1.5. 删除数据

1. 简介

  • 从Python3.x版本开始,在标准库中已经内置了SQLlite3模块,它可以支持SQLite3数据库的访问和相关的数据库操作。在需要操作SQLite3数据库数据时,只须在程序中导入SQLite3模块即可。

1.1. 使用

1.1.1. 创建

代码

#导入sqllite3模块 
import sqlite3 
# 1.硬盘上创建连接 
con = sqlite3.connect('first.db') 
# 获取cursor对象 
cur = con.cursor() 
# 执行sql创建表 
sql = 'create table t_person(pno INTEGER PRIMARY KEY  AUTOINCREMENT ,pname varchar(30) NOT NULL ,age INTEGER)' 
try: 
    cur.execute(sql) 
except Exception as e: 
    print(e) 
    print('创建表失败') 
finally: 
    # 关闭游标 
    cur.close() 
    # 关闭连接 
    con.close()

1.1.2. 插入

1.1.2.1. 插入一条数据

#导入sqllite3模块 
import sqlite3 
# 1.硬盘上创建连接 
con = sqlite3.connect('first.db') 
# 获取cursor对象 
cur = con.cursor() 
# 执行sql创建表 
sql = 'insert into t_person(pname,age) values(?,?)' 
try: 
    cur.execute(sql,('张三',23)) 
    #提交事务 
    con.commit() 
    print('插入成功') 
except Exception as e: 
    print(e) 
    print('插入失败') 
    con.rollback() 
finally: 
    # 关闭游标 
    cur.close() 
    # 关闭连接 
    con.close()

1.1.3. 查询

1.1.3.1. 查询所有数据

  • fetchall()查询所有数据
#导入sqllite3模块 
import sqlite3 
# 1.硬盘上创建连接 
con = sqlite3.connect('first.db') 
# 获取cursor对象 
cur = con.cursor() 
# 执行sql创建表 
sql = 'select * from t_person' 
try: 
    cur.execute(sql) 
    # 获取所有数据 
    person_all = cur.fetchall() 
    # print(person_all) 
    # 遍历 
    for p in person_all: 
        print(p) 
except Exception as e: 
    print(e) 
    print('查询失败') 
finally: 
    # 关闭游标 
    cur.close() 
    # 关闭连接 
    con.close()
  • 查询一条数据

  • fetchone()查询一条数据

  • 按顺序进行读取

#导入sqllite3模块 
import sqlite3 
 
# 1.硬盘上创建连接 
con = sqlite3.connect('first.db') 
# 获取cursor对象 
cur = con.cursor() 
# 执行sql创建表 
sql = 'select * from t_person' 
try: 
    cur.execute(sql) 
    # 获取一条数据 
    person = cur.fetchone() 
    print(person) 
 
    person = cur.fetchone() 
    print(person) 
 
    person = cur.fetchone() 
    print(person) 
 
    person = cur.fetchone() 
    print(person) 
 
except Exception as e: 
    print(e) 
    print('查询失败') 
finally: 
    # 关闭游标 
    cur.close() 
    # 关闭连接 
    con.close()

1.1.3.2. 读取特定位置的数据

  • 需要把读取的信息放到sql语句中
    获得最新一条数据
  • 代码
def sqlite3_get_last_data(db_path,sql): 
    # 导入sqllite3模块 
    import sqlite3 
    # 1.硬盘上创建连接 
    con = sqlite3.connect(db_path) 
    # 获取cursor对象 
    cur = con.cursor() 
    # 执行sql创建表 
 
    try: 
        cur.execute(sql) 
        # 获取所有数据 
 
        person_all = cur.fetchall() 
        last_data = person_all[-1] 
        # print(last_data) 
        # print("type(last_data):", type(last_data)) 
        # print("last_data:", ) 
        last_text = last_data[6] 
        return last_text 
    except Exception as e: 
        print(e) 
        print('查询失败') 
    finally: 
        # 关闭游标 
        cur.close() 
        # 关闭连接 
        con.close() 
 
db_path = 'D:\MailMasterData\hengzhe19711121@163.com_1414\search.db' 
sql = 'select * from Search_content' 
last_text = sqlite3_get_last_data(db_path,sql) 
print("last_text:", last_text)

1.1.4. 修改数据

代码

#导入sqllite3模块 
import sqlite3 
#1.硬盘上创建连接 
con=sqlite3.connect('first.db') 
#获取cursor对象 
cur=con.cursor() 
try: 
    #执行sql创建表 
    update_sql = 'update t_person set pname=? where pno=?' 
    cur.execute(update_sql, ('小明', 1)) 
    #提交事务 
    con.commit() 
    print('修改成功') 
except Exception as e: 
    print(e) 
    print('修改失败') 
    con.rollback() 
finally: 
    # 关闭游标 
    cur.close() 
    # 关闭连接 
    con.close()

1.1.5. 删除数据

代码

#导入sqllite3模块 
import sqlite3 
#1.硬盘上创建连接 
con=sqlite3.connect('first.db') 
#获取cursor对象 
cur=con.cursor() 
#执行sql创建表 
delete_sql = 'delete from t_person where pno=?' 
try: 
    cur.execute(delete_sql, (2,)) 
    #提交事务 
    con.commit() 
    print('删除成功') 
except Exception as e: 
    print(e) 
    print('删除失败') 
    con.rollback() 
finally: 
    # 关闭游标 
    cur.close() 
    # 关闭连接 
    con.close()

:
cur.execute(delete_sql, (2,))
#提交事务
con.commit()
print(‘删除成功’)
except Exception as e:
print(e)
print(‘删除失败’)
con.rollback()
finally:
# 关闭游标
cur.close()
# 关闭连接
con.close()


 - ![](https://img-blog.csdnimg.cn/img_convert/7fb8efddb56baf993b17041d70b8e908.png)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/124365.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis中的哨兵机制

有了主从复制的实现以后,我们如果想对主从服务器进行监控,那么在redis2.6以后提供了一个 “哨兵” 的机制,在2.6版本中的哨兵为1.0版本,并不稳定,会出现各种各样的向题,在2.8以后的版本哨兵功能才稳定起来。 顾名思义,哨兵的含义就是监控Redis系统的运行状况。其主要功…

STM32/51单片机实训day6——Proteus8.6版本+ STM32F103驱动LCD12864显示Keil5程序设计

内 容:实现LCD显示 学 时:4学时 知识点:LCD12864芯片介绍,读写操作时序,电路设计 重点: 读写操作时序 难点:读写操作时序 时间:2022年12月26日 9:00~11:50 总结&…

全国产龙芯2K0500多功能SoC处理器及其解决方案

龙芯2K0500片内集成单个64位龙架构(LoongArch)LA264处理器核、32KB一级指令缓存、32KB一级数据缓存、512KB二级缓存、32位DDR2/3-1066控制器、2DGPU图形核心、DVO显示接口、两路PCIe2.0、两路SATA2.0、四路USB2.0、一路USB3.0、两路GMAC、PCI总线、彩色黑白打印接口、HDA及其他…

有备无患!DBS高性价比方案助力富途证券备份上云

“某中心受病毒攻击,导致服务中断,线上业务被迫暂停” “某公司员工误操作删库,核心业务数据部分丢失,无法完全找回” “由于服务器断线,某医院信息系统瘫痪近4小时,期间病人无法使用医保卡挂号和结算” …

Talk预告 | 微软高级研究员杨征元:统一的视觉语言模型

本期为TechBeat人工智能社区第467期线上Talk! 北京时间12月29日(周四)20:00,微软高级研究员——杨征元的Talk将准时在TechBeat人工智能社区开播! 他与大家分享的主题是: “统一的视觉语言模型”,届时将从一个统一的角度概述视觉语…

深度循环神经网络

在深度循环神经网络中,隐状态的信息被传递到当前层的下一时间步和下一层的当前时间步。 有许多不同风格的深度循环神经网络, 如长短期记忆网络、门控循环单元、或经典循环神经网络。 这些模型在深度学习框架的高级API中都有涵盖。 总体而言&#xff0c…

第三方库react-redux基础使用 容器UI组件使用 数据管理优化

其实redux并不是React特有的技术 redux是一家独立公司 做出来 适配与目前几大前端主流框架的状态管理工具。 其实 最初 redux也希望码友们用它来管理vue的状态数据 但后面 React官方发现 很多人喜欢在React项目中使用redux 于是 React公司专门做了react-redux这个第三方的库 帮…

【计组】数据通路和流水线设计--《深入浅出计算机组成原理》(三)

课程链接:深入浅出计算机组成原理_组成原理_计算机基础-极客时间 目录 一、建立数据通路 (一)组合逻辑电路 1、指令周期 2、数据通路 3、CPU所需硬件电路 (二)时序逻辑电路 1、时序逻辑电路可以解决的问题 二…

Python爬虫进行正则数据解析实战

今天继续给大家介绍Python爬虫相关知识,本文主要内容是Python爬虫进行正则数据解析实战。 一、需求分析 今天,我们尝试使用re正则表达式来对爬取到的页面进行数据解析。需求如下: 针对网页:https://blog.csdn.net/weixin_402282…

第三十二章 数论——组合数详解(1)

第三十二章 数论——组合数的多种求法一、数学基础二、组合数——递推公式1、题目2、思路3、代码三、组合数——快速幂1、问题:2、分析一、数学基础 组合数来自于高中排列组合的知识: 我们从aaa个小球中随机一次性取出bbb个,所有的取法记作…

Numpy学习记录

numpy.ma.ravel 返回一个连续的扁平数组。 参考: numpy中的ravel()方法使用介绍https://blog.csdn.net/weixin_44025103/article/details/125062287 Python numpy.ravel函数方法的使用https://www.cjavapy.com/article/870/ numpy.meshgrid 二维坐标系中,X轴…

图片如何批量重命名?一步一步教会你

爱拍照的小伙伴应该都知道,无论是手机还是相机拍出来的照片,导入电脑后,它的默认名称都是一串长长的字符。不仅让桌面看起来杂乱无章,还会给我们在查找图片时带来诸多的不便。其实我们可以通过软件对这些图片进行批量重命名的&…

线性代数基础----矩阵

秩的理解: 举证的秩的理解: 特征值和特征向量 线性相关和线性无关 向量的拉伸和旋转: 特征值和特征向量: 特征值: 特征向量: 用来描述矩阵的信息 特征向量 和 特征值之间的关系 拳击:方向和力量 特征值和特征向量的物理意义: 表示相关的重要性 特征值和特征向量:进行提…

阳了在家没事干?教大家用python在家做一个万能看视频软件,绝对正经啦~

嗨害大家好鸭!我是小熊猫~ 我前阵子不小心阳了,该说不说,真挺难受的 我在家真的就是纸巾热水不离手, 楼下水果店老板娘还说我年轻人身体怎么这么差… 哼我阳过之后我就锻炼去!!! 效果展示 有…

如何删除掉设备和驱动器下百度网盘的图标

电脑安装百度网盘后,在设备和驱动器这里会有百度网盘的图标,如下图所示。 对有强迫症的人来说,这很难受,就一定要想办法删除掉该图标,那么具体怎么操作呢? 你如果在设备和驱动器下右击百度网盘&#xff0c…

12月小报|读小报,涨知识

本期知识小集的主要内容包括:• Flutter桥调用请注意结果反馈• Flutter await代码带来的潜在并发• Flutter FPS 高不代表一定流畅• Flutter新渲染引擎impeller尝鲜Flutter桥调用请注意结果反馈通过桥来拓展Flutter的能力,是非常通用的Flutter开发场景…

Weda创建视图表格

这边我们先创建一个数据集。 在更多操作里面分布这个数据集。 点击编辑,选择视图配置。 在下面这个界面,新建视图。 在操作里面,点击更多,发布这个视图。 我们点击编辑设置视图的第一行(表列设置)。 点击…

马上又是新的一年了 “跨年倒计时”送给大家

🏆今日学习目标: 🍀跨年倒计时 ✅创作者:林在闪闪发光 ⏰预计时间:30分钟 🎉个人主页:林在闪闪发光的个人主页 🍁林在闪闪发光的个人社区,欢迎你的加入: 林在闪闪发光的…

pytorch 深度学习

第二章 回归问题 即使是最简单的线性回归,由于观测误差的存在,也不可能找到一个满足所有样本的函数。因此,我们退而求其次,寻找到一个满足大部分样本点的直线。那么如何衡量这个呢,我们可以求出所有样本点真实值和预测值的误差,满足总误差最小的就是最好的。 连续值…

年关在即,源站安全如何保障?|ScanV(云监测)重保哨兵值守

2022年,全球重大网络安全事件频发,大规模数据泄露、漏洞利用事件、勒索软件攻击等网络犯罪威胁持续上升。网络安全形势日趋严峻,对政府、党政机关、央企国企业务安全造成严重威胁。据知道创宇云防御2022年截至目前的数据统计,平均…