3 个不稳定版本
0.2.0 | 2024年7月4日 |
---|---|
0.1.1 | 2024年2月12日 |
0.1.0 | 2024年2月12日 |
#1229 in 命令行工具
97KB
2K SLoC
sql-insight-cli
基于 sql-insight 构建的命令行界面。它提供了一组 sql-insight
支持的命令。
功能
- SQL 格式化:将 SQL 查询格式化为标准形式,提高可读性和可维护性。
- SQL 规范化:将 SQL 查询转换为规范形式,使它们更容易分析和处理。
- 表提取:提取 SQL 查询中引用的表,明确涉及的数据源。
- CRUD 表提取:识别 SQL 查询中的创建、读取、更新和删除操作,以及每个操作中涉及的表。
附加功能
- 文件和交互式模式支持:直接从文件或通过交互式 CLI 会话处理 SQL 查询。
安装
使用 Cargo 安装 sql-insight-cli
cargo install sql-insight-cli
用法
sql-insight-cli
支持以下命令。命令可以直接从命令行、使用 --file 选项的文件或交互式方式处理输入。
通用选项
--file <path>
:从指定的文件读取 SQL 查询而不是命令行参数。- 交互式模式:启动交互式 CLI 会话以输入 SQL 查询。通过运行不带 SQL 参数和 --file 选项的命令进入此模式。要退出,请输入
exit
、quit
或按Ctrl + C
。
格式化 SQL
将 SQL 查询格式化为标准样式
sql-insight format "SELECT * \n FROM users WHERE id = 1;"
这将输出
SELECT * FROM users WHERE id = 1
规范化 SQL
规范化 SQL 查询,将值抽象为占位符
sql-insight normalize "SELECT * \n FROM users WHERE id = 1;"
这将输出
SELECT * FROM users WHERE id = ?
表提取
识别 SQL 查询中涉及的表
sql-insight extract-tables "SELECT * FROM catalog.schema.users as users_alias"
这将输出
catalog.schema.users AS users_alias
CRUD 表提取
提取并识别 CRUD 操作和涉及的表
sql-insight extract-crud "INSERT INTO users (name) SELECT name FROM employees"
这将输出
Create: [users], Read: [employees], Update: [], Delete: []
支持的 SQL 方言
sql-insight-cli
利用 sqlparser-rs 进行解析,支持广泛的 SQL 方言。有关详细列表,请参阅 sqlparser-rs 文档。
贡献
欢迎为 sql-insight-cli
做贡献!无论是添加新功能、修复错误还是改进文档,都可以随意克隆仓库并提交拉取请求。
许可证
sql-insight-cli
采用 MIT 许可协议。
依赖项
~3MB
~62K SLoC