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 樣式自訂
這個頁面對您有幫助嗎?