w

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 数据

格式化规则

缩进规则

  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 支持:箭头函数、模板字面量
  • 本地存储:浏览器本地存储 API
  • 剪贴板 API:现代剪贴板访问
  • CSS Grid:布局支持

集成

嵌入选项

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

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

自定义

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