Référence API
Ce document fournit des détails techniques sur les fonctionnalités et l’implémentation de l’outil SQL Prettify.
Configuration de l’outil
Options de formatage
L’outil accepte les options de configuration suivantes :
interface FormattingOptions {
indentSize: number; // 2, 4, or 8 spaces
keywordCase: "upper" | "lower" | "preserve";
uppercaseKeywords: boolean;
uppercaseFunctions: boolean;
uppercaseDataTypes: boolean;
alignCommas: boolean;
breakBeforeBooleanOperator: boolean;
}
Configuration par défaut
const defaultOptions: FormattingOptions = {
indentSize: 2,
keywordCase: "upper",
uppercaseKeywords: true,
uppercaseFunctions: true,
uppercaseDataTypes: true,
alignCommas: false,
breakBeforeBooleanOperator: true,
};
Mots-clés SQL pris en charge
Langage de manipulation des données (DML)
- SELECT : Interroger des données depuis des tables
- INSERT : Insérer de nouveaux enregistrements
- UPDATE : Modifier des enregistrements existants
- DELETE : Supprimer des enregistrements
Langage de définition des données (DDL)
- CREATE : Créer des objets de base de données
- ALTER : Modifier des objets de base de données
- DROP : Supprimer des objets de base de données
- TRUNCATE : Supprimer tous les enregistrements d’une table
Langage de contrôle des données (DCL)
- GRANT : Accorder des autorisations
- REVOKE : Révoquer des autorisations
Contrôle des transactions
- COMMIT : Enregistrer les changements de transaction
- ROLLBACK : Annuler les changements de transaction
- SAVEPOINT : Créer des points de sauvegarde
Fonctions SQL prises en charge
Fonctions d’agrégation
- COUNT : Compter les lignes ou les valeurs non nulles
- SUM : Calculer la somme des valeurs
- AVG : Calculer la moyenne des valeurs
- MIN : Trouver la valeur minimale
- MAX : Trouver la valeur maximale
Fonctions de chaîne
- UPPER : Convertir en majuscules
- LOWER : Convertir en minuscules
- LENGTH : Obtenir la longueur de la chaîne
- SUBSTRING : Extraire une sous-chaîne
- CONCAT : Concaténer des chaînes
- TRIM : Supprimer les espaces en début et fin
Fonctions de date/heure
- NOW : Obtenir l’horodatage actuel
- DATE : Extraire la partie date
- TIME : Extraire la partie heure
- YEAR : Extraire l’année
- MONTH : Extraire le mois
- DAY : Extraire le jour
Fonctions mathématiques
- ROUND : Arrondir au nombre de décimales spécifié
- FLOOR : Arrondir à l’entier inférieur
- CEIL : Arrondir à l’entier supérieur
- ABS : Obtenir la valeur absolue
- SQRT : Calculer la racine carrée
- POWER : Élever à une puissance
Types de données pris en charge
Types numériques
- INT : Valeurs entières
- INTEGER : Valeurs entières
- BIGINT : Grandes valeurs entières
- SMALLINT : Petites valeurs entières
- TINYINT : Très petites valeurs entières
- DECIMAL : Nombre décimal à virgule fixe
- NUMERIC : Nombre décimal à virgule fixe
- FLOAT : Nombre à virgule flottante
- DOUBLE : Nombre flottant en double précision
- REAL : Nombre flottant en simple précision
Types de chaîne
- CHAR : Chaîne de longueur fixe
- VARCHAR : Chaîne de longueur variable
- TEXT : Données textuelles volumineuses
- BLOB : Objet binaire volumineux
Types de date/heure
- DATE : Valeurs de date
- TIME : Valeurs d’heure
- DATETIME : Valeurs de date et d’heure
- TIMESTAMP : Valeurs d’horodatage
Autres types
- BOOLEAN : Valeurs booléennes
- BIT : Valeurs binaires
- JSON : Données JSON
Règles de formatage
Règles d’indentation
- Clauses SELECT : Chaque colonne sur une nouvelle ligne avec indentation
- Clauses FROM : Noms de table avec indentation appropriée
- Clauses JOIN : Conditions JOIN avec indentation appropriée
- Clauses WHERE : Conditions avec indentation appropriée
- GROUP BY : Colonnes de regroupement avec indentation
- ORDER BY : Colonnes de tri avec indentation
Règles de casse
- Mots-clés : Conversion vers la casse spécifiée (upper/lower/preserve)
- Fonctions : Conversion des noms de fonctions vers la casse spécifiée
- Types de données : Conversion des noms de types vers la casse spécifiée
- Identifiants : Conserver la casse d’origine des noms de table et de colonne
Règles de saut de ligne
- Clauses principales : Saut de ligne avant SELECT, FROM, WHERE, GROUP BY, ORDER BY
- Clauses JOIN : Saut de ligne avant chaque type de JOIN
- Opérateurs booléens : Saut de ligne avant AND/OR si activé
- Alignement des virgules : Alignement des virgules dans les listes SELECT si activé
Gestion de l’historique
Structure d’un enregistrement d’historique
interface HistoryRecord {
id: string;
input: string;
output: string;
options: FormattingOptions;
timestamp: number;
}
Opérations sur l’historique
- Ajouter un enregistrement : Ajouter automatiquement un nouveau formatage à l’historique
- Supprimer un enregistrement : Retirer une entrée spécifique de l’historique
- Effacer l’historique : Supprimer tout l’historique
- Charger un enregistrement : Restaurer le SQL et les options depuis l’historique
Limites de stockage
- Nombre maximum d’enregistrements : 50 entrées
- Emplacement de stockage : Stockage local du navigateur
- Persistance : Les données persistent entre les sessions du navigateur
Gestion des erreurs
Erreurs courantes
- Syntaxe SQL invalide : Requêtes SQL mal formées
- Constructions non prises en charge : Fonctionnalités SQL non prises en charge par le formateur
- Requêtes volumineuses : Requêtes dépassant les limites de traitement
- Limitations du navigateur : Contraintes liées au stockage local ou à la mémoire
Récupération d’erreurs
- Validation de syntaxe : Vérification de base de la syntaxe SQL
- Dégradation élégante : Formatage partiel pour les requêtes complexes
- Retour utilisateur : Messages d’erreur clairs et suggestions
- Options de secours : Approches de formatage alternatives
Considérations de performance
Limites de traitement
- Taille des requêtes : Gère les requêtes jusqu’à 10 000 caractères
- Complexité : Prend en charge les requêtes imbriquées jusqu’à 10 niveaux
- Temps de traitement : Traite généralement les requêtes en moins de 100 ms
Fonctionnalités d’optimisation
- Traitement incrémental : Ne traite que les parties modifiées
- Mise en cache : Met en cache les résultats de formatage pour les opérations répétées
- Chargement différé : Charge l’historique à la demande
Compatibilité navigateur
Navigateurs pris en charge
- Chrome : Version 80+
- Firefox : Version 75+
- Safari : Version 13+
- Edge : Version 80+
Fonctionnalités requises
- Support ES6 : Fonctions fléchées, template literals
- Local Storage : API de stockage local du navigateur
- Clipboard API : Accès moderne au presse-papiers
- CSS Grid : Support de mise en page
Intégration
Options d’intégration
L’outil peut être intégré dans d’autres applications :
- Intégration iframe : Intégrer sous forme d’iframe
- Intégration API : Utiliser directement les fonctions de formatage
- Intégration composant : Inclure comme composant Vue
Personnalisation
- Support des thèmes : Thèmes clair et sombre
- Support multilingue : Plusieurs options de langue
- Styles personnalisés : Options de personnalisation CSS