python sqlite3 工具函数

起因, 目的:

sqlite3 最常用的函数。
比如,某人给了一个 database.db 文件。 但是你登录的时候,不知道账号密码。
此文件就是,查看这个数据库的详细内容。

  1. 有哪些表
  2. 某个表的全部内容。
  3. 添加数据
代码, 见注释
import os
import time
import sqlite3# sqlite3。添加。保存。
class DB:def __init__(self, db_name=None, table_name=None):# 如果不提供数据库名称,则自动创建一个。dt = time.strftime("%Y-%m-%d_%H_%M_%S", time.localtime())if not db_name:self.db_name = f"temp_db_{dt}.db"else:self.db_name = db_nameif not table_name:self.table_name = f"temp_table_{dt}"else:self.table_name = table_name# 查看全部的 tabledef get_tables(self):con = sqlite3.connect(self.db_name)c = con.cursor()sql = """SELECT name FROM sqlite_master WHERE type='table';"""c.execute(sql)tables = list(map(lambda i: i[0], c.fetchall()))print("All tables: ", tables)con.close()return tables# 查看某个 table 的全部列名def get_columns(self, tb_name=None):if not tb_name:tb_name = self.table_namecon = sqlite3.connect(self.db_name)c = con.cursor()sql = f"SELECT * FROM {tb_name}"data = c.execute(sql)cols = list(map(lambda i: i[0], data.description))print("All columns: ", cols)con.close()return colsdef add_many(self):con = sqlite3.connect(self.db_name)c = con.cursor()# 表头. 只能创建一次。cols = self.get_columns()if len(cols) == 0:# cols = ("比赛名", "球队名", "比赛时间", "进球数", "红牌")c.execute(f'''CREATE TABLE {self.table_name}(game_name text, team_name text, date_time text, score text, price red_card)''')# 插入数据。  插入大量的数据。purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00),('2006-04-05', 'BUY', 'MSFT', 1000, 72.00),('2006-04-06', 'SELL', 'A', 500, 53.00),('2006-04-06', 'EEE', 'V', 5412, 53.00),('2006-04-06', 'QQ', 'TT', 500, 53.00),]c.executemany('INSERT INTO fake_data VALUES (?,?,?,?,?)', purchases)con.commit()con.close()def show_table(self, tb_name=None):if not tb_name:tb_name = self.table_namecon = sqlite3.connect(self.db_name)c = con.cursor()c.execute(f'SELECT * FROM {tb_name}')print("All data: ", c.fetchall())  # 查询全部的数据。info = c.fetchall()c.close()return infoif __name__ == '__main__':x = DB(db_name="gc3.db")tbs = x.get_tables()# x.get_columns()# x.show_table()# print()# x.add_many()# x.show_table()

结论 + todo

简单,但是常用,写篇文章,方便自己下次查看。


老哥留步,支持一下。

请求支持

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

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

相关文章

《数字图像处理基础》学习01-数字图像处理的相关基础知识

这篇文章只是对数字图像处理的相关基础知识有个大概的了解,之后的文章会接着补充和扩展。 目录 一,图像的基本概念 1,图像 2,图像的分类 1)物理图像 2)虚拟图像 二,数字图像处理 三&…

PostGIS--介绍

目录 1、什么是PostGIS?2、数据2.1 对象2.1.1 读取几何元数据信息函数2.1.2 处理点的函数2.1.3 处理线的函数2.1.4 处理面的函数2.1.5 集合 2.2 集合输入和输出2.3 shapefile文件 总结PS: 1、什么是PostGIS? PostGIS通过增加对空间类型、空间索引和空间…

【MaskGAN】MaskGAN: Towards Diverse and Interactive Facial Image Manipulation

文章目录 MaskGAN: Towards Diverse and Interactive Facial Image Manipulationkey points贡献方法密集映射网络DMN编辑行为模拟训练多目标学习CelebAMask-HQ数据集实验消融实验总结MaskGAN: Towards Diverse and Interactive Facial Image Manipulation 会议/期刊:CVPR 202…

实现mnist手写数字识别

基础知识 tensorflow TensorFlow是一个开源的机器学习框架,致力于各种数据流图的自动微分和深度神经网络的计算。简而言之,** TensorFlow帮助我们轻松地构建、训练和部署机器学习模型** 。它可以在各种平台上运行,包括桌面计算机、服务器…

Dyna-slam复现(保姆级详细图文版,百分百成功)

因最近论文要和这些算法做对比,故配置了一下,在此记录 因为是老的算法,cuda版本现在的显卡都不能使用,所以笔者找的电脑是华硕飞行堡垒17年的电脑,1080的显卡 深度学习及maskrcnn配置 先将dyna-slam git下来,终端执行 git clone https://github.com/BertaBescos/Dyna…

数据结构之红黑树实现(全)

一、红黑树 红黑树是一种自平衡的二叉搜索树,它通过约束节点的颜色和结构来保持平衡。红黑树是由 Rudolf Bayer 在1972年发明的,被认为是一种优秀的平衡树结构,广泛应用于各种数据结构和算法中。 1.红黑树的性质 1. 每个结点是红的或者黑的…

PhotoMaker部署文档

一、介绍 PhotoMaker:一种高效的、个性化的文本转图像生成方法,能通过堆叠 ID 嵌入自定义逼真的人类照片。相当于把一张人的照片特征提取出来,然后可以生成你想要的不同风格照片,如写真等等。 主要特点: 在几秒钟内…

前端工程化 - Vue

环境准备 Vue-cli是Vue官方提供的一个脚手架,用户快速生成一个Vue的项目模板。 Vue-cli提供了如下功能: 统一的目录结构本地调试热部署单元测试集成打包上线 需要安装Node.js 安装Vue-cli npm install -g vue/cli通过vue --version指令查看是否安装成…

常见排序详解(历时四天,哭了,必须释放一下)

目录 1、插入排序 1.1 基本思想 1.2 直接插入排序 1.2.1 思路 1.2.2 代码实现 1.2.3 性质 1.3 希尔排序 1.3.1 思路 1.3.2 代码实践 1.3.3 性质 2、选择排序 2.1 基本思想 2.2 直接选择排序 2.2.1 思路 2.2.2 代码实践 2.2.3 性质 2.3 堆排序 2.3.1 思路 2.…

108页PPT丨OGSM战略规划框架:实现企业目标的系统化方法论

OGSM战略规划框架是一种实现企业目标的系统化方法论,它通过将组织的目标(Objectives)、目标(Goals)、策略(Strategies)和衡量指标(Measures)进行系统化整合,确…

windows下DockerDesktop命令行方式指定目录安装

windows下DockerDesktop指定目录安装(重新安装) 因为DcokerDesktop占用内存较大, 并且拉去镜像后占用本地空间较多,所以建议安装时就更改默认安装路径和镜像存储路径 这里,展示了从下载到安装的过程: 首先下载DcokerDesktop;找到Docker Desktop Installer.exe 并重命名为 do…

国内超声波清洗机哪个品牌好?力荐四款超耐用超声波清洗机!

超声波清洗机作为一款高效实用的家庭与专业清洁利器,能够迅速且彻底地清洁多样化的物件。面对市场上琳琅满目的品牌与型号,每一款都各具特色与优势,故在决定购买前做足调研显得尤为重要,以免购入不尽如人意的产品,造成…

力扣110:判断二叉树是否为平衡二叉树

利用二叉树遍历的思想编写一个判断二叉树,是否为平衡二叉树 示例 : 输入:root [3,9,20,null,null,15,7] 输出:true思想: 代码: int getDepth(struct TreeNode* node) {//如果结点不存在,返回…

打造自己的RAG解析大模型:Windows部署OCR服务(可商业应用)

在上一篇文章中,我们介绍了如何在 Windows 环境中配置 OCR 相关模型,并完成了模型验证。本篇文章将基于之前的内容,进一步讲解如何将文本检测、方向分类和文本识别模型进行串联,最终搭建一个基础的 OCR 应用服务。通过这些模型的串…

【Diffusion分割】CTS:基于一致性的医学图像分割模型

CTS: A Consistency-Based Medical Image Segmentation Model 摘要: 在医学图像分割任务中,扩散模型已显示出巨大的潜力。然而,主流的扩散模型存在采样次数多、预测结果慢等缺点。最近,作为独立生成网络的一致性模型解决了这一问…

回调函数是什么

回调函数是什么 回调函数就是⼀个通过函数指针调⽤的函数。 如果你把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被⽤来调⽤其所指向的函数时,被调⽤的函数就是回调函数。 回调函数不是由该函数的实现⽅直接调⽤&…

Linux驱动开发(速记版)--GPIO子系统

第105章 GPIO 入门 105.1 GPIO 引脚分布 RK3568 有 5 组 GPIO:GPIO0 到 GPIO4。 每组 GPIO 又以 A0 到 A7,B0 到 B7,C0 到C7,D0 到 D7,作为区分的编号。 所以 RK3568 上的 GPIO 是不是应该有 5*4*8160 个呢&#xff1…

Semantic Communication Meets Edge Intelligence——构造终端共享的知识图谱指导无线物联网通信中文本的传输

论文链接: IEEE Xplore Full-Text PDF:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp&arnumber9979702 1. 背景 随着自动驾驶、智能城市等应用的发展,移动数据流量将大幅增加。传统的香农信息论(CIT)通信系统已接近其带…

SpringBoot MyBatis连接数据库设置了encoding=utf-8还是不能用中文来查询

properties的MySQL连接时已经指定了字符编码格式&#xff1a; url: jdbc:mysql://localhost:3306/sky_take_out?useUnicodetrue&characterEncodingutf-8使用MyBatis查询&#xff0c;带有中文参数&#xff0c;查询出的内容为空。 执行的语句为&#xff1a; <select id&…

decltype推导规则

decltype推导规则 当用decltype(e)来获取类型时&#xff0c;编译器将依序判断以下四规则&#xff1a; 1.如果e是一个没有带括号的标记符表达式(id-expression)或者类成员访问表达式&#xff0c;那么decltype(e)就是e所命名的实体的类型。此外&#xff0c;如果e是一个被重载的函…