API 参考
本文档提供 SQL 格式化工具功能和实现的技术详细信息。
工具配置
格式化选项
该工具接受以下配置选项:
interface FormattingOptions {
indentSize: number; // 2、4 或 8 个空格
keywordCase: 'upper' | 'lower' | 'preserve';
uppercaseKeywords: boolean;
uppercaseFunctions: boolean;
uppercaseDataTypes: boolean;
alignCommas: boolean;
breakBeforeBooleanOperator: boolean;
}
默认配置
const defaultOptions: FormattingOptions = {
indentSize: 2,
keywordCase: 'upper',
uppercaseKeywords: true,
uppercaseFunctions: true,
uppercaseDataTypes: true,
alignCommas: false,
breakBeforeBooleanOperator: true,
};
支持的 SQL 关键字
数据操作语言 (DML)
- SELECT:从表中查询数据
- INSERT:插入新记录
- UPDATE:修改现有记录
- DELETE:删除记录
数据定义语言 (DDL)
- CREATE:创建数据库对象
- ALTER:修改数据库对象
- DROP:删除数据库对象
- TRUNCATE:删除表中的所有记录
数据控制语言 (DCL)
- GRANT:授予权限
- REVOKE:撤销权限
事务控制
- COMMIT:保存事务更改
- ROLLBACK:撤销事务更改
- SAVEPOINT:创建保存点
支持的 SQL 函数
聚合函数
- COUNT:计算行数或非空值
- SUM:计算值的总和
- AVG:计算值的平均值
- MIN:查找最小值
- MAX:查找最大值
字符串函数
- UPPER:转换为大写
- LOWER:转换为小写
- LENGTH:获取字符串长度
- SUBSTRING:提取子字符串
- CONCAT:连接字符串
- TRIM:删除前导/尾随空格
日期/时间函数
- NOW:获取当前时间戳
- DATE:提取日期部分
- TIME:提取时间部分
- YEAR:提取年份
- MONTH:提取月份
- DAY:提取日期
数学函数
- ROUND:四舍五入到指定小数位
- FLOOR:向下舍入到整数
- CEIL:向上舍入到整数
- ABS:获取绝对值
- SQRT:计算平方根
- POWER:计算幂
支持的数据类型
数值类型
- INT:整数值
- INTEGER:整数值
- BIGINT:大整数值
- SMALLINT:小整数值
- TINYINT:非常小的整数值
- DECIMAL:定点小数
- NUMERIC:定点小数
- FLOAT:浮点数
- DOUBLE:双精度浮点数
- REAL:单精度浮点数
字符串类型
- CHAR:固定长度字符串
- VARCHAR:可变长度字符串
- TEXT:大文本数据
- BLOB:二进制大对象
日期/时间类型
- DATE:日期值
- TIME:时间值
- DATETIME:日期和时间值
- TIMESTAMP:时间戳值
其他类型
- BOOLEAN:布尔值
- BIT:位值
- JSON:JSON 数据
格式化规则
缩进规则
- SELECT 子句:每列在新行上,带有适当缩进
- FROM 子句:表名带有适当缩进
- JOIN 子句:JOIN 条件带有适当缩进
- WHERE 子句:条件带有适当缩进
- GROUP BY:分组列带有缩进
- ORDER BY:排序列带有缩进
大小写转换规则
- 关键字:转换为指定大小写(大写/小写/保持原样)
- 函数:将函数名转换为指定大小写
- 数据类型:将数据类型名转换为指定大小写
- 标识符:保持表/列名的原始大小写
换行规则
- 主要子句:在 SELECT、FROM、WHERE、GROUP BY、ORDER BY 前换行
- JOIN 子句:在每个 JOIN 类型前换行
- 布尔操作符:如果启用,在 AND/OR 前换行
- 逗号对齐:如果启用,在 SELECT 列表中对齐逗号
历史记录管理
历史记录结构
interface HistoryRecord {
id: string;
input: string;
output: string;
options: FormattingOptions;
timestamp: number;
}
历史记录操作
- 添加记录:自动添加新的格式化记录
- 删除记录:删除特定的历史记录条目
- 清空历史记录:删除所有历史记录
- 加载记录:从历史记录恢复 SQL 和选项
存储限制
- 最大记录数:50 条历史记录
- 存储位置:浏览器本地存储
- 持久性:数据在浏览器会话间持久保存
错误处理
常见错误
- 无效 SQL 语法:格式错误的 SQL 查询
- 不支持的构造:格式化器不支持的 SQL 功能
- 大型查询:超出处理限制的查询
- 浏览器限制:本地存储或内存约束
错误恢复
- 语法验证:基本 SQL 语法检查
- 优雅降级:对复杂查询进行部分格式化
- 用户反馈:清晰的错误消息和建议
- 回退选项:替代格式化方法
性能考虑
处理限制
- 查询大小:处理最多 10,000 个字符的查询
- 复杂性:支持最多 10 层深的嵌套查询
- 处理时间:通常在 100ms 内处理查询
优化功能
- 增量处理:只处理更改的部分
- 缓存:缓存重复操作的格式化结果
- 延迟加载:按需加载历史记录
浏览器兼容性
支持的浏览器
- Chrome:版本 80+
- Firefox:版本 75+
- Safari:版本 13+
- Edge:版本 80+
必需功能
- ES6 支持:箭头函数、模板字面量
- 本地存储:浏览器本地存储 API
- 剪贴板 API:现代剪贴板访问
- CSS Grid:布局支持
集成
嵌入选项
该工具可以集成到其他应用程序中:
- Iframe 嵌入:作为 iframe 嵌入
- API 集成:直接使用格式化函数
- 组件集成:作为 Vue 组件包含
自定义
- 主题支持:浅色和深色主题
- 语言支持:多种语言选项
- 自定义样式:CSS 自定义选项