Python脚本集成SQLite3数据库

news2024/7/4 6:35:00

文章目录

  • 一、Sqlite3数据库的基本使用
    • 1.数据库是什么
    • 2.数据库分类
  • 二、正式开始使用SQLite3(Python)
    • 1.基础sql命令
    • 2.Python连接SQLite3
      • ①查询
      • ②增加
      • ③更新

一、Sqlite3数据库的基本使用

1.数据库是什么

借用百科上的话,数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 人话来说就是很多个数据存储在一个文件里

2.数据库分类

  • 非关系型数据库:例如,以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对, 这样就不会局限于固定的结构,可以减少一些时间和空间的开销。例如主流非关系型数据库有:mongodb、cassandra、redis、hbase、neo4j

  • 关系型数据库:存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格比较相似,关系型数据库中表与表之间是有很多复杂的关联关系的。 人话来说就是像表格一样每个表和数据都有关系,例如MySQL还有本教程教的sqlite。以及其余主流关系型数据库,Oracle 、DB2、 MySQL 、 Microsoft SQL Server 、 Microsoft Access、PostgreSQL

举个栗子,比如我向非关系型数据库存储了一个对象,他的字段分别为,name,grade,并给了他一个对象a,这时我又存储进了一个对象b,有old这个字段,这时 数据库里就有了a,b两个对象来分别访问。

请添加图片描述

而在关系型数据库中,首先我们需要创建一张表,表就是多个相同对象的集合,创建一个表a,分别有name,old两个字段,而想要向表a存储对象,需要实例化所 有表a所有的字段,才能存储。

请添加图片描述

二、正式开始使用SQLite3(Python)

1.基础sql命令

以下几句SQL命令在关系型数据库中基本通用:

  • insert语句:向一个表中添加行,格式:insert into TABLE values (VALUE1,VALUE2,VALUE3,…VALUEN); (如果表中有这个主键会报错哦,下面会教条件语句来防止)

  • select语句:在控制台中输出这个表中的所有行以及他的字段,格式:select * from TABLE_NAME;

  • drop语句:删除表的一个语句,格式:drop table TABLE_NAME;

  • create语句:创建表的语句,格式:create table TABLE_NAME(TYPE_1 NAME_1,TYPE 2 NAME_2…);

  • where语句:寻找一个表中符合条件的一项,例如我们要找一个主键ID为3的可以这么写select * from TABLE_NAME where ID=3; (注意sqlite中的等于是一个等于号)

  • delete语句:删除表中的一项,这时就可以用到where语句了,例如找到ID为3之后我们要删除它,可以这么写delete from TABLE_NAME where ID-3;

在SQLite3中我们不用熟悉过于复杂的查询语句,一般会使用简单查询、数据插入、数据删除、数据更新即可,因为SQLite3存储的数据量有限。

2.Python连接SQLite3

①查询

以下一段代码是操作SQLite3数据库的一段代码(作用体现在了sql语句中)。
select stoken,PHPSESSID,QQ from healthydaily where status=1
查询status=1的所有用户的 stoken,PHPSESSID,QQ,并以列表的形式返回出去。

import sqlite3

def get_cookies():
    # 如果文件不存在,会在当前目录创建:dayReport.db就是你的数据库名
    conn = sqlite3.connect('dayReport.db')
    # 创建一个Cursor:
    cursor = conn.cursor()
    # 保活请求, status 为 1
    sql = "select stoken,PHPSESSID,QQ from healthydaily where status=1"
    # 继续执行一条SQL语句,插入一条记录:
    cursor.execute(sql)
    date_list = cursor.fetchall()
    # 关闭Cursor:
    cursor.close()
    # 提交事务:
    conn.commit()
    # 关闭Connection:
    conn.close()
    # 返回 查询到的 信息
    return date_list

②增加

""" 本函数的作用是:通过sqlite3将用户cookie信息于qq号存储起来"""
def saveCookies(Cookies, QQ):
    """ Cookies 为字典,可为 Qrcheck 的范围值"""
    # 如果文件不存在,会在当前目录创建:
    conn = sqlite3.connect('dayReport.db')
    # 创建一个Cursor:
    cursor = conn.cursor()
    # 执行插入操作
    sql = 'insert into healthydaily values( "{}", 0, "{}","{}", 0);'.format(QQ,Cookies["stoken"],Cookies["PHPSESSID"])
    cursor.execute(sql)
    # 关闭Cursor:
    cursor.close()
    # 提交事务:
    conn.commit()
    # 关闭Connection:
    conn.close()

③更新

""" 本函数的作用是:通过sqlite3将用户cookie信息于qq号存储起来"""
def updateCookies(Cookies, QQ):
    """ Cookies 为字典,可为 Qrcheck 的范围值"""
    # 如果文件不存在,会在当前目录创建:
    conn = sqlite3.connect('dayReport.db')
    # 创建一个Cursor:
    cursor = conn.cursor()
    # 执行插入操作
    pprint(Cookies)
    cursor.execute(f'''update healthydaily set stoken='{Cookies["stoken"]}',PHPSESSID='{Cookies["PHPSESSID"]}' where QQ='{QQ}';''')
    # 关闭Cursor:
    cursor.close()
    # 提交事务:
    conn.commit()
    # 关闭Connection:
    conn.close()

每一种操作基本上都一样,主要的区别就是SQL语句的使用。相信到了这里大家也就明白了在Python中如何使用SQLite3。如果有疑问或者好的想法欢迎评论区留言或者私信博主。

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

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

相关文章

yolo v8 解决了 v5 的问题嘛?

文章大纲 yolo v8 简介网络结构yolo v8 准确率的提升yolo v8 的速度提升参考文献与学习路径yolo v8 简介 官网: https://ultralytics.com/yolov8https://github.com/triple-Mu/YOLOv8-TensorRT详细介绍: https://learnopencv.com/ultralytics-yolov8/网络结构 yolo v8 准确率…

I.MX6ULL裸机开发笔记3:SDK烧录镜像

目录 一、获取NXP官方SDK 二、Linux安装SDK 三、SDK中相关工具 四、烧录工具 一、获取NXP官方SDK 官方网站MCIMX6ULL-EVK_i.MX6ULL评估套件_NXP 半导体 二、Linux安装SDK ./XXX.run 这里如果提示sudo ./XXX.run 找不到命令,就可以用ls -l查看当前文件夹文件的…

VVDocumenter-Xcode github README.md 中英文翻译

最近在学习 Xcode 的使用,查到有一款用于生成注释文档的插件:VVDocumenter-Xcode 进入其 github 页面之后看 README,看到两句话: 1. Goodbye World: 再不更新了? 2. 从 Xcode 8 之后Apple官方提供了插件做…

Python爬虫---爬虫介绍,实战案例

目录标题1、爬虫介绍1.1 爬虫的合法性1.2 网络爬虫的尺寸1.3 robots.txt协议1.4 http&https协议1.5 requests模块1.5.1 request库的异常2、实战案例2.1 百度页面2.2 爬取京东商品页面2.3 爬取亚马逊商品页面-更改headers2.4 百度/360搜索关键词提交-params2.5 网络图片的爬…

Nacos 报Statement cancelled due to timeout or client request

1. 问题:nacos 启动报错,启动失败,全部报错下面贴出。 2. 结论:排查结果为服务器带宽不够,mysql 查询的数量量太大,传输时间损坏在网络io上! 3. 下面开始回溯事故起因: 前期config…

2022年一年级入学小结

2022年即将过去,在这里,简单回顾一下Richard同学进入小学一学期后的成长经历和小结。先说说学校生活Richard很喜欢目前的学校,喜爱给他授课的每一位老师,也和老师和同学们相处得不错,自诩自己现在的”粉丝“蛮多。从我…

C++设计模式(6)——适配器模式

亦称: 封装器模式、Wrapper、Adapter 意图 适配器模式是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作。 问题 假如你正在开发一款股票市场监测程序, 它会从不同来源下载 XML 格式的股票数据, 然后向用户呈现出美…

9.框架SpringMVC

一、基本概念 Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet。Spring MVC 使用 MVC 架构模式的思想,将 Web 应用进行职责解构,把一个复杂的 Web 应用划分成模型(Model&#xff09…

HashMap的使用:put、remove和get方法原理

关联项目需求进行FeatureAB上报的时候,我们使用HashSet的add方法存key值,如果key已存在,则add失败,返回false,如果key不存在,add成功,返回true。看源码中HashSet的add(E e)方法实现:…

【Git】IDEA 集成 GitHub

8、IDEA 集成 GitHub 8.1、设置 GitHub 账号 如果出现 401 等情况连接不上的,是因为网络原因,可以使用以下方式连接: 然后去 GitHub 账户上设置 token。 点击生成 token。 复制红框中的字符串到 idea 中。 点击登录。 8.2、分享工程到 GitHu…

【甄选靶场】Vulnhub百个项目渗透——项目五十五:SP-LEOPOLD v1.2(beef联动msf,脏牛提权)

Vulnhub百个项目渗透 Vulnhub百个项目渗透——项目五十五:SP-LEOPOLD v1.2(beef联动msf,脏牛提权) 🔥系列专栏:Vulnhub百个项目渗透 🎉欢迎关注🔎点赞👍收藏⭐️留言&am…

ZooKeeper-集群搭建

5)ZooKeeper 集群搭建 5.1)Zookeeper集群介绍 Leader选举: •Serverid:服务器ID 比如有三台服务器,编号分别是1,2,3。 编号越大在选择算法中的权重越大。 •Zxid:数据ID 服务器中存放的最大数据ID.值越大说明数据 越新&…

剑指offer—day1.用两个栈实现队列、包含min函数的栈

1.用两个栈实现队列 本题来源:力扣 剑指 Offer 09. 用两个栈实现队列 - 力扣(LeetCode)https://leetcode.cn/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/题目描述 用两个栈实现一个队列。队列的声明如下,请实现它的两…

IP-guard如何映射到外网登录访问管理

终端安全管理(endpoint security management)是一种保护网络安全的策略式方法,它需要终端设备在得到访问网络资源的许可之前遵从特定的标准。随着企业信息化发展,终端安全管理系统需求不断扩大,相关系统软件被广泛应用。 IPguard即IP-guard&a…

线段树(重要!多加理解懒惰标记!)

基础概念: 线段(区间)[L,R] 所对应的线段树是由区间 [L,R] 及其子区间构成的二叉树(如下图所示) 线段树具有的特性: (1)线段树的叶结点为只有一个元素的区间,因此长度为…

最新版海豚调度dolphinscheduler-3.1.3安装部署详细教程

0 背景 本文基于Ambari集群搭建最新版本的海豚调度dolphinscheduler-3.1.3版本,后续会尝试整合到Ambari中。 1 安装准备 安装dolphinscheduler需要在环境中安装如下依赖 ① JDK8 下载JDK (1.8),安装并配置 JAVA_HOME 环境变量,并将其下的 …

用 22 张照片打开 23 年

魔幻又带有现实主义色彩的三年似乎终将见底。这也为 2023 年赋予了一些新的意义,或许是充满生机、怀揣希望、满怀爱意,或许是重新启航、步履不停、勇敢探索……为此,我们收集了 22 位社区用户和公司小伙伴在过去一年的「特别 Moment」及新年愿…

你认为DAO是否可行?新年计划,卯足干劲,兔必No.1

文章目录🌟 课前小差🌟 聚沙成塔🌟 社会价值🌟 DAO是什么🌟 国产化🌟 商业化回报🌟 写在最后🌟 课前小差 哈喽,大家好,我是几何心凉,这是一份全新…

Spring高级之BeanFactory功能

首先,我们想要知道一个接口有哪些功能,就必须要看这个接口的源代码,在idea中,选中这个接口CtrlF12,来查看这个接口里面有哪些方法: 表面上来看,功能其实很少,查看源码及其方法功能 …

来吧,Jenkins+git+mvn+shell一键部署实践起来

环境:centosJenkins-2.319系统自带gitmvn3.8.7jdk1.8一、安装jdk1、https://blog.csdn.net/codedz/article/details/124044974centos自带了openjdk,我是选择自己重新搞一个,用的上面链接地址的yum安装方式2、安装完成查看版本查看java安装路径…