w

Referência da API

Este documento fornece detalhes técnicos sobre a funcionalidade e a implementação da ferramenta SQL Prettify.

Configuração da Ferramenta

Opções de Formatação

A ferramenta aceita as seguintes opções de configuração:

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

Configuração Padrão

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

Palavras-chave SQL Compatíveis

Linguagem de Manipulação de Dados (DML)

  • SELECT: Consultar dados de tabelas
  • INSERT: Inserir novos registros
  • UPDATE: Modificar registros existentes
  • DELETE: Remover registros

Linguagem de Definição de Dados (DDL)

  • CREATE: Criar objetos de banco de dados
  • ALTER: Modificar objetos de banco de dados
  • DROP: Remover objetos de banco de dados
  • TRUNCATE: Remover todos os registros de uma tabela

Linguagem de Controle de Dados (DCL)

  • GRANT: Conceder permissões
  • REVOKE: Revogar permissões

Controle de Transações

  • COMMIT: Salvar alterações da transação
  • ROLLBACK: Desfazer alterações da transação
  • SAVEPOINT: Criar pontos de salvamento

Funções SQL Compatíveis

Funções de Agregação

  • COUNT: Contar linhas ou valores não nulos
  • SUM: Calcular a soma dos valores
  • AVG: Calcular a média dos valores
  • MIN: Encontrar o valor mínimo
  • MAX: Encontrar o valor máximo

Funções de String

  • UPPER: Converter para maiúsculas
  • LOWER: Converter para minúsculas
  • LENGTH: Obter o comprimento da string
  • SUBSTRING: Extrair uma substring
  • CONCAT: Concatenar strings
  • TRIM: Remover espaços iniciais e finais

Funções de Data/Hora

  • NOW: Obter o timestamp atual
  • DATE: Extrair a parte da data
  • TIME: Extrair a parte da hora
  • YEAR: Extrair o ano
  • MONTH: Extrair o mês
  • DAY: Extrair o dia

Funções Matemáticas

  • ROUND: Arredondar para o número especificado de casas decimais
  • FLOOR: Arredondar para baixo
  • CEIL: Arredondar para cima
  • ABS: Obter o valor absoluto
  • SQRT: Calcular a raiz quadrada
  • POWER: Elevar a uma potência

Tipos de Dados Compatíveis

Tipos Numéricos

  • INT: Valores inteiros
  • INTEGER: Valores inteiros
  • BIGINT: Valores inteiros grandes
  • SMALLINT: Valores inteiros pequenos
  • TINYINT: Valores inteiros muito pequenos
  • DECIMAL: Decimal de ponto fixo
  • NUMERIC: Decimal de ponto fixo
  • FLOAT: Número de ponto flutuante
  • DOUBLE: Número de ponto flutuante de dupla precisão
  • REAL: Número de ponto flutuante de precisão simples

Tipos de String

  • CHAR: String de comprimento fixo
  • VARCHAR: String de comprimento variável
  • TEXT: Dados de texto grandes
  • BLOB: Objeto binário grande

Tipos de Data/Hora

  • DATE: Valores de data
  • TIME: Valores de hora
  • DATETIME: Valores de data e hora
  • TIMESTAMP: Valores de timestamp

Outros Tipos

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

Regras de Formatação

Regras de Recuo

  1. Cláusulas SELECT: Cada coluna em uma nova linha com recuo
  2. Cláusulas FROM: Nomes de tabelas com recuo adequado
  3. Cláusulas JOIN: Condições JOIN com recuo apropriado
  4. Cláusulas WHERE: Condições com recuo adequado
  5. GROUP BY: Colunas de agrupamento com recuo
  6. ORDER BY: Colunas de ordenação com recuo

Regras de Conversão de Caixa

  1. Palavras-chave: Converter para a caixa especificada (upper/lower/preserve)
  2. Funções: Converter nomes de funções para a caixa especificada
  3. Tipos de dados: Converter nomes de tipos de dados para a caixa especificada
  4. Identificadores: Preservar a caixa original para nomes de tabelas/colunas

Regras de Quebra de Linha

  1. Cláusulas principais: Quebrar antes de SELECT, FROM, WHERE, GROUP BY, ORDER BY
  2. Cláusulas JOIN: Quebrar antes de cada tipo de JOIN
  3. Operadores booleanos: Quebrar antes de AND/OR se ativado
  4. Alinhamento de vírgulas: Alinhar vírgulas em listas SELECT se ativado

Gerenciamento de Histórico

Estrutura do Registro de Histórico

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

Operações de Histórico

  • Adicionar Registro: Adicionar automaticamente novos registros de formatação
  • Excluir Registro: Remover entradas específicas do histórico
  • Limpar Histórico: Remover todos os registros do histórico
  • Carregar Registro: Restaurar SQL e opções a partir do histórico

Limites de Armazenamento

  • Máximo de Registros: 50 registros de histórico
  • Local de Armazenamento: Armazenamento local do navegador
  • Persistência: Os dados permanecem entre sessões do navegador

Tratamento de Erros

Erros Comuns

  1. Sintaxe SQL inválida: Consultas SQL malformadas
  2. Construções não suportadas: Recursos SQL não suportados pelo formatador
  3. Consultas grandes: Consultas que excedem os limites de processamento
  4. Limitações do navegador: Restrições de armazenamento local ou memória

Recuperação de Erros

  1. Validação de Sintaxe: Verificação básica da sintaxe SQL
  2. Degradação Gradual: Formatação parcial para consultas complexas
  3. Feedback ao Usuário: Mensagens de erro claras e sugestões
  4. Opções Alternativas: Abordagens alternativas de formatação

Considerações de Desempenho

Limites de Processamento

  • Tamanho da Consulta: Lida com consultas de até 10.000 caracteres
  • Complexidade: Suporta consultas aninhadas com até 10 níveis
  • Tempo de Processamento: Normalmente processa consultas em menos de 100 ms

Recursos de Otimização

  • Processamento Incremental: Processa apenas as partes alteradas
  • Cache: Armazena em cache resultados de formatação para operações repetidas
  • Carregamento Sob Demanda: Carrega registros de histórico quando necessário

Compatibilidade com Navegadores

  • Chrome: Versão 80+
  • Firefox: Versão 75+
  • Safari: Versão 13+
  • Edge: Versão 80+

Recursos Necessários

  • Suporte a ES6: Arrow functions, template literals
  • Local Storage: API de armazenamento local do navegador
  • Clipboard API: Acesso moderno à área de transferência
  • CSS Grid: Suporte de layout

Integração

Opções de Incorporação

A ferramenta pode ser integrada a outras aplicações:

  1. Incorporação com Iframe: Incorporar como iframe
  2. Integração via API: Usar diretamente as funções de formatação
  3. Integração como Componente: Incluir como componente Vue

Personalização

  • Suporte a Temas: Temas claro e escuro
  • Suporte a Idiomas: Múltiplas opções de idioma
  • Estilo Personalizado: Opções de personalização com CSS
Esta página foi útil?