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
- SELECT-Klauseln: Jede Spalte in einer neuen Zeile mit Einrückung
- FROM-Klauseln: Tabellennamen mit korrekter Einrückung
- JOIN-Klauseln: JOIN-Bedingungen mit passender Einrückung
- WHERE-Klauseln: Bedingungen mit korrekter Einrückung
- GROUP BY: Gruppierungsspalten mit Einrückung
- ORDER BY: Sortierspalten mit Einrückung
Regeln zur Groß-/Kleinschreibung
- Schlüsselwörter: In die angegebene Schreibweise umwandeln (upper/lower/preserve)
- Funktionen: Funktionsnamen in die angegebene Schreibweise umwandeln
- Datentypen: Datentypnamen in die angegebene Schreibweise umwandeln
- Bezeichner: Ursprüngliche Schreibweise für Tabellen- und Spaltennamen beibehalten
Zeilenumbruchregeln
- Wichtige Klauseln: Vor SELECT, FROM, WHERE, GROUP BY und ORDER BY umbrechen
- JOIN-Klauseln: Vor jedem JOIN-Typ umbrechen
- Boolesche Operatoren: Wenn aktiviert, vor AND/OR umbrechen
- 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
- Ungültige SQL-Syntax: Fehlerhafte SQL-Abfragen
- Nicht unterstützte Konstrukte: SQL-Funktionen, die vom Formatter nicht unterstützt werden
- Große Abfragen: Abfragen, die die Verarbeitungsgrenzen überschreiten
- Browser-Einschränkungen: Grenzen bei lokalem Speicher oder Arbeitsspeicher
Fehlerbehebung
- Syntaxprüfung: Grundlegende SQL-Syntaxprüfung
- Graceful Degradation: Teilweise Formatierung für komplexe Abfragen
- Benutzerfeedback: Klare Fehlermeldungen und Vorschläge
- 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:
- Iframe-Einbettung: Als iframe einbetten
- API-Integration: Formatierungsfunktionen direkt verwenden
- Komponentenintegration: Als Vue-Komponente einbinden
Anpassung
- Theme-Unterstützung: Helle und dunkle Themes
- Sprachunterstützung: Mehrsprachige Optionen
- Benutzerdefiniertes Styling: CSS-Anpassungsmöglichkeiten