Salta al contingut

Formatador i Validador SQL - Formatejar Consultes SQL en Línia Gratuït

Formatador i validador SQL gratuït. Formatejar SQL automàticament amb una indentació i capitalització adequades. Comprova errors de sintaxi instantàniament. Funciona amb MySQL, PostgreSQL, SQL Server, Oracle.

Formatador i Validador de SQL

Formata i valida consultes SQL amb sagnat automàtic, capitalització de paraules clau i detecció d'errors de sintaxi.

Introduïu una consulta SQL per veure el resultat formatat.
Calculadora de càrrega...
📚

Documentació

Per què importa el format SQL

Mai has heretat un projecte de base de dades on el SQL sembla que algú ho hagi escrit amb els ulls tancats? No estàs sol. El SQL mal format és una de les fonts més comunes d'errors i pèrdua de temps en el desenvolupament de bases de dades.

Aquest formador i validador de SQL t'ajuda a netejar consultes automàticament. Enganxa el teu SQL, i a l'instant aplica una indentació adequada, posa en majúscules les paraules clau i comprova errors de sintaxi, tot al teu navegador sense enviar dades a cap servidor. El que normalment requereix 10-15 minuts de format manual passa en segons.

En la meva experiència treballant amb equips de bases de dades, l'estalvi de temps més gran no és només el format, sinó detectar errors abans que arribin a producció. Un parèntesi mal col·locat o una cometa no tancada pot fer perdre hores de depuració. Aquesta eina detecta aquests problemes immediatament, abans d'executar res contra la teva base de dades.

Com Usar el Formatador SQL

La interfície és intencionalment minimalista: enganxa i endavant:

  1. Enganxa el teu SQL a la caixa d'entrada (o escriu-lo directament si estàs creant-lo des de zero)
  2. Observa com es formata automàticament mentre escrius—sense botons per prémer, sense configuracions
  3. Revisa els errors de validació si n'apareix algun sota la sortida formatada
  4. Copia el SQL formatat amb un sol clic per usar-lo al teu IDE, documentació o eina de base de dades

Funciona en qualsevol dispositiu amb navegador. El formatatge es realitza completament al costat del client, de manera que les teves consultes mai surten de la teva màquina—important quan es treballa amb estructures de bases de dades de producció o esquemes sensibles.

Què fa el Formatador SQL

Capitalització de Paraules Clau

Totes les paraules clau SQL es capitalitzen automàticament—SELECT, FROM, WHERE, JOIN, i així successivament. Això segueix la convenció utilitzada per la majoria d'equips de bases de dades i fa que les paraules clau siguin visualment distintives dels noms de taules i columnes. Quan s'examina una consulta complexa, aquesta separació visual ajuda a identificar l'estructura de la consulta d'un cop d'ull.

Indentació Intel·ligent

El formatador estructura el SQL basat en una jerarquia lògica, en lloc d'afegir salts de línia aleatoris. Les clàusules principals com SELECT i FROM comencen al marge esquerre. Les clàusules JOIN s'indentan sota FROM per mostrar que formen part de la selecció de taules. Les subconsultes reben nivells addicionals d'indentació, fent clara la lògica imbricada.

Heus aquí el que passa a la pràctica: quan es té una consulta amb múltiples unions i subconsultes, la indentació adequada permet veure l'estructura de la consulta sense llegir cada paraula. Es pot identificar immediatament on acaba una unió i on comença una altra, o on s'utilitza una subconsulta a la llista SELECT.

Salts de Línia Lògics

Els salts de línia apareixen allà on ajuden la llegibilitat, no per tot arreu. Cada clàusula principal obté la seva pròpia línia. Els elements en llistes separades per comes (com noms de columnes a SELECT) obtenen cadascun la seva pròpia línia amb la indentació adequada. Les subconsultes estan visualment separades. Les sentències CASE es trenquen a WHEN, THEN i ELSE per claredat.

L'espaiat segueix les convencions de la Guia d'Estil SQL utilitzades a la indústria, la qual cosa significa que el seu SQL formatat tindrà un aspecte familiar per a altres desenvolupadors.

Validació de SQL: Què es comprova

El validador detecta els errors que normalment passen desapercebuts quan s'escriu SQL ràpidament. No substituirà l'analitzador de consultes de la vostra base de dades, però detecta errors comuns abans que executeu la consulta.

Errors estructurals

Parèntesis descompensats són sorprenentment comuns en consultes complexes amb subconsultes imbricades. El validador compta els parèntesis d'obertura i tancament per assenyalar discrepàncies immediatament. He vist incidents de producció causats per un sol parèntesi que faltava en una consulta de 200 línies—això els detecta aviat.

Literals de cadena no tancats succeeixen quan s'oblida la cometa de tancament en un valor de cadena. La vostra base de dades els rebutjarà immediatament, però detectar-los aquí estalvia un viatge d'anada i tornada.

Problemes d'ordre de clàusules es marquen quan les clàusules apareixen fora de seqüència. Per exemple, si poseu HAVING abans de GROUP BY, o WHERE després de GROUP BY, el validador us ho adverteix. Això segueix les regles de sintaxi estàndard de SQL definides a l'estàndard SQL ISO/IEC 9075.

Errors lògics

Clàusules JOIN sense condicions ON creen unions creuades accidentals, retornant moltes més files del que es pretenia. Un escenari comú: s'afegeix una tercera o quarta taula a una consulta i s'oblida la clàusula ON. Sense aquest control, potser no ho notareu fins que veieu milers de files duplicades als resultats.

HAVING sense GROUP BY és tècnicament SQL invàlid a la majoria de bases de dades. La clàusula HAVING filtra resultats agrupats, per la qual cosa requereix un GROUP BY per funcionar. El validador detecta aquest desajust lògic.

Condicions WHERE incompletes succeeixen quan es comença a escriure una condició però no es finalitza—com WHERE status = sense cap valor. Aquests són fàcils de passar per alt quan s'editen consultes.

Què no detectarà

Aquest validador es centra en la sintaxi i l'estructura, no en l'esquema de la base de dades. No sabrà si:

  • Els noms de taules o columnes existeixen a la vostra base de dades
  • Esteu fent unions amb tipus de dades compatibles
  • La vostra consulta funcionarà bé o té problemes d'optimització
  • Teniu permís per accedir a les taules que esteu consultant

Penseu-ho com un primer control abans d'enviar la consulta a la vostra base de dades real.

Regles de Formatació Aplicades per Aquesta Eina

La eina de formatació aplica regles consistents basades en les convencions de l'SQL Style Guide que la majoria d'equips de bases de dades segueixen.

Les Paraules Clau es Posen en Majúscules

Cada paraula clau SQL es converteix en majúscules: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP. Això inclou clàusules (FROM, WHERE, GROUP BY, HAVING, ORDER BY), tipus de joins (JOIN, INNER JOIN, LEFT JOIN), operadors (AND, OR, NOT, IN, BETWEEN, LIKE), i funcions comunes (COUNT, SUM, AVG, CASE, WHEN).

Per què en majúscules? Crea una distinció visual entre els elements del llenguatge SQL i els noms específics de la base de dades (taules, columnes, àlies). En escanejar una consulta, l'ull capta immediatament l'estructura.

Sagnat de Dos Espais per Nivell

Les clàusules principals com SELECT i FROM comencen al marge esquerre. Les clàusules JOIN es sagnin dos espais sota FROM per mostrar que formen part de la selecció de taules. Les subconsultes es sagnin dos espais més per cada nivell de nidificació. Això crea una jerarquia visual que coincideix amb l'estructura lògica.

Les llistes separades per comes (noms de columnes a SELECT, per exemple) es col·loquen a la seva pròpia línia amb un sagnat consistent. Quan teniu 15 columnes a la vostra llista SELECT, això facilita escanejar i trobar columnes específiques.

Les condicions a les clàusules WHERE s'alineen verticalment. Quan teniu múltiples condicions AND o OR, l'alineació fa que l'estructura lògica sigui immediatament evident.

Abans i Després: Veieu la Diferència

Abans del Formatatge:

1select u.id, u.name, o.order_date from users u join orders o on u.id = o.user_id where o.status = "completed" group by u.id order by u.name;
2

Després del Formatatge:

1SELECT
2  u.id,
3  u.name,
4  o.order_date
5FROM users u
6  JOIN orders o ON u.id = o.user_id
7WHERE
8  o.status = "completed"
9GROUP BY
10  u.id
11ORDER BY
12  u.name;
13

Regles de Validació: Què Es Marca

El validador comprova la integritat estructural i la consistència lògica bàsica. Aquí és el que busca:

Comprovacions Estructurals

Parèntesis equilibrats: Els parèntesis d'obertura i tancament han de coincidir. Les subconsultes imbricades sovint tenen múltiples nivells de parèntesis, i comptar-los malament és un dels errors SQL més comuns. El validador els compta per tu.

Cadenes tancades correctament: Cada cometa d'obertura (simple o doble) necessita una cometa de tancament. Sembla obvi, però quan s'escriu una consulta complexa amb múltiples literals de cadena, és fàcil perdre'n un.

Ordre de clàusules correcte: SQL té requisits específics d'ordre. SELECT ve abans de FROM, que ve abans de WHERE, que ve abans de GROUP BY, que ve abans de HAVING, que ve abans de ORDER BY. Posar-los fora de seqüència causa errors de sintaxi immediats. El validador comprova aquest ordre basat en l'estàndard SQL.

Comprovacions de Consistència Lògica

JOIN amb condició ON: Cada JOIN necessita una clàusula ON o USING per especificar com es relacionen les taules. Sense ella, obtindreu un cross join: cada fila d'una taula aparellada amb cada fila de l'altra. Això és rarament el que es vol i normalment indica una clàusula ON absent.

Condicions WHERE completes: Una clàusula WHERE necessita predicats complets. WHERE status = sense cap valor és incomplet i no vàlid. El validador marca aquestes condicions parcials.

HAVING requereix GROUP BY: La clàusula HAVING filtra resultats agrupats, per la qual cosa només té sentit quan hi ha un GROUP BY. Usar HAVING sense GROUP BY és un error lògic que la majoria de bases de dades rebutgen.

Regles d'agregació GROUP BY: Quan s'usen funcions d'agregació com COUNT() o SUM(), qualsevol columna no agregada a la llista SELECT ha d'aparèixer a GROUP BY. Aquest és un requisit SQL fonamental que el validador comprova.

Exemple d'Errors Comuns Detectats

Aquí hi ha SQL amb múltiples problemes que el validador marcaria:

1SELECT user_id, COUNT(*) FROM orders
2JOIN users
3WHERE status =
4GROUP BY
5HAVING count > 10;
6

Problemes detectats:

  1. JOIN users sense condició ON (crearà un cross join)
  2. WHERE status = incomplet (sense valor de comparació)
  3. Clàusula GROUP BY buida (sense columnes especificades)
  4. HAVING count > 10 fa referència a una columna no definida

Quan Usar aquest Formatador SQL

Durant Revisions de Codi

Alguna vegada has intentat revisar una consulta SQL de 50 línies escrita en una sola línia? És brutal. Abans de lliurar consultes per a la revisió de codi, passa-les pel formatador. Els teus revisors t'ho agrairan, i podran centrar-se realment en la lògica en lloc de desxifrar l'estructura.

En revisar sol·licituds de canvis amb modificacions de base de dades, demana als col·laboradors que formategen primer el seu SQL. Fa molt més fàcil detectar errors de lògica quan l'estructura és consistent.

Depurant Problemes de Producció

Quan estàs resolent una consulta que falla en producció, formatar-la adequadament t'ajuda a veure clarament l'estructura. He depurat innombrables consultes on el problema es va tornar evident un cop el SQL estava ben format: una condició de combinació perduda, un agrupament de clàusula WHERE incorrecte, o una subconsulta en el lloc equivocat.

Copia la consulta dels teus registres, enganxa-la aquí, i immediatament veuràs si hi ha problemes estructurals.

Treballant amb SQL Generat

Els ORM (Mapejadors Objecte-Relacional) com Hibernate, Entity Framework o SQLAlchemy generen SQL automàticament. A vegades necessites veure quina consulta estan produint realment. El SQL generat sol ser una línia llarga sense format. Aquesta eina fa que les consultes generades per ORM siguin llegibles perquè puguis entendre i optimitzar-les.

Ensenyant i Aprenent SQL

Si estàs aprenent SQL o ensenyant-lo, aquest formatador t'ajuda a entendre l'estructura adequada de consultes. Quan enganxes una consulta que funciona i veus com es formata, aprens les convencions. Quan enganxes una consulta trencada i veus els errors de validació, entens per què no funciona.

Migrant Entre Sistemes de Base de Dades

Bases de dades diferents (PostgreSQL, MySQL, SQL Server) tenen dialectes SQL lleugerament diferents. En migrar consultes entre sistemes, un format adequat t'ajuda a detectar sintaxi específica de dialecte que potser necessiti ajustament. El formatador segueix convencions SQL estàndard que funcionen a través de la majoria de bases de dades principals.

Alternatives al Formador SQL

IDE Específics de Base de Dades

Eines com DataGrip, SQL Server Management Studio o MySQL Workbench tenen formadors integrats. Són potents i s'integren directament amb les connexions de bases de dades.

La contrapartida: requereixen instal·lació i configuració. DataGrip costa 199 $/any per a individus. SSMS és gratuït però només per a Windows. Si necessiteu un formatat ràpid sense instal·lar res, o treballeu en diversos sistemes de bases de dades, una eina basada en navegador és més pràctica.

Extensions d'Editor

Si escriviu SQL a VS Code o Sublime Text, extensions com SQL Beautify o SqlBeautifier porten el formatat al vostre editor. Funciona bé quan esteu escrivint consultes i voleu un formatat immediat com a part del vostre flux de treball.

La limitació: les extensions necessiten configuració i estan lligades al vostre editor específic. Quan compartiu SQL amb companys o publiqueu consultes en documentació, un formador web estandarditzat garanteix que tothom vegi el mateix formatat.

Formadors de Línia de Comandaments

Eines com sqlformat (Python) o sql-formatter-cli (Node.js) es poden integrar en pipelines de CI/CD per formatar SQL automàticament en control de versions. Això imposa coherència a tot l'equip.

Millor per a fluxos de treball automatitzats que per a formatat ad-hoc. Si només esteu netejant algunes consultes o aprenent SQL, les eines de línia de comandaments afegeixen una complexitat innecessària.

Com la Formatació SQL es va Convertir en una Pràctica Estàndard

SQL va ser desenvolupat a IBM als anys 70, però les convencions de formatació van sorgir molt més tard. El SQL inicial era funcional però inconsistent—cada desenvolupador donava format a les consultes de manera diferent.

El punt d'inflexió va arribar als anys 90 quan les bases de dades van passar de projectes d'un sol desenvolupador a un desenvolupament basat en equips. Les organitzacions van començar a crear guies d'estil SQL internes per mantenir la consistència. Quan cinc desenvolupadors treballaven a la mateixa base de dades, un SQL llegible es va tornar essencial per a la col·laboració.

Els anys 2000 van portar ORMs que generaven SQL automàticament. Aquestes eines produïen SQL funcional però lleig—tot en una línia, sense sagnat. Això va crear una demanda de formadors automàtics que poguessin fer el SQL generat llegible per humans.

Els formadors SQL en línia van aparèixer als anys 2010 quan el desenvolupament web va madurar. En lloc d'instal·lar eines o configurar connectors d'IDE, els desenvolupadors podien formatar SQL en un navegador. Això va democratitzar l'accés a la formatació adequada per a tothom, des de principiants que aprenen SQL fins a desenvolupadors experimentats que netegen consultes ràpides.

Avui, la formatació SQL es considera una pràctica bàsica, similar a la formatació de codi en altres llenguatges de programació. La Guia d'Estil SQL de Simon Holywell proporciona convencions àmpliament adoptades, i eines com aquesta implementen aquests estàndards automàticament.

Exemples de Codi

Exemple 1: Consulta SELECT Bàsica

Sense format:

1select id, first_name, last_name, email from customers where status = 'active' order by last_name, first_name;
2

Amb format:

1SELECT
2  id,
3  first_name,
4  last_name,
5  email
6FROM
7  customers
8WHERE
9  status = 'active'
10ORDER BY
11  last_name,
12  first_name;
13

Exemple 2: Consulta JOIN

Sense format:

1select c.id, c.name, o.order_date, o.total_amount from customers c left join orders o on c.id = o.customer_id where o.order_date >= '2023-01-01' and o.status != 'cancelled' order by o.order_date desc;
2

Amb format:

1SELECT
2  c.id,
3  c.name,
4  o.order_date,
5  o.total_amount
6FROM
7  customers c
8  LEFT JOIN orders o ON c.id = o.customer_id
9WHERE
10  o.order_date >= '2023-01-01'
11  AND o.status != 'cancelled'
12ORDER BY
13  o.order_date DESC;
14

Exemple 3: Consulta Complexa amb Subconsulta

Sense format:

1select d.department_name, (select count(*) from employees e where e.department_id = d.id) as employee_count, (select avg(salary) from employees e where e.department_id = d.id) as avg_salary from departments d where d.active = true having employee_count > 0 order by avg_salary desc;
2

Amb format:

1SELECT
2  d.department_name,
3  (
4    SELECT
5      COUNT(*)
6    FROM
7      employees e
8    WHERE
9      e.department_id = d.id
10  ) AS employee_count,
11  (
12    SELECT
13      AVG(salary)
14    FROM
15      employees e
16    WHERE
17      e.department_id = d.id
18  ) AS avg_salary
19FROM
20  departments d
21WHERE
22  d.active = TRUE
23HAVING
24  employee_count > 0
25ORDER BY
26  avg_salary DESC;
27

Formatació SQL Programàtica

Aquí hi ha exemples de com implementar el formatatge SQL en diversos llenguatges de programació:

1// Exemple de formatatge SQL en JavaScript usant la biblioteca sql-formatter
2const sqlFormatter = require('sql-formatter');
3
4function formatSQL(sql) {
5  return sqlFormatter.format(sql, {
6    language: 'sql',
7    uppercase: true,
8    linesBetweenQueries: 2,
9    indentStyle: 'standard'
10  });
11}
12
13const rawSQL = "select id, name from users where status='active'";
14const formattedSQL = formatSQL(rawSQL);
15console.log(formattedSQL);
16

Preguntes Freqüents

Funciona aquest formatador SQL amb PostgreSQL, MySQL i SQL Server?

Sí, gestiona la sintaxi SQL estàndard que és comuna a les principals bases de dades: PostgreSQL, MySQL, SQL Server (T-SQL), Oracle, SQLite i MariaDB. El formatador es centra en SQL bàsic que funciona arreu: SELECT, JOIN, WHERE, GROUP BY, etc.

Les característiques específiques de cada base de dades potser no es formategen perfectament. Per exemple, la sintaxi d'arrays de PostgreSQL o les funcions pròpies de SQL Server potser no reben un tractament de formatació especial, però tampoc no trencaran el formatador. La consulta seguirà sent més llegible del que era.

Es meu codi SQL s'envia a un servidor?

No. Tot passa al teu navegador. Enganxa el teu SQL i es formata localment sense cap sol·licitud de xarxa. Les teves consultes mai no surten de la teva màquina.

Això és important quan treballes amb esquemes de bases de dades de producció o lògica de negoci propietària. No hi ha risc que informació sensible sigui registrada o emmagatzemada en un servidor de tercers.

Pot el validador detectar tots els errors SQL?

Ni de bon tros. Detecta problemes estructurals i de sintaxi: parèntesis perduts, cometes no tancades, clàusules en ordre incorrecte. Prou.

No sabrà si els noms de taules estan malament, els tipus de dades són incompatibles o si la consulta trigarà 10 minuts a executar-se. Per a això, necessites la teva base de dades real. Considera aquest validador com un corrector ortogràfic per a SQL, no un analitzador complet de consultes.

Per què formatar SQL si la base de dades l'executa igualment?

Les bases de dades no els importa el formatatge: analitzen la consulta independentment. Però als humans sí. Quan necessites depurar una consulta fallida, modificar-ne una d'existent o revisar l'SQL d'algú altre, un formatatge adequat marca la diferència entre entendre-ho en 30 segons o 30 minuts.

L'SQL formatat també t'ajuda a detectar errors de lògica. Quan l'estructura és clara, pots veure si has unit taules incorrectament o posat condicions al lloc equivocat.

Puc personalitzar la indentació o l'estil de paraules clau?

Ara per ara, no. El formatador utilitza convencions estàndard: paraules clau en majúscules, indentació de dos espais, clàusules en línies separades. Segueix la Guia d'Estil SQL que la majoria d'equips fan servir.

Si necessites formatació personalitzada (amplada d'indentació diferent, paraules clau en minúscules), necessitaràs una eina de línia de comandaments configurable com sqlformat o un IDE amb configuració de formatació.

Funcionarà amb procediments emmagatzemats de 1000 línies?

Formatarà consultes grans, tot i que procediments emmagatzemats molt complexos (més de 1000 línies) podrien trigar uns segons a processar-se. El formatador gestiona el SQL que enganxis, independentment de la longitud.

Per a procediments emmagatzemats massius, potser voldràs dividir-los en trossos més petits o usar un IDE específic de base de dades optimitzat per a arxius grans.

El formatatge canvia com s'executa la meva consulta?

No. El formatatge només afegeix espais en blanc i canvia la capitalització. La teva base de dades ho ignora. La consulta formatada retorna exactament els mateixos resultats i s'executa amb el mateix rendiment que la versió sense formatar.

L'única excepció: si el validador troba errors de sintaxi reals (parèntesis perduts, etc.), corregir-los canviarà el comportament, però només de "no s'executa" a "s'executa correctament".

A quin estàndard SQL segueix?

El formatador segueix les convencions SQL-92 amb extensions per a característiques comunes en SQL:1999 i estàndards posteriors. Cobreix l'SQL que la majoria de desenvolupadors escriuen diàriament: consultes SELECT, unions, subconsultes, sentències CASE, funcions de finestra.

Característiques SQL molt noves de SQL:2016 o SQL:2019 potser no es reconeixeran, però no trencaran el formatador. Simplement obtindràs un formatatge bàsic en lloc d'un tractament especialitzat.

Puc usar-ho per a Oracle PL/SQL o SQL Server T-SQL?

Per a consultes bàsiques, sí. Per a codi procedural (blocs PL/SQL, procediments emmagatzemats T-SQL amb flux de control), el formatatge serà limitat. L'eina es centra en sentències SELECT, INSERT, UPDATE, DELETE i les seves clàusules.

Si treballes intensivament amb codi procedural específic de base de dades, l'IDE natiu de la base de dades (SQL Developer per a Oracle, SSMS per a SQL Server) proporcionarà un millor formatatge que entén la sintaxi completa.

Referències i Lectures Addicionals

Comença a Formatar el Teu SQL

Un SQL llegible fa que la depuració sigui més ràpida, les revisions de codi més senzilles i la col·laboració més fluida. Enganxa la teva consulta a dalt per veure-la formatada d'acord amb les convencions estàndard de la indústria, sense instal·lació, sense configuració i sense que les dades surtin del teu navegador.