w

API-Referenz

Dieses Dokument beschreibt technische Details zur Funktionalität und Implementierung des SQL-Prettify-Tools.

Werkzeugkonfiguration

Formatierungsoptionen

Das Tool akzeptiert die folgenden Konfigurationsoptionen:

interface FormattingOptions {
  indentSize: number; // 2, 4, or 8 spaces
  keywordCase: "upper" | "lower" | "preserve";
  uppercaseKeywords: boolean;
  uppercaseFunctions: boolean;
  uppercaseDataTypes: boolean;
  alignCommas: boolean;
  breakBeforeBooleanOperator: boolean;
}

Standardkonfiguration

const defaultOptions: FormattingOptions = {
  indentSize: 2,
  keywordCase: "upper",
  uppercaseKeywords: true,
  uppercaseFunctions: true,
  uppercaseDataTypes: true,
  alignCommas: false,
  breakBeforeBooleanOperator: true,
};

Unterstützte SQL-Schlüsselwörter

Datenmanipulationssprache (DML)

  • SELECT: Daten aus Tabellen abfragen
  • INSERT: Neue Datensätze einfügen
  • UPDATE: Vorhandene Datensätze ändern
  • DELETE: Datensätze entfernen

Datendefinitionssprache (DDL)

  • CREATE: Datenbankobjekte erstellen
  • ALTER: Datenbankobjekte ändern
  • DROP: Datenbankobjekte entfernen
  • TRUNCATE: Alle Datensätze aus einer Tabelle entfernen

Datenkontrollsprache (DCL)

  • GRANT: Berechtigungen vergeben
  • REVOKE: Berechtigungen entziehen

Transaktionskontrolle

  • COMMIT: Transaktionsänderungen speichern
  • ROLLBACK: Transaktionsänderungen rückgängig machen
  • SAVEPOINT: Sicherungspunkte erstellen

Unterstützte SQL-Funktionen

Aggregatfunktionen

  • COUNT: Zeilen oder Nicht-NULL-Werte zählen
  • SUM: Summe von Werten berechnen
  • AVG: Durchschnitt berechnen
  • MIN: Minimalwert ermitteln
  • MAX: Maximalwert ermitteln

Zeichenkettenfunktionen

  • UPPER: In Großbuchstaben umwandeln
  • LOWER: In Kleinbuchstaben umwandeln
  • LENGTH: Zeichenkettenlänge ermitteln
  • SUBSTRING: Teilzeichenfolge extrahieren
  • CONCAT: Zeichenketten verketten
  • TRIM: Führende und nachgestellte Leerzeichen entfernen

Datums-/Zeitfunktionen

  • NOW: Aktuellen Zeitstempel abrufen
  • DATE: Datumsanteil extrahieren
  • TIME: Zeitanteil extrahieren
  • YEAR: Jahr extrahieren
  • MONTH: Monat extrahieren
  • DAY: Tag extrahieren

Mathematische Funktionen

  • ROUND: Auf angegebene Nachkommastellen runden
  • FLOOR: Abrunden
  • CEIL: Aufrunden
  • ABS: Absolutwert ermitteln
  • SQRT: Quadratwurzel berechnen
  • POWER: Potenz berechnen

Unterstützte Datentypen

Numerische Typen

  • INT: Ganzzahlwerte
  • INTEGER: Ganzzahlwerte
  • BIGINT: Große Ganzzahlwerte
  • SMALLINT: Kleine Ganzzahlwerte
  • TINYINT: Sehr kleine Ganzzahlwerte
  • DECIMAL: Festkommazahl
  • NUMERIC: Festkommazahl
  • FLOAT: Gleitkommazahl
  • DOUBLE: Doppelt genaue Gleitkommazahl
  • REAL: Einfach genaue Gleitkommazahl

Zeichentypen

  • CHAR: Zeichenkette fester Länge
  • VARCHAR: Zeichenkette variabler Länge
  • TEXT: Große Textdaten
  • BLOB: Binäres Großobjekt

Datums-/Zeittypen

  • DATE: Datumswerte
  • TIME: Zeitwerte
  • DATETIME: Datums- und Zeitwerte
  • TIMESTAMP: Zeitstempelwerte

Sonstige Typen

  • BOOLEAN: Boolesche Werte
  • BIT: Bitwerte
  • JSON: JSON-Daten

Formatierungsregeln

Einrückungsregeln

  1. SELECT-Klauseln: Jede Spalte in einer neuen Zeile mit Einrückung
  2. FROM-Klauseln: Tabellennamen mit korrekter Einrückung
  3. JOIN-Klauseln: JOIN-Bedingungen mit passender Einrückung
  4. WHERE-Klauseln: Bedingungen mit korrekter Einrückung
  5. GROUP BY: Gruppierungsspalten mit Einrückung
  6. ORDER BY: Sortierspalten mit Einrückung

Regeln zur Groß-/Kleinschreibung

  1. Schlüsselwörter: In die angegebene Schreibweise umwandeln (upper/lower/preserve)
  2. Funktionen: Funktionsnamen in die angegebene Schreibweise umwandeln
  3. Datentypen: Datentypnamen in die angegebene Schreibweise umwandeln
  4. Bezeichner: Ursprüngliche Schreibweise für Tabellen- und Spaltennamen beibehalten

Zeilenumbruchregeln

  1. Wichtige Klauseln: Vor SELECT, FROM, WHERE, GROUP BY und ORDER BY umbrechen
  2. JOIN-Klauseln: Vor jedem JOIN-Typ umbrechen
  3. Boolesche Operatoren: Wenn aktiviert, vor AND/OR umbrechen
  4. Komma-Ausrichtung: Kommas in SELECT-Listen ausrichten, wenn aktiviert

Verlaufsverwaltung

Struktur eines Verlaufsdatensatzes

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

Verlaufsoperationen

  • Datensatz hinzufügen: Neue Formatierungsdatensätze automatisch hinzufügen
  • Datensatz löschen: Bestimmte Verlaufseinträge entfernen
  • Verlauf leeren: Alle Verlaufseinträge entfernen
  • Datensatz laden: SQL und Optionen aus dem Verlauf wiederherstellen

Speicherlimits

  • Maximale Datensätze: 50 Verlaufseinträge
  • Speicherort: Lokaler Browser-Speicher
  • Persistenz: Daten bleiben über Browsersitzungen hinweg erhalten

Fehlerbehandlung

Häufige Fehler

  1. Ungültige SQL-Syntax: Fehlerhafte SQL-Abfragen
  2. Nicht unterstützte Konstrukte: SQL-Funktionen, die vom Formatter nicht unterstützt werden
  3. Große Abfragen: Abfragen, die die Verarbeitungsgrenzen überschreiten
  4. Browser-Einschränkungen: Grenzen bei lokalem Speicher oder Arbeitsspeicher

Fehlerbehebung

  1. Syntaxprüfung: Grundlegende SQL-Syntaxprüfung
  2. Graceful Degradation: Teilweise Formatierung für komplexe Abfragen
  3. Benutzerfeedback: Klare Fehlermeldungen und Vorschläge
  4. Fallback-Optionen: Alternative Formatierungsansätze

Leistungsaspekte

Verarbeitungsgrenzen

  • Abfragegröße: Verarbeitet Abfragen bis zu 10.000 Zeichen
  • Komplexität: Unterstützt verschachtelte Abfragen bis zu 10 Ebenen
  • Verarbeitungszeit: Verarbeitet Abfragen in der Regel in unter 100 ms

Optimierungsfunktionen

  • Inkrementelle Verarbeitung: Verarbeitet nur geänderte Teile
  • Caching: Zwischenspeichert Formatierungsergebnisse bei wiederholten Operationen
  • Lazy Loading: Lädt Verlaufsdatensätze bei Bedarf

Browser-Kompatibilität

Unterstützte Browser

  • Chrome: Version 80+
  • Firefox: Version 75+
  • Safari: Version 13+
  • Edge: Version 80+

Erforderliche Funktionen

  • ES6-Unterstützung: Arrow Functions, Template Literals
  • Local Storage: Browser-API für lokalen Speicher
  • Clipboard API: Moderner Zugriff auf die Zwischenablage
  • CSS Grid: Layout-Unterstützung

Integration

Einbettungsoptionen

Das Tool kann in andere Anwendungen integriert werden:

  1. Iframe-Einbettung: Als iframe einbetten
  2. API-Integration: Formatierungsfunktionen direkt verwenden
  3. Komponentenintegration: Als Vue-Komponente einbinden

Anpassung

  • Theme-Unterstützung: Helle und dunkle Themes
  • Sprachunterstützung: Mehrsprachige Optionen
  • Benutzerdefiniertes Styling: CSS-Anpassungsmöglichkeiten
War diese Seite hilfreich?