w

API 参考

本文档提供 SQL 格式化工具的功能与实现相关技术细节。

工具配置

格式化选项

该工具支持以下配置选项:

interface FormattingOptions {
  indentSize: number; // 2, 4, or 8 spaces
  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 数据

格式化规则

缩进规则

  1. SELECT 子句:每列单独一行并带缩进
  2. FROM 子句:表名按规则缩进
  3. JOIN 子句:JOIN 条件使用合适缩进
  4. WHERE 子句:条件按规则缩进
  5. GROUP BY:分组列带缩进
  6. ORDER BY:排序列带缩进

大小写转换规则

  1. 关键字:转换为指定大小写(大写/小写/保持原样)
  2. 函数:函数名转换为指定大小写
  3. 数据类型:数据类型名转换为指定大小写
  4. 标识符:表名和列名保持原始大小写

换行规则

  1. 主要子句:在 SELECT、FROM、WHERE、GROUP BY、ORDER BY 前换行
  2. JOIN 子句:每种 JOIN 类型前换行
  3. 布尔运算符:启用时在 AND/OR 前换行
  4. 逗号对齐:启用时在 SELECT 列表中对齐逗号

历史记录管理

历史记录结构

interface HistoryRecord {
  id: string;
  input: string;
  output: string;
  options: FormattingOptions;
  timestamp: number;
}

历史记录操作

  • 添加记录:自动添加新的格式化记录
  • 删除记录:移除指定历史条目
  • 清空历史:删除全部历史记录
  • 加载记录:从历史中恢复 SQL 与选项

存储限制

  • 最大记录数:50 条历史记录
  • 存储位置:浏览器本地存储
  • 持久性:数据在浏览器会话间保留

错误处理

常见错误

  1. SQL 语法无效:SQL 查询格式错误
  2. 不受支持的结构:格式化器不支持的 SQL 特性
  3. 大型查询:超过处理限制的查询
  4. 浏览器限制:本地存储或内存限制

错误恢复

  1. 语法校验:基础 SQL 语法检查
  2. 优雅降级:为复杂查询提供部分格式化
  3. 用户反馈:清晰的错误提示和建议
  4. 回退方案:提供替代格式化方式

性能考虑

处理限制

  • 查询大小:支持最多 10,000 个字符的查询
  • 复杂度:支持最多 10 层嵌套查询
  • 处理时间:通常可在 100ms 内完成处理

优化特性

  • 增量处理:只处理发生变化的部分
  • 缓存:对重复操作缓存格式化结果
  • 延迟加载:按需加载历史记录

浏览器兼容性

支持的浏览器

  • Chrome:80+ 版本
  • Firefox:75+ 版本
  • Safari:13+ 版本
  • Edge:80+ 版本

所需特性

  • ES6 支持:箭头函数、模板字符串
  • Local Storage:浏览器本地存储 API
  • Clipboard API:现代剪贴板访问能力
  • CSS Grid:布局支持

集成

嵌入选项

该工具可集成到其他应用中:

  1. Iframe 嵌入:以 iframe 方式嵌入
  2. API 集成:直接使用格式化函数
  3. 组件集成:作为 Vue 组件引入

自定义

  • 主题支持:浅色与深色主题
  • 语言支持:多语言选项
  • 自定义样式:支持 CSS 样式定制
这个页面对您有帮助吗?