数据库-python SQLite3
数据库-python SQLite3
- 一:sqlite3 简介
 - 二: sqlite3 流程
 - 1> demo
 - 2> sqlite3 流程
 
- 三:sqlite3 step
 - 1> create table
 - 2> insert into
 - 3> update
 - 4> select
 - 1. fetchall()
 - 2. fetchone()
 - 3. fetchmany()
 
- 5> delete
 - 6> other step
 
- 四: Mysql
 - 1> Mysql知识详解
 
一:sqlite3 简介
sqlite3 是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置。sqlite3 支持SQL语句,对数据库的操作简单高效。因此,sqlite3 非常适用于小型项目和单机应用程序,是Python开发中常用的数据库解决方案之一,能为程序提供完整的数据库解决方案.
二: sqlite3 流程
1> demo
utils_sqlite3.py
import sqlite3
import logging
logger = logging.getLogger("utils_sqlite3")def excute_sql(sql_connect, sql_cmd):sql_cursor = sql_connect.cursor()# logging.info(sql_cmd)try:sql_cursor.execute(sql_cmd)sql_connect.commit()sql_cursor.close()except Exception as e:logger.error(f"sqlite3.OperationalError: {e}")raise Exception(f"sqlite3.OperationalError: {e}")
 
create_tables.py
def init_sqlite(file_name, tabel_name, primary_key):db_connect = sqlite3.connect(file_name)if primary_key:create_table_cmd = '''CREATE TABLE {}(ENTRY TEXT,PART TEXT,PART_LAYER TEXT,CASE_NAME TEXT,API_CONNECT TEXT,API_PARAMETER TEXT,PRIMARY KEY(ENTRY, CASE_NAME))'''.format(tabel_name)else:create_table_cmd = '''CREATE TABLE {}(ENTRY TEXT,PART TEXT,PART_LAYER TEXT,CASE_NAME TEXT,API_CONNECT TEXT,API_PARAMETER TEXT,)'''.format(tabel_name)excute_sql(db_connect, create_table_cmd)db_connect.close()
init_sqlite(performence_log_file, db_table_name, primary_key)
 
2> sqlite3 流程
| step | 流程 | 
|---|---|
| 创建和连接数据库 | import sqlite3 db_connect = sqlite3.connect(file_name) | 
| 创建表格并提交 | sql_cursor = db_connect .cursor() db_connect.commit() sql_cursor.execute(create_table_cmd) | 
| 插入数据并提交 | sql_cursor.execute(insert_sql ) db_connect.commit() | 
| 关闭连接 | sql_cursor.close() db_connect.close() | 
三:sqlite3 step
1> create table
import sqlite3
db_connect = sqlite3.connect(file_name)
sql_cursor = sql_connect.cursor()
create_table_cmd = '''CREATE TABLE {}(ENTRY TEXT,PART TEXT,PART_LAYER TEXT,CASE_NAME TEXT,API_CONNECT TEXT,API_PARAMETER TEXT,PRIMARY KEY(ENTRY, CASE_NAME))'''.format(tabel_name)
sql_cursor.execute(create_table_cmd)
sql_connect.commit()sql_cursor.close()
 
2> insert into
import sqlite3
db_connect = sqlite3.connect(file_name)
sql_cursor = sql_connect.cursor()
insert_sql = '''INSERT INTO {}     		   	(ENTRY,PART,PART_LAYER,CASE_NAME,API_CONNECT,API_PARAMETER)VALUES ('{}', '{}', '{}', '{}', '{}', '{}')'''.format(db_table_name, args.entry,  args.part, args.part_layer, args.case, connect_res, "NULL")
sql_cursor.execute(insert_sql )
sql_connect.commit()sql_cursor.close()
 
3> update
import sqlite3
db_connect = sqlite3.connect(file_name)
sql_cursor = sql_connect.cursor()
insert_sql = '''update {} set  API_PARAMETER="{}"'''.format(db_table_name, para_res)
sql_cursor.execute(insert_sql )
sql_connect.commit()sql_cursor.close()
 
4> select
1. fetchall()
fetchall()函数是游标对象(Cursor)的一个方法,用于获取查询结果集中的所有行。使用该函数,可以一次性获取查询结果集中的所有行,并以列表的形式返回。
import sqlite3
table_name = "interface_test"
db = sqlite3.connect(path)
cursor = db.cursor()
select_sql = '''select* from {} where ENTRY = "{}"'''.format(table_name, "interface")
record_cursor = cursor.execute(select_sql)
records = record_cursor.fetchall()
db.commit()
cursor.close()
db.close()
 
注意:如果查询结果集非常大,使用fetchall()函数可能会消耗较多的内存。在这种情况下,可以考虑使用 fetchone()或fetchmany()函数来分批获取查询结果
2. fetchone()
fetchone()函数是游标对象(Cursor)的一个方法,用于获取查询结果集中的下一行。使用该函数,可以逐行获取查询结果集中的数据。每次调用fetchone()函数,它会返回结果集中的下一行数据。当没有更多的行可用时,它将返回None。
table_name = "interface_test"
db = sqlite3.connect(path)
cursor = db.cursor()
select_sql = '''select* from {} where ENTRY = "{}"'''.format(table_name, "interface")
record_cursor = cursor.execute(select_sql)
#获取结果中下一行数据
records = record_cursor.fetchone()
db.commit()
cursor.close()
db.close() 
3. fetchmany()
fetchmany(size)函数是游标对象(Cursor)的一个方法,用于获取查询结果集中的多行数据,最多获取size行。注意:每次调用 fetchmany()都会从上次获取数据的地方开始继续获取,也就是说,如果先调用了fetchmany(5),然后再调用 fetchmany(5),那么第二次调用将返回查询结果的第6-10行。如果想要重新从头开始获取数据,需要先调用 cursor.scroll(0, mode=‘absolute’) 来重置游标位置。
table_name = "interface_test"
db = sqlite3.connect(path)
cursor = db.cursor()
select_sql = '''select* from {} where ENTRY = "{}"'''.format(table_name, "interface")
record_cursor = cursor.execute(select_sql)
#最多获取5行
records = record_cursor.fetchmany(5)
db.commit()
cursor.close()
db.close() 
5> delete
import sqlite3
table_name = "interface_test"
db = sqlite3.connect(path)
cursor = db.cursor()
delete_sql = '''delete from {} where ENTRY = "{}"'''.format(table_name, "interface")
record_cursor = cursor.execute(delete_sql)
db.commit()
cursor.close()
db.close()
 
6> other step
| step | detail | 
|---|---|
| ALTER TABLE | 修改表格结构 | 
| DROP TABLE | 删除表格 | 
| CREATE INDEX | 创建索引 | 
| DROP INDEX | 删除索引 | 
| SELECT DISTINCT | 选择唯一记录 | 
| ORDER BY | 排序查询结果 | 
| GROUP BY | 按列分组 | 
| HAVING | 过滤分组后的数据 | 
| LIMIT- | 限制查询结果数量 | 
| JOIN | 连接表格 | 
| LEFT JOIN | 左连接 | 
| RIGHT JOIN | 右连接 | 
| FULL OUTER JOIN | 全外连接 | 
| UNION | 合并两个查询结果 | 
| EXCEPT | 排除两个查询结果中的重复行 | 
四: Mysql
1> Mysql知识详解
https://blog.csdn.net/weixin_42914706/article/details/111658640
相关文章:
数据库-python SQLite3
数据库-python SQLite3 一:sqlite3 简介二: sqlite3 流程1> demo2> sqlite3 流程 三:sqlite3 step1> create table2> insert into3> update4> select1. fetchall()2. fetchone()3. fetchmany() 5> delete6> other step 四&#…...
FFMpeg rtmp 推送本地yuv文件
可以借鉴的:C使用FFmpeg实现YUV数据编码转视频文件_C 语言_脚本之家 yuv文件下载地址:YUV Sequences 代码: #include <stdio.h> #include <unistd.h> #include <iostream> extern "C" { #include "libav…...
websocket使用,spring boot + vite + vue3
websocket使用,spring boot vite vue3 Websocket是什么WebSocket 服务端构建websocket 服务实现处理器pom文件 客户端仓库地址 Websocket是什么 WebSocket 是一种网络传输协议,可在单个 TCP 连接上进行全双工通信,位于 OSI 模型的应用层。…...
基础位运算
基础知识点: 1.判断2的幂 n&(n-1)0 2.每次减一处理 n&(n-1) 3.判断出现1次次数的数 x^0x,x^x0,a^bc则ab^c,ba^c 力扣练习题: 136.只出现一次的数字 class Solution { public:int si…...
性价比高真无线蓝牙耳机有哪些?性价比真无线蓝牙耳机推荐
目前真无线蓝牙耳机的音质和性能已经越来越接近甚至超越传统有线耳机。然而,市面上的TWS耳机品牌和型号繁多,价格也从几十元到几千元不等,性价比自然成了消费者选择时的重要考量因素,究竟哪些真无线蓝牙耳机既能够提供满意的音质和…...
Big Data Tools插件
一些介绍 在Jetbrains的产品中,均可以安装插件,其中:Big Data Tools插件可以帮助我们方便的操作HDFS,比如 IntelliJ IDEA(Java IDE) PyCharm(Python IDE) DataGrip(SQL …...
两个li标签之间有空格这是什么原因
<li> 标签之间出现的空格可能由多种原因造成。以下是一些常见的原因: HTML源代码中的空格:如果你在HTML源代码中直接在两个 <li> 标签之间输入了空格或制表符(Tab),这些空格可能会被浏览器渲染出来。不过&…...
使用Colly库进行高效的网络爬虫开发
引言 随着互联网技术的飞速发展,网络数据已成为信息获取的重要来源。网络爬虫作为自动获取网页内容的工具,在数据分析、市场研究、信息聚合等领域发挥着重要作用。本文将介绍如何使用Go语言中的Colly库来开发高效的网络爬虫。 什么是Colly库࿱…...
【C#】制作图集
如题目,用好几个图片拼在一个大图里,博主是用于Unity游戏开发使用的,话不多说,上代码! using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging;namespace EffectsPac…...
行列视报表系统制作的报表与厂级监控信息系统(SIS)系统中的报表有什么区别?
厂级监控信息系统是集过程实时监测、优化控制及生产过程管理为一体的厂级自动化信息系统,是处于DCS以及相关辅助程控系统与全厂管理信息系统之间的一套实时厂级监控信息系统,该产品也是本公司的一套独立产品。 SIS系统中的报表只是其中的一个模块&#…...
算法08 广/宽度优先搜索及相关问题详解
这是《C算法宝典》算法篇的第08节文章啦~ 如果你之前没有太多C基础,请点击👉专栏:C语法入门,如果你C语法基础已经炉火纯青,则可以进阶算法👉专栏:算法知识和数据结构👉专栏ÿ…...
PyTorch 版本与 CUDA 版本的兼容性示例
PyTorch 1.9.0 及以上版本支持 CUDA 11.1。PyTorch 1.8.0 支持 CUDA 11.0。PyTorch 1.7.0 支持 CUDA 10.2。PyTorch 1.6.0 支持 CUDA 10.1。PyTorch 1.5.0 支持 CUDA 10.1。PyTorch 1.4.0 支持 CUDA 10.1。PyTorch 1.3.0 支持 CUDA 10.0。PyTorch 1.2.0 支持 CUDA 9.2。PyTorch…...
Selenium进行Web自动化滚动
在使用Selenium进行Web自动化时,计算页面内的滚动条位置或执行滚动操作通常涉及JavaScript执行。Selenium的WebDriver提供了执行JavaScript代码的功能,这可以用来获取滚动条的位置或滚动到页面上的特定位置。 获取滚动条位置 你可以使用JavaScript的wi…...
机器学习模型训练过程和预测过程 用孩子来生动的比喻 --九五小庞
训练过程:孩子在学习知识 想象一下,一个年幼的孩子刚开始学习新知识,这就像是机器学习的模型训练过程。 收集教材:孩子首先得到了一本教科书或一系列学习材料,这些材料就像机器学习中的数据集,包含了各种…...
【爱上C++】详解string类2:模拟实现、深浅拷贝
在上一篇文章中我们介绍了string类的基本使用,本篇文章我们将讲解string类一些常用的模拟实现,其中有很多细小的知识点值得我们深入学习。Let’s go! 文章目录 类声明默认成员函数构造函数析构函数拷贝构造函数深浅拷贝问题传统写法现代写法…...
狄克斯特拉算法
狄克斯特拉算法(Dijkstra’s algorithm)是一种用于在带权图中找到从单一源点到所有其他顶点的最短路径的算法。它适用于处理带有非负权值的图。 下面将详细解释算法的工作原理、时间复杂度以及如何通过优化数据结构来改进其性能。 狄克斯特拉算法的工作…...
2024推荐整理几个磁力导航网站可提供海量资源的
都2024现在网上找资源像流水得鱼一样,抓一大把结果很难吃,我通宵特意整理的网站,网上有许多磁力导航网站可以提供海量的磁力链接资源,以下是一些有效的磁力导航网站推荐: 磁力搜索 链接: 资源类型&#x…...
链式访问:C语言中的函数调用技巧
链式访问:C语言中的函数调用技巧 在C语言编程中,链式访问(chained calls)是一个常见的编程技巧,它允许你在一行代码中连续调用多个函数或方法。这种技巧不仅能够让代码更加简洁和易读,还能减少临时变量的使…...
数据库设计(实战项目)-1个手机号多用户身份
一. 背景: 该需求是一个互联网医院的预约单场景,护士在小程序上申请患者查房预约单,医生在小程序上对预约单进行接单,护士开始查房后填写查房小结,客户需要对用户信息进行授权,医生查房后进行签字ÿ…...
vue+fineReport 使用前端搜索+报表显示数据
--fineReprot 将需要搜索的参数添加到模版参数 sql: --前端传递参数 注:因为每次点击搜索的结果需要不一样,还要传递一个时间戳的参数: let timesamp new Date().getTime()...
【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...
