w

API リファレンス

このドキュメントでは、SQL Prettify ツールの機能と実装に関する技術的な詳細を説明します。

ツール設定

フォーマットオプション

このツールは以下の設定オプションを受け付けます。

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: 行数または NULL 以外の値を数えます
  • 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. キーワード: 指定した大文字・小文字(upper/lower/preserve)に変換します
  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 によるカスタマイズに対応
このページは役に立ちましたか?