当前位置: 首页 > news >正文

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.lryc.cn/news/454631.html

相关文章:

  • 顺丰Android面试题集锦及参考答案
  • uniapp中检测应用更新的两种方式-升级中心之uni-upgrade-center-app
  • Python爬虫通过 Cookie 和会话管理来维持其在网站上的会话状态
  • 使用STM32单片机实现无人机控制系统
  • 【包教包会】2D图片实现3D透视效果(支持3.x、支持原生、可合批)
  • 解决nginx+tomcat宕机完美解决方案
  • 第十一章 缓存之更新/穿透/雪崩/击穿
  • 一款完全开源并免费的监测与分析系统,支持监测,预警,分析,报告,支持本地化部署(附源码)
  • python中时间函数及其应用
  • MoveIt2-humble】入门教程----第一个 C++ MoveIt 程序
  • watch命令:周期执行指定命令
  • 【ADC】噪声(1)噪声分类
  • 网络安全概述:从认知到实践
  • Vue.js组件开发研究
  • OpenHarmony(鸿蒙南向开发)——轻量系统芯片移植案例(一)
  • 【Llamaindex RAG实践】
  • [Linux]:线程(三)
  • 云原生(四十一) | 阿里云ECS服务器介绍
  • qemu-system-aarch64开启user用户模式网络连接
  • Android车载——VehicleHal初始化(Android 11)
  • CTFshow 命令执行 web37-web40
  • 数据结构与算法篇((原/反/补)码 进制)
  • Python画笔案例-077 绘制 颜色饱和度测试
  • 简历投递经验01
  • 数据和算力共享
  • SpringBoot 集成 Ehcache 实现本地缓存
  • CSP-J 复赛真题 P9749 [CSP-J 2023] 公路
  • MeterSphere压测配置说明
  • 数据库软题6.1-关系模式-关系模式的各种键
  • ulimit:资源限制