w

Referencia de API

Este documento proporciona detalles técnicos sobre la funcionalidad y la implementación de la herramienta SQL Prettify.

Configuración de la herramienta

Opciones de formato

La herramienta acepta las siguientes opciones de configuración:

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

Configuración predeterminada

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

Palabras clave SQL compatibles

Lenguaje de manipulación de datos (DML)

  • SELECT: Consultar datos de tablas
  • INSERT: Insertar nuevos registros
  • UPDATE: Modificar registros existentes
  • DELETE: Eliminar registros

Lenguaje de definición de datos (DDL)

  • CREATE: Crear objetos de base de datos
  • ALTER: Modificar objetos de base de datos
  • DROP: Eliminar objetos de base de datos
  • TRUNCATE: Eliminar todos los registros de una tabla

Lenguaje de control de datos (DCL)

  • GRANT: Conceder permisos
  • REVOKE: Revocar permisos

Control de transacciones

  • COMMIT: Guardar cambios de la transacción
  • ROLLBACK: Deshacer cambios de la transacción
  • SAVEPOINT: Crear puntos de guardado

Funciones SQL compatibles

Funciones agregadas

  • COUNT: Contar filas o valores no nulos
  • SUM: Calcular la suma de valores
  • AVG: Calcular el promedio de valores
  • MIN: Encontrar el valor mínimo
  • MAX: Encontrar el valor máximo

Funciones de cadena

  • UPPER: Convertir a mayúsculas
  • LOWER: Convertir a minúsculas
  • LENGTH: Obtener la longitud de la cadena
  • SUBSTRING: Extraer una subcadena
  • CONCAT: Concatenar cadenas
  • TRIM: Eliminar espacios al inicio y al final

Funciones de fecha/hora

  • NOW: Obtener la marca de tiempo actual
  • DATE: Extraer la parte de fecha
  • TIME: Extraer la parte de hora
  • YEAR: Extraer el año
  • MONTH: Extraer el mes
  • DAY: Extraer el día

Funciones matemáticas

  • ROUND: Redondear al número especificado de decimales
  • FLOOR: Redondear hacia abajo
  • CEIL: Redondear hacia arriba
  • ABS: Obtener el valor absoluto
  • SQRT: Calcular la raíz cuadrada
  • POWER: Elevar a una potencia

Tipos de datos compatibles

Tipos numéricos

  • INT: Valores enteros
  • INTEGER: Valores enteros
  • BIGINT: Valores enteros grandes
  • SMALLINT: Valores enteros pequeños
  • TINYINT: Valores enteros muy pequeños
  • DECIMAL: Decimal de punto fijo
  • NUMERIC: Decimal de punto fijo
  • FLOAT: Número de punto flotante
  • DOUBLE: Número de punto flotante de doble precisión
  • REAL: Número de punto flotante de precisión simple

Tipos de cadena

  • CHAR: Cadena de longitud fija
  • VARCHAR: Cadena de longitud variable
  • TEXT: Datos de texto grandes
  • BLOB: Objeto binario grande

Tipos de fecha/hora

  • DATE: Valores de fecha
  • TIME: Valores de hora
  • DATETIME: Valores de fecha y hora
  • TIMESTAMP: Valores de marca de tiempo

Otros tipos

  • BOOLEAN: Valores booleanos
  • BIT: Valores de bits
  • JSON: Datos JSON

Reglas de formato

Reglas de sangría

  1. Cláusulas SELECT: Cada columna en una nueva línea con sangría
  2. Cláusulas FROM: Nombres de tabla con la sangría adecuada
  3. Cláusulas JOIN: Condiciones JOIN con la sangría adecuada
  4. Cláusulas WHERE: Condiciones con la sangría adecuada
  5. GROUP BY: Columnas de agrupación con sangría
  6. ORDER BY: Columnas de ordenación con sangría

Reglas de conversión de mayúsculas/minúsculas

  1. Palabras clave: Convertir al caso especificado (upper/lower/preserve)
  2. Funciones: Convertir los nombres de función al caso especificado
  3. Tipos de datos: Convertir los nombres de tipos de datos al caso especificado
  4. Identificadores: Conservar el caso original de nombres de tablas y columnas

Reglas de salto de línea

  1. Cláusulas principales: Saltar línea antes de SELECT, FROM, WHERE, GROUP BY, ORDER BY
  2. Cláusulas JOIN: Saltar línea antes de cada tipo de JOIN
  3. Operadores booleanos: Saltar línea antes de AND/OR si está habilitado
  4. Alineación de comas: Alinear comas en listas SELECT si está habilitado

Gestión del historial

Estructura del registro de historial

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

Operaciones del historial

  • Agregar registro: Añadir automáticamente nuevos registros de formato
  • Eliminar registro: Quitar entradas específicas del historial
  • Borrar historial: Eliminar todos los registros del historial
  • Cargar registro: Restaurar SQL y opciones desde el historial

Límites de almacenamiento

  • Máximo de registros: 50 registros de historial
  • Ubicación de almacenamiento: Almacenamiento local del navegador
  • Persistencia: Los datos persisten entre sesiones del navegador

Manejo de errores

Errores comunes

  1. Sintaxis SQL no válida: Consultas SQL mal formadas
  2. Construcciones no compatibles: Funciones SQL no compatibles con el formateador
  3. Consultas grandes: Consultas que exceden los límites de procesamiento
  4. Limitaciones del navegador: Restricciones de almacenamiento local o memoria

Recuperación de errores

  1. Validación de sintaxis: Verificación básica de la sintaxis SQL
  2. Degradación elegante: Formato parcial para consultas complejas
  3. Comentarios al usuario: Mensajes de error claros y sugerencias
  4. Opciones alternativas: Métodos alternativos de formato

Consideraciones de rendimiento

Límites de procesamiento

  • Tamaño de consulta: Maneja consultas de hasta 10.000 caracteres
  • Complejidad: Admite consultas anidadas de hasta 10 niveles
  • Tiempo de procesamiento: Normalmente procesa consultas en menos de 100 ms

Funciones de optimización

  • Procesamiento incremental: Solo procesa las partes modificadas
  • Caché: Guarda en caché resultados de formato para operaciones repetidas
  • Carga diferida: Carga el historial bajo demanda

Compatibilidad del navegador

  • Chrome: Versión 80+
  • Firefox: Versión 75+
  • Safari: Versión 13+
  • Edge: Versión 80+

Funciones requeridas

  • Compatibilidad con ES6: Funciones flecha, template literals
  • Local Storage: API de almacenamiento local del navegador
  • Clipboard API: Acceso moderno al portapapeles
  • CSS Grid: Soporte de diseño

Integración

Opciones de integración

La herramienta puede integrarse en otras aplicaciones:

  1. Integración con iframe: Incrustar como iframe
  2. Integración por API: Usar directamente las funciones de formato
  3. Integración como componente: Incluir como componente de Vue

Personalización

  • Compatibilidad con temas: Temas claro y oscuro
  • Compatibilidad con idiomas: Múltiples opciones de idioma
  • Estilo personalizado: Opciones de personalización con CSS
¿Te resultó útil esta página?