w

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

  1. Clauses SELECT : Chaque colonne sur une nouvelle ligne avec indentation
  2. Clauses FROM : Noms de table avec indentation appropriée
  3. Clauses JOIN : Conditions JOIN avec indentation appropriée
  4. Clauses WHERE : Conditions avec indentation appropriée
  5. GROUP BY : Colonnes de regroupement avec indentation
  6. ORDER BY : Colonnes de tri avec indentation

Règles de casse

  1. Mots-clés : Conversion vers la casse spécifiée (upper/lower/preserve)
  2. Fonctions : Conversion des noms de fonctions vers la casse spécifiée
  3. Types de données : Conversion des noms de types vers la casse spécifiée
  4. Identifiants : Conserver la casse d’origine des noms de table et de colonne

Règles de saut de ligne

  1. Clauses principales : Saut de ligne avant SELECT, FROM, WHERE, GROUP BY, ORDER BY
  2. Clauses JOIN : Saut de ligne avant chaque type de JOIN
  3. Opérateurs booléens : Saut de ligne avant AND/OR si activé
  4. 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

  1. Syntaxe SQL invalide : Requêtes SQL mal formées
  2. Constructions non prises en charge : Fonctionnalités SQL non prises en charge par le formateur
  3. Requêtes volumineuses : Requêtes dépassant les limites de traitement
  4. Limitations du navigateur : Contraintes liées au stockage local ou à la mémoire

Récupération d’erreurs

  1. Validation de syntaxe : Vérification de base de la syntaxe SQL
  2. Dégradation élégante : Formatage partiel pour les requêtes complexes
  3. Retour utilisateur : Messages d’erreur clairs et suggestions
  4. 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

  • 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 :

  1. Intégration iframe : Intégrer sous forme d’iframe
  2. Intégration API : Utiliser directement les fonctions de formatage
  3. 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
Cette page vous a-t-elle été utile ?