SQLite 命令行客户端 + Windows 批处理应用

SQLite 命令行客户端 + Windows 批处理应用

  • 下载 SQLite 客户端
  • 1. Bat 辅助脚本
    • 1. 执行SQL.bat
      • 执行
    • 2. 导出Excel.bat
      • 执行
      • 效果
    • 3. 导出HTML.bat
      • 执行
      • 效果
    • 4. 清空-订单表.bat
  • 2. 测试 SQL
    • 1. 创建订单表.sql
    • 2. 插入订单表.sql
    • 3. 查询订单表.sql
    • 4. 清空订单表.sql
    • 5. 删除订单表.sql
  • 参考资料

下载 SQLite 客户端

https://www.sqlite.org/download.html
我开发环境是 win11 所以下的这个:
在这里插入图片描述

1. Bat 辅助脚本

sqlite3.exeMY_DB.db所有bat 放在一起。
当然也可以直接把 sqlite3.exe 添加到环境变量。

1. 执行SQL.bat

@echo off
CHCP 65001 > nul
REM 定义sqlite3 路径,数据库文件路径
SET "SQLITE3_EXE=sqlite3.exe"
SET "DB_FILE=MY_DB.db"
SET "TEMP_FILE_NAME=temp_filt_4_import_sql_rename.txt"
SET "TEMP_SQL_FILE=temp_sql_filt_4_import.txt"

echo ------------------------------------------
echo  开始执行 SQL 文件!
echo ------------------------------------------
REM 遍历所有参数(sql文件),逐个导入
:IMPORT_LOOP
IF "%~1"=="" GOTO :END_OF_FILES
echo  正在执行: %~1
echo BEGIN TRANSACTION; > %TEMP_SQL_FILE%
copy %~1 %TEMP_FILE_NAME% > nul
echo .read %TEMP_FILE_NAME% >> %TEMP_SQL_FILE%
echo COMMIT; >> %TEMP_SQL_FILE%
"%SQLITE3_EXE%" "%DB_FILE%" < %TEMP_SQL_FILE%
del %TEMP_FILE_NAME%
del %TEMP_SQL_FILE%
echo  执行完成: %~1
echo.
REM 移向下一项: SHIFT命令用于移动参数列表,使得%~1变为下一个文件,从而实现逐个处理。
SHIFT
GOTO :IMPORT_LOOP

:END_OF_FILES
echo ------------------------------------------
echo  所有 SQL 文件执行结束!
echo ------------------------------------------
PAUSE

执行

写好 sql 文件,拖放到此 bat 上即可执行
在这里插入图片描述

2. 导出Excel.bat

有时为了方便查在这里插入代码片看数据,需要导出 excel。

@echo off
CHCP 65001 > nul
REM 定义sqlite3 路径,数据库文件路径
SET "SQLITE3_EXE=sqlite3.exe"
SET "DB_FILE=MY_DB.db"
SET "TEMP_FILE_NAME=temp_filt_4_import_sql_rename.txt"
SET "TEMP_SQL_FILE=temp_sql_filt_4_import.txt"

echo ------------------------------------------
echo  导出表格到 excel 开始
echo ------------------------------------------
REM 遍历所有参数(sql文件),逐个导入
:IMPORT_LOOP
IF "%~1"=="" GOTO :END_OF_FILES
echo  正在导出 Excel: %~1

copy %~1 %TEMP_FILE_NAME% > nul
echo BEGIN TRANSACTION; > %TEMP_SQL_FILE%
echo .headers on >> %TEMP_SQL_FILE%
echo .excel >> %TEMP_SQL_FILE%
echo .read %TEMP_FILE_NAME% >> %TEMP_SQL_FILE%
echo COMMIT; >> %TEMP_SQL_FILE%
"%SQLITE3_EXE%" "%DB_FILE%" < %TEMP_SQL_FILE%
del %TEMP_FILE_NAME%
del %TEMP_SQL_FILE%

echo  完成导出 Excel: %~1
echo.
REM 移向下一项: SHIFT命令用于移动参数列表,使得%~1变为下一个文件,从而实现逐个处理。
SHIFT
GOTO :IMPORT_LOOP

:END_OF_FILES
echo ------------------------------------------
echo  导出表格到 excel 结束
echo ------------------------------------------
PAUSE

执行

只要写好SQL文件,拖上来执行即可
在这里插入图片描述

效果

在这里插入图片描述

3. 导出HTML.bat

@echo off
setlocal enabledelayedexpansion
CHCP 65001 > nul
REM 定义sqlite3 路径,数据库文件路径
SET "SQLITE3_EXE=sqlite3.exe"
SET "DB_FILE=MY_DB.db"
SET "TEMP_FILE_NAME=sql_file_rename.txt"
SET "TEMP_SQL_FILE=temp_sql_file_4_execution.txt"
set "OUTPUT_HTML_FILE=temp_table.html"

echo ------------------------------------------
echo  导出表格到 HTML 开始
echo ------------------------------------------
REM 遍历所有参数(sql文件),逐个导入
:IMPORT_LOOP
IF "%~1"=="" GOTO :END_OF_FILES
echo  开始导出: %~n1.html

REM 使用 sqlite3 导出表格到临时文件 temp_table.html
copy %~1 %TEMP_FILE_NAME% > nul
echo .mode html >> %TEMP_SQL_FILE%
echo .headers on >> %TEMP_SQL_FILE%
echo .output %OUTPUT_HTML_FILE% >> %TEMP_SQL_FILE%
echo .read %TEMP_FILE_NAME% >> %TEMP_SQL_FILE%
echo .output stdout >> %TEMP_SQL_FILE%
"%SQLITE3_EXE%" "%DB_FILE%" < %TEMP_SQL_FILE%
del %TEMP_FILE_NAME%
del %TEMP_SQL_FILE%

REM 读取 temp_table.html 拼接在一个变量 CONTENT 里
for /f "usebackq delims=" %%i in ("%OUTPUT_HTML_FILE%") do set "CONTENT=!CONTENT!%%i!"

REM 构建完整的 HTML 文档并输出
> %~n1.html (
		echo ^<^^!DOCTYPE html^>
		echo ^<html^>
		echo ^<head^>
		echo     ^<title^>%~n1^</title^>
		echo ^<head^>
		echo ^<body^>
		echo     ^<table^>
		echo 		!CONTENT!
		echo     ^</table^>
		echo ^</body^>
		echo ^</html^>
	)
REM 删除临时文件
del %OUTPUT_HTML_FILE%
echo  完成导出: %~n1.html
echo.
REM 移向下一项: SHIFT命令用于移动参数列表,使得%~1变为下一个文件,从而实现逐个处理。
SHIFT
GOTO :IMPORT_LOOP

:END_OF_FILES
echo ------------------------------------------
echo  导出表格到 HTML 结束
echo ------------------------------------------
endlocal

PAUSE

执行

写好 sql 文件,拖放到此 bat 上即可执行
在这里插入图片描述

效果

在这里插入图片描述

4. 清空-订单表.bat

对于需要反复执行的操作,比如:清空某个表,也可以直接写个批处理:双击使用即可

@echo off
CHCP 65001 > nul
echo  清空:订单表
sqlite3 MY_DB.db "DELETE FROM `订单表`;"
echo  清空:完成
pause

2. 测试 SQL

1. 创建订单表.sql

CREATE TABLE 订单表 (
    OrderID INTEGER PRIMARY KEY,
    CustomerName TEXT NOT NULL,
    ProductName TEXT NOT NULL,
    Quantity INTEGER NOT NULL,
    Price REAL NOT NULL,
    OrderTime TEXT NOT NULL
);

2. 插入订单表.sql

INSERT INTO 订单表 (CustomerName, ProductName, Quantity, Price, OrderTime) VALUES ('张三', '苹果手机', 1, 5999.00, '2023-04-01 10:30:00');
INSERT INTO 订单表 (CustomerName, ProductName, Quantity, Price, OrderTime) VALUES ('李四', '小米手环', 2, 299.00, '2023-04-02 14:15:00');
INSERT INTO 订单表 (CustomerName, ProductName, Quantity, Price, OrderTime) VALUES ('王五', '华为笔记本', 1, 7999.00, '2023-04-03 16:45:00');
INSERT INTO 订单表 (CustomerName, ProductName, Quantity, Price, OrderTime) VALUES ('赵六', '三星电视', 1, 4999.00, '2023-04-04 18:30:00');

3. 查询订单表.sql

SELECT * FROM 订单表;

4. 清空订单表.sql

DELETE FROM "订单表";

5. 删除订单表.sql

DROP TABLE IF EXISTS "订单表";

参考资料

sqlite 官方文档

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux驱动编程 - kfifo先进先出队列

简介&#xff1a; kfifo是Linux Kernel里面的一个 FIFO&#xff08;先进先出&#xff09;数据结构&#xff0c;它采用环形循环队列的数据结构来实现&#xff0c;提供一个无边界的字节流服务&#xff0c;并且使用并行无锁编程技术&#xff0c;即当它用于只有一个入队线程和一个出…

黑马的ES课程中的不足

在我自己做项目使用ES的时候&#xff0c;发现了黑马没教的方法&#xff0c;以及一些它项目的小问题 搜索时的匹配方法 这个boolQuery().should 我的项目是通过文章的标题title和内容content来进行搜索 但是黑马它的项目只用了must 如果我们的title和content都用must&#x…

Arc for Windows 无法使用?一篇文章教会你!

&#x1f44b; 大家好&#xff0c;我是 Beast Cheng &#x1f4eb; 联系我&#xff1a;458290771qq.com &#x1f331; 接合作、推广…… 什么是Arc浏览器&#xff1f; Arc浏览器是The Browser Conpany使用Swift语言开发的一款浏览器&#xff0c;Arc浏览器由其漂亮的侧边栏闻名…

HTML5使用<mark>标签:高亮显示文本

1、<mark>标签的使用 mark 标签用于表示页面中需要突出显示或高亮的一段文本&#xff0c;这段文本对于当前用户具有参考作用。它通常在引用原文以引起读者注意时使用。<mark>标签的作用相当于使用一支荧光笔在打印的纸张上标出一些文字。它与强调不同&#xff0c;…

自闭症在生活中的典型表现

自闭症&#xff0c;这个看似遥远却又悄然存在于我们周围的疾病&#xff0c;其影响深远且复杂。在日常生活中&#xff0c;自闭症患者的典型表现往往让人印象深刻&#xff0c;这些表现不仅揭示了他们内心的世界&#xff0c;也提醒我们要以更加包容和理解的心态去面对他们。 首先…

UEC++ 虚幻5第三人称射击游戏(二)

UEC++ 虚幻5第三人称射击游戏(二) 派生榴弹类武器 新建一个继承自Weapon的子类作为派生榴弹类武器 将Weapon类中的Fire函数添加virtual关键字变为虚函数让榴弹类继承重写 在ProjectileWeapon中重写Fire函数,新建生成投射物的模版变量 Fire函数重写逻辑 代码//生成的投射物U…

MySQL中mycat与mha应用

目录 一.Mycat代理服务器 1.Mycat应用场景 2.mycat安装目录结构说明 3.Mycat的常用配置文件 4.Mycat日志 5.mycat 实现读写分离 二.MySQL高可用 1.原理过程 2.MHA软件 3.实现MHA 一.Mycat代理服务器 1.Mycat应用场景 Mycat适用的场景很丰富&#xff0c;以下是几个典型…

大模型的实践应用25-LLama3模型模型的架构原理,以及手把手教你搭建LLama3模型

大家好,我是微学AI,今天给大家介绍一下大模型的实践应用25-LLama3模型模型的架构原理,以及手把手教你搭建LLama3模型。LLaMA 3 是Meta公司开发的最新一代大规模语言模型,其架构在很大程度上继承了LLaMA 2的设计,但对某些关键组件进行了改进和优化。 文章目录 一、LLama3模…

Vue通过Key管理状态

Vue通过Key管理状态 Vue 默认按照“就地更新”的策略来更新&#xff0c;通过 v-for 渲染的元素列表。当数据项的顺序改变时&#xff0c;Vue 不会随之移动 DOM 元素的顺序&#xff0c;而是就地更新每个元素&#xff0c;确保它们在原本指定的索引位置上渲染。为了给 Vue 一个提示…

mupdf加载PDF显示中文乱码

现象 加载PDF显示乱码,提示非嵌入字体 non-embedded font using identity encoding调式 在pdf-font.c中加载字体 调试源码发现pdf文档的字体名字居然是GBK&#xff0c;估计又是哪个windows下写的pdf生成工具生成pdf 字体方法&#xff1a; static pdf_font_desc * load_cid…

STM32利用FreeRTOS实现4个led灯同时以不同的频率闪烁

在没有接触到FreeRTOS时&#xff0c;也没有想过同时叫两个或两个以上的led灯闪烁的想法&#xff0c;接触后&#xff0c;发现如果想叫两个灯同时以不同的频率闪烁&#xff0c;不能说是不可能&#xff0c;就算是做到了也要非常的麻烦。但是学习了FreeRTOS后&#xff0c;发现要想同…

Qt 网络编程实战

一.获取主机的网络信息 需要添加network模块 QT core gui network主要涉及的类分析 QHostInfo类 QHostInfo::localHostName() 获取本地的主机名QHostInfo::fromName(const QString &) 获取指定主机的主机信息 addresses接口 QNetworkInterface类 QNetworkInterfac…

Redis---9---集群(cluster)

将新增的6387节点&#xff08;空槽号&#xff09;作为master节点加入原集群 Redis—9—集群&#xff08;cluster&#xff09; 是什么 定义 ​ 由于数据量过大&#xff0c;单个Master复制集难以承担&#xff0c;因此需要对多个复制集进行集群&#xff0c;形成水平扩展每个复…

电脑f盘的数据回收站清空了能恢复吗

随着信息技术的飞速发展&#xff0c;电脑已成为我们日常生活和工作中不可或缺的设备。然而&#xff0c;数据的丢失或误删往往会给人们带来极大的困扰。尤其是当F盘的数据在回收站被清空后&#xff0c;许多人会陷入绝望&#xff0c;认为这些数据已无法挽回。但事实真的如此吗&am…

【C语言】自定义类型:联合和枚举

前言 前面我们学习了一种自定义类型&#xff0c;结构体&#xff0c;现在我们学习另外两种自定义类型&#xff0c;联合 和 枚举。 目录 一、联合体 1. 联合体类型的声明 2. 联合体的特点 3. 相同成员联合体和结构体对比 4. 联合体大小的计算 5. 用联合体判断当前机…

AI Earth应用—— 在线使用sentinel数据VV和VH波段进行水体提取分析(昆明抚仙湖、滇池为例)

AI Earth 本文的主要目的就是对水体进行提取,这里,具体的操作步骤很简单基本上是通过,首页的数据检索,选择需要研究的区域,然后选择工具箱种的水体提取分析即可,剩下的就交给阿里云去处理,结果如下: 这是我所选取的一景影像: 详情 卫星: Sentinel-1 级别: 1 …

利用redis数据库管理代理库爬取cosplay网站-cnblog

爬取cos猎人 数据库管理主要分为4个模块&#xff0c;代理获取模块&#xff0c;代理储存模块&#xff0c;代理测试模块&#xff0c;爬取模块 cos猎人已经倒闭&#xff0c;所以放出爬虫源码 api.py 为爬虫评分提供接口支持 import requests import concurrent.futures import …

dependencyManagement的作用、nacos的学习

使用SpringCloudAlibaba注意各组件的版本适配 SpringCloudAlibaba已经包含了适配的各组件&#xff08;nacos、MQ等&#xff09;的版本号&#xff0c;也是一个版本仲裁者&#xff0c;但是可能已经有了父项目Spring-Boot-Starter-Parent这个版本仲裁者&#xff0c;又不能加多个父…

Mongodb oplog的作用及如何评估和更改保留时间

作者介绍&#xff1a;老苏&#xff0c;10余年DBA工作运维经验&#xff0c;擅长Oracle、MySQL、PG数据库运维&#xff08;如安装迁移&#xff0c;性能优化、故障应急处理等&#xff09; 公众号&#xff1a;老苏畅谈运维 欢迎关注本人公众号&#xff0c;更多精彩与您分享。oplog …