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

news2024/11/18 17:41:47

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.coloradmin.cn/o/1890837.html

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

相关文章

html + css 快速实现订单详情的布局demo

突然安排让速写这样的一个布局&#xff0c;重点就是CSS画一条虚线,并且还要灵活设置虚线的宽度和虚线之间的间隔和虚线的颜色。 注&#xff1a;订单里面的金额都是随意写的 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8&…

从零到一:全面掌握模板机部署与虚拟机克隆的实训指南【实训Day01】

一、模板机的部署 1.设置好子网ip和子网掩码以及网关 保证有NAT模式 子网IP着重记住前三段&#xff1a;192.168.222.xxx 2.开始建立虚拟机 注意&#xff1a;路径中不要有中文 3.安排8个内核 4.安排2GB内存 创建初步成功&#xff0c;接着 5.开启此虚拟机 6.选择中文 7.日期&…

Go语言特点、编译及命令

本文主要分为三部分内容分别为&#xff1a;Go语言的特点介绍&#xff1b;编译windows、linux环境文件及Go命令。 目录 Go语言特点 编译文件 编译window文件 编译linux文件 Go命令&#xff08;build/run/install/env&#xff09; 编译文件 直接运行程序 安装程序 配置G…

平衡二叉查找树和多路查找树

平衡二叉查找树 普通平衡二叉查找树 平衡二叉树定义是按照有序排列成树状&#xff0c;左子树数据大于右子树&#xff0c;任意节点的左右子树高度不能大于1 优点&#xff1a;可以保证绝对的平衡 缺点&#xff1a;当进行删除节点和新增节点&#xff0c;树进行自平衡的时候&…

10 docker 安装 mysql详解

目录 一、安装mysql 1. 镜像获取 2. 简单版 2.1. 使用mysql镜像 2.2. 建库建表插入数据 2.3. 外部win 连接并插入中文数据测试 2.4. 简单版本问题 3. 创建容器-实战版 3.1. 新建容器实列并挂载卷 3.2. 新建my.cnf , 解决中文乱码 3.3. 重启容器验证 3.4. 总结 一、…

VScode使用ssh连接服务器

VScode是一款有丰富插件的编译器&#xff0c;非常好用&#xff01;除非你不会用&#xff0c;因为太过繁琐或着频繁出错导致想把电脑砸了&#xff1b; 插件选择 ssh 配置文件 Host myblablaHostName xxx.xx.xxx.xxxUser username用户名一般是服务器上创建有什么用户名&#xf…

开源即正义,3D软件Blender设计指南

在当今数字化时代&#xff0c;开源软件的崛起不仅代表着技术的发展&#xff0c;更象征着一种信息自由和技术民主的理念。其本质是集众人之智&#xff0c;共同去完善一个软件&#xff0c;最终使双方互惠共赢。具体来说&#xff0c;开源的价值&#xff0c;在于打破资源垄断&#…

RealMAN:大规模真实录制且经过注释的麦克风阵列数据集

在深度学习驱动的多通道语音增强和声源定位系统的开发中&#xff0c;由于缺乏大规模的真实录制数据集&#xff0c;这些系统的训练在很大程度上依赖于房间脉冲响应&#xff08;RIR&#xff09;和多通道扩散噪声的模拟。然而&#xff0c;模拟数据和真实世界数据之间存在的声学失配…

【数据分享】《中国建筑业统计年鉴》2005-2022 PDF

而今天要免费分享的数据就是2005-2022年间出版的《中国建筑业统计年鉴》并以多格式提供免费下载。&#xff08;无需分享朋友圈即可获取&#xff09; 需要2023的数据的请添加小编咨询 数据介绍 在过去的十八个年头中&#xff0c;中国建筑业经历了翻天覆地的变化。从《中国建…

【LeetCode】十二、递归:斐波那契 + 反转链表

文章目录 1、递归2、leetcode509&#xff1a;斐波那契数列3、leetcode206&#xff1a;反转链表4、leetcode344&#xff1a;反转字符串 1、递归 函数自己调用自己 递归的4个点&#xff1a; 递归的例子&#xff1a;给一个数n&#xff0c;在斐波那契数列中&#xff0c;找到n对应的…

企业元宇宙3D云端数字化展厅扩大客户触及面

在浩瀚无垠的元宇宙中&#xff0c;一个立体、虚拟的数字空间正在等待您的探索与创造。如何在这片无边界的数字领域中快速搭建起属于您自己的虚拟展馆&#xff0c;已成为当今企业关注的焦点。 元宇宙数字展馆搭建&#xff0c;不仅是对新技术领域的探索&#xff0c;更是品牌创新与…

Gradle学习-5 发布二进制插件

注&#xff1a;以下示例基于Gradle8.0 1、发布插件 复制一分 buildSrc&#xff0c;执行命令行&#xff0c;生成一个新目录 leon-gradle-plugin cp -rf buildSrc leon-gradle-plugin在 leon-gradle-plugin 目录下的 build.gradle 中引入maven plugins{// 引用 Groovy 插件&…

js替换对象里面的对象名称

data为数组&#xff0c;val为修改前的名称&#xff0c;name为修改后的名称 JSON.parse(JSON.stringify(data).replace(/val/g, name)) &#xff1b; 1.替换data里面的对象tenantInfoRespVO名称替换成tenantInfoUpdateReqVO 2.替换语句&#xff1a; 代码可复制 let tenantInf…

大模型与机器人精彩碰撞-7月5日晚上八点不见不散!

在瞬息万变的科技时代&#xff0c;新兴人工智能和机器人技术的结合正在引领新一轮的创新浪潮。你是否想成为未来科技的领航者&#xff1f;你是否想了解最前沿的AI与机器人技术&#xff1f;行麦科技重磅推出的“AIGC时代的生存法则”AI系列课&#xff0c;将为你揭开大模型与机器…

RK3568驱动指南|第十六篇 SPI-第188章 mcp2515驱动编写:复位函数

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

基于java+springboot+vue实现的家政服务平台(文末源码+Lw)299

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本家政服务平台就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息&a…

RAID详解

一、RAID存储是什么&#xff1f; RAID 存储&#xff08;Redundant Arrays of Independent Disks&#xff0c;独立磁盘冗余阵列&#xff09;是一种通过将多个独 立的物理磁盘组合在一起&#xff0c;以实现更高的存储性能、数据可靠性和容错能力的技术。 其主要目的是解决单个…

Appium启动APP时报错Security exception: Permission Denial

报错内容Security exception: Permission Denial: starting Intent 直接通过am命令尝试也是同样的报错 查阅资料了解到&#xff1a;android:exported | App quality | Android Developers exported属性默认false&#xff0c;所以android:exported"false"修改为t…

MATLAB中findall用法

目录 语法 说明 示例 查找具有可见或隐藏句柄的图窗 查找句柄处于隐藏状态的对象 查找 Text 对象 提示 findall的功能是查找所有图形对象。 语法 h findall(objhandles) h findall(objhandles,prop1,value1,...,propN,valueN) 说明 h findall(objhandles) 返回 ob…

12. Revit API: Document、Element

12. Revit API: Document、Element 前言 还是先讲一下Document吧&#xff0c;不然Selection不好讲&#xff0c;那涉及到了挺多东西的&#xff0c;比元素&#xff08;Element&#xff09;和各类Filter&#xff0c;这些都与Document有关&#xff0c;所以先简单讲一下这个。 一、…