Eina de format SQL

0 caràcters

L'eina de format SQL de GeekFormat organitza i embellix ràpidament les sentències de consulta SQL desordenades. Admet 20 dialectes de bases de dades, com ara MySQL, PostgreSQL, SQLite, SQL Server i Oracle, amb opcions de format personalitzables com ara el cas de les paraules clau, l'estil d'indentació, la posició de salts de línia dels operadors i l'amplada de les expressions. Proporciona 4 estils predefinits amb un sol clic amb funcions integrades de minificació i validació sintàctica de SQL, i admet càrrega/descàrrega de fitxers, compartició d'URL i dreceres de teclat. Basat en l'editor CodeMirror 6, proporciona ressaltat sintàctic i disseny de panells ajustables, amb format automàtic en temps real després de la introducció. Tot el processament es fa localment al teu navegador: les sentències SQL mai s'enviaran a cap servidor.

Relacionats

Sobre el format SQL

El format SQL (SQL Formatting / SQL Beautification) es refereix a l'ajust dels caràcters d'espai en blanc (salts de línia, indentació, espais) i el cas de les paraules clau de les sentències SQL mitjançant eines automàtiques per donar-los una estructura de disseny coherent i altament llegible. Com a llenguatge de consulta declaratiu, una consulta SQL complexa sovint inclou múltiples clàusules com ara JOIN de diverses taules, subconsultes imbricades, múltiples condicions WHERE, agrupacions GROUP BY, filtratge HAVING i ordenació ORDER BY. Sense format, si tot el contingut està en una sola línia o amb indentació desordenada, la llegibilitat i l'eficiència de manteniment es veuen greument afectades. El SQL formata col·loca cada clàusula en la seva pròpia línia mitjançant salts de línia adequats i expressa els nivells d'imbricació mitjançant indentació, permetent al lector comprendre ràpidament l'estructura de la consulta.

Per què és important el format SQL? En entorns de col·laboració d'equip, diferents desenvolupadors tenen diferents preferències d'estil de codificació: alguns prefereixen paraules clau en majúscules, d'altres en minúscules; alguns utilitzen indentació de 2 espais, d'altres 4 espais o Tab; alguns col·loquen AND al començament de la línia, d'altres al final. Aquestes diferències d'estil no afecten l'execució SQL per si mateixes, però generen grans quantitats de diferències sense sentit durant les revisions de codi (Code Review), fent que els revisors hagin de distingir entre canvis lògics reals i simples ajustos de format. Els estàndards de format SQL unificats i les eines de format automàtic eliminen els debats d'estil, permetent als equips centrar-se en la lògica de negoci.

Les regles principals del format SQL solen incloure els aspectes següents: primer, el cas de les paraules clau: les paraules reservades SQL com SELECT, FROM, WHERE, JOIN, ON, GROUP BY, ORDER BY, HAVING, LIMIT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP solen ser en majúscules per distingir-les dels identificadors (o uniformement en minúscules segons els estàndards de l'equip); segon, salts de línia de clàusules: cada clàusula principal (SELECT/FROM/WHERE/GROUP BY/ORDER BY, etc.) en la seva pròpia línia; tercer, alineació de noms de columna: a la llista SELECT, diversos noms de columna cadascun en una línia i alineats verticalment; quart, nivells d'indentació: subconsultes, condicions JOIN, expressions CASE imbricades, etc., augmenten la indentació per indicar la jerarquia; cinquè, posició de l'operador: els operadors lògics com AND/OR es col·loquen uniformement al començament o al final de la línia.

El format SQL per a diferents dialectes de bases de dades té les seves característiques pròpies. MySQL utilitza l'accent greu (`) per citar identificadors, PostgreSQL utilitza cometes dobles ("), SQL Server utilitza claudàtors quadrats ([]); MySQL utilitza LIMIT per a la paginació, PostgreSQL admet LIMIT/OFFSET, SQL Server utilitza TOP o OFFSET/FETCH, Oracle utilitza ROWNUM; PostgreSQL té l'operador de conversió de tipus ::, MySQL té escapament d'accent greu, SQL Server té identificadors de claudàtors quadrats. Aquestes diferències de dialecte requereixen que el formatador reconegui els elements sintàctics de bases de dades específiques; en cas contrari, la sintaxi especial es pot jutjar erròniament com a error o les paraules clau es poden dividir incorrectament. Aquesta eina s'implementa basant-se en la llibreria sql-formatter, que proporciona suport sintàctic especial per a 20 dialectes SQL principals.

La minificació SQL (SQL Minification) és l'operació inversa del format i és molt útil en alguns escenaris. El SQL imprès en registres d'aplicacions, el SQL generat per marcs ORM (com Hibernate, MyBatis, Django ORM, SQLAlchemy) i el SQL capturat per eines de monitoratge de rendiment de bases de dades sovint estan en format comprimit d'una sola línia sense salts de línia, que no és molt favorable per a la resolució de problemes i cal formatar abans de llegir. Per contra, quan cal incrustar SQL en cadenes de codi (com ara concatenació de cadenes en Java/Python/JavaScript), escriure en fitxers de configuració, enviar mitjançant paràmetres d'URL o compartir en eines de xat que no admeten text multilínia, comprimir en una sola línia evita problemes de format causats per salts de línia i indentació.

Triar l'estil de format adequat requereix considerar els estàndards de l'equip i els escenaris d'ús. L'estil de paraules clau en majúscules és la tradició clàssica de SQL: en l'era de la impressió, les paraules clau en majúscules feien que el SQL escrit a màquina o amb màquina d'escriure fos més llegible, i avui encara molts equips i organitzacions l'utilitzen. L'estil de paraules clau en minúscules és cada cop més popular en plataformes de codi modernes com GitHub perquè les minúscules són visualment més suaus i, amb el ressaltat sintàctic en editors moderns, ja no cal el cas per distingir paraules clau. L'amplada d'indentació de 2 espais és més comuna entre desenvolupadors frontend, 4 espais són més prevalents entre desenvolupadors backend Java/C#. La indentació amb Tab permet a diferents desenvolupadors personalitzar l'amplada de visualització a l'editor. En llegir llistes de condicions llargues, col·locar els operadors lògics AND/OR al començament de la línia facilita l'exploració de cada condició; col·locar-los al final s'ajusta als hàbits de lectura en anglès.

Els principis d'implementació de les eines de format SQL es basen principalment en l'anàlisi lèxica (Tokenització) i l'anàlisi sintàctica. Biblioteques com sql-formatter descomponen primer la cadena SQL en una sèrie de tokens (paraules clau, identificadors, literals, operadors, signes de puntuació, comentaris, etc.), després reordenen aquests tokens segons les regles sintàctiques (els conjunts de regles per a diferents dialectes són diferents) i insereixen salts de línia i indentació en ubicacions adequades. A diferència dels formatadors de codi generals (com Prettier), els formatadors SQL han d'entendre les estructures gramaticals específiques de SQL (com ara condicions JOIN...ON, expressions CASE WHEN...END, imbricació de claudàtors de subconsultes) per a una indentació correcta, en lloc de dependre únicament de la coincidència de claus o claudàtors.

Quan utilitzeu eines de format SQL, tingueu en compte el següent: primer, el format no verifica la correcció semàntica del SQL: el SQL amb sintaxi correcta però errors lògics (com ara condicions JOIN incorrectes, condicions WHERE faltants) encara serà incorrecte després de formatar; el format només millora el disseny, no la lògica; segon, en casos extrems rars, les eines de format poden produir resultats diferents del SQL original en escenaris sensibles a espais en blanc (com ara espais dins de constants de cadena, ubicacions de comentaris específiques); es recomana una verificació senzilla després de formatar; tercer, especialment per a SQL amb paràmetres dinàmics, no executeu directament en entorns de producció sense provar; quart, per a SQL amb dades sensibles (contrasenyes, claus, PII), utilitzeu eines de format local (com aquesta eina) en lloc d'eines en línia per evitar riscos de fuga de dades.

Casos d'ús

  • Organitza grans procediments emmagatzemats SQL i consultes JOIN complexes sense format quan gestiones projectes heretats per comprendre ràpidament la lògica de negoci
  • Estandarditza l'estil SQL abans de les revisions de codi d'equip per eliminar el soroll de diferències causat per preferències de format individuals i centrar-se en la revisió lògica
  • Formata el SQL comprimit d'una sola línia copiat de registres o consola per facilitar la lectura i la resolució de problemes
  • Formata exemples SQL quan escriu documentació tècnica i blocs per augmentar la professionalitat i la llegibilitat quan s'incrusta en documents
  • Reformata el SQL amb format desordenat exportat des de clients de bases de dades a un estil estàndard de l'equip abans de fer commit al codi
  • Formata sentències de demostració SQL en preparar entrevistes o presentacions tècniques per utilitzar-les en presentacions PPT i explicacions a la pissarra
  • Formata subconsultes imbricades desordenades quan resolgues errors SQL per identificar problemes estructurals com claudàtors no coincidents o paraules clau faltants
  • Els registres SQL generats per marcs ORM sovint estan en format comprimit sense salts de línia; formata'ls per facilitar l'anàlisi de les consultes realment executades
  • Formata sentències CREATE TABLE i INSERT quan desenvolupa scripts de migració de dades per millorar el manteniment
  • Estandarditza el format abans de comparar versions SQL en diferents versions per evitar que les diferències de format pur interfereixin en les revisions de codi
  • Formata consultes d'exemple quan aprèn SQL per comprendre les relacions jeràrquiques de JOIN, subconsultes i GROUP BY mitjançant indentació i salts de línia clars
  • Formata abans de compartir fragments SQL amb companys i després comparteix mitjançant un enllaç URL: el destinatari veu el mateix resultat formatat en obrir-lo

Com usar-ho

  1. Seleccioneu el dialecte de base de dades (per defecte MySQL, admet 20 dialectes SQL) per assegurar-vos que el formatador reconeix correctament la sintaxi
  2. Enganxeu les sentències SQL a formatar a l'àrea de l'editor esquerra, o feu clic al botó de càrrega per importar fitxers .sql/.txt, o carregueu un exemple SQL des del menú d'exemples
  3. Feu clic al botó de format (Shift+Cmd/Ctrl+F) o espereu el format automàtic (s'activa automàticament 800 ms després de la introducció); els resultats formatats es mostren immediatament a la dreta
  4. Per ajustar el format, feu clic al botó de configuració per expandir el panell de configuració, ajusteu opcions com ara el cas de les paraules clau, la indentació i els salts de línia, o seleccioneu un estil predefinit; per a la minificació d'una sola línia, feu clic al botó de minificar
  5. Feu clic al botó de còpia per copiar els resultats, o al botó de descàrrega per desar-los com a fitxer .sql, o al botó de compartir per crear un enllaç URL que contingui el contingut SQL

Característiques

  • Compatibilitat amb 20 dialectes de bases de dades: admet el reconeixement sintàctic i el format per a 20 dialectes SQL, com ara Standard SQL, MySQL, MariaDB, TiDB, PostgreSQL, SQLite, BigQuery, Snowflake, Redshift, DB2, PL/SQL (Oracle), T-SQL (SQL Server), Spark SQL, Hive, Trino, ClickHouse i DuckDB
  • Control del cas de les paraules clau: tres modes per a paraules clau com SELECT/FROM/WHERE/JOIN: majúscules (UPPER), minúscules (lower) o preservar l'original (preserve), amb configuracions independents per a tipus de dades i noms de funcions
  • Control del cas dels identificadors: els identificadors com ara noms de taula, noms de columna i àlies admeten majúscules, minúscules o preservar l'original, adaptant-se a diferents estàndards de codificació d'equips
  • Estils d'indentació seleccionables: tres estils d'indentació disponibles: indentació estàndard, alineació tabular a l'esquerra (tabularLeft) i alineació tabular a la dreta (tabularRight) per satisfer diferents preferències de lectura
  • Configuració d'indentació flexible: trieu l'amplada d'indentació entre 2 espais, 4 espais o el caràcter Tab; configureu el nombre de línies buides entre sentències de consulta a 0/1/2 línies
  • Salt de línia d'operador lògic: configureu si els operadors lògics com AND/OR fan un salt de línia abans (before) o després (after) de l'operador, per coincidir amb l'estil de codi del teu equip
  • Control de l'amplada d'expressió: límit d'amplada de línia ajustable per a l'embolcall d'expressions (20-200 caràcters); quan se supera aquesta amplada, les línies s'embolcallen automàticament per controlar la longitud del codi d'una sola línia
  • Mode d'operadors densos: quan s'activa, no hi ha espais addicionals al voltant dels operadors, donant resultats de format més compactes, adequat per a escenaris SQL incrustats
  • Salt de línia abans del punt i coma: opcionalment afegeix un salt de línia abans del punt i coma que finalitza la sentència, col·locant el punt i coma en la seva pròpia línia per identificar ràpidament els límits de les sentències
  • 4 estils predefinits: canvieu entre predefinits amb un sol clic: per defecte (paraules clau UPPER + indentació de 2 espais), minúscules (totes les paraules clau en minúscules), compacte (alineació tabular + operadors densos) i espaiós (indentació de 4 espais + doble línia buida), sense ajustos manuals
  • Funció de minificació SQL: comprimeix SQL en una sola línia amb un sol clic, eliminant automàticament comentaris, espais en blanc addicionals i salts de línia; ideal per a sortides de registres, concatenació de codi i incrustació en documents
  • Funció de validació sintàctica: validació sintàctica bàsica de SQL que mostra missatges d'error quan el format falla per ajudar a identificar problemes sintàctics
  • Exemples SQL integrats: proporciona quatre conjunts d'exemples SQL: consultes bàsiques, consultes JOIN complexes, lots de múltiples sentències i sentències CREATE TABLE per a una experiència de format ràpida
  • Càrrega/descàrrega de fitxers: carregueu fitxers .sql/.txt per importar SQL directament; descarregueu els resultats formatats com a fitxer .sql per desar-los
  • Compartició d'URL: utilitza la compressió LZ-String per codificar SQL en el hash de l'URL; copieu l'enllaç per compartir la configuració de format i el contingut SQL
  • Format automàtic en temps real: format automàtic amb un retard de 800 ms després d'introduir SQL, mostrant resultats immediatament sense haver de fer clic repetidament al botó
  • Dreceres de teclat: Shift+Cmd/Ctrl+F per formatar, Shift+Cmd/Ctrl+C per minificar, Shift+Cmd/Ctrl+V per validar, Shift+Cmd/Ctrl+O per carregar, Shift+Cmd/Ctrl+D per descarregar, Shift+Cmd/Ctrl+K per netejar
  • Editor CodeMirror: editor amb ressaltat sintàctic SQL basat en CodeMirror 6, amb ajust d'amplada de panells esquerre/dreta arrossegable, ajust de mida de font i panell d'historial
  • Còpia de resultats amb un sol clic: copieu el SQL formatat o minificat al porta-retalls amb un sol clic per enganxar-lo directament al client de base de dades o al codi
  • Processament local pur al navegador: tot el format SQL es fa al JavaScript del navegador basant-se en la llibreria sql-formatter; les sentències SQL mai s'enviaran a cap servidor, garantint la seguretat de les dades

Preguntes freqients

El format SQL canvia la lògica de la consulta? Es pot executar directament el SQL formatat?

No canvia la lògica de la consulta. El format SQL només ajusta els caràcters d'espai en blanc (salts de línia, indentació, espais) i el cas de les paraules clau; no modifica els identificadors, valors, operadors, crides a funcions o l'estructura de la consulta en el SQL. El SQL formatat és semànticament equivalent al SQL original i es pot copiar directament per executar-lo en clients de bases de dades com MySQL Workbench, pgAdmin, DBeaver i Navicat. Tanmateix, es recomana verificar en un entorn de proves abans d'executar en producció.

Quins dialectes de bases de dades s'admeten? Quines diferències sintàctiques hi ha entre diferents bases de dades?

Admet 20 dialectes SQL: Standard SQL, MySQL, MariaDB, TiDB, PostgreSQL, SQLite, BigQuery, Snowflake, Redshift, DB2, DB2i, PL/SQL (Oracle), T-SQL (SQL Server), Spark SQL, Hive, Trino, ClickHouse, SingleStoreDB, DuckDB, N1QL (Couchbase). Diferents bases de dades difereixen en la sintaxi de paginació (LIMIT vs LIMIT/OFFSET vs TOP vs ROWNUM), concatenació de cadenes, funcions de data, cometes d'identificadors (accent greu vs cometes dobles vs claudàtors quadrats), etc. Seleccionar el dialecte correcte assegura que el formatador reconeix correctament les paraules clau i els noms de funcions, evitant formatar incorrectament funcions específiques del dialecte.

Què és la minificació SQL? En què es diferencia del format?

La minificació SQL (Minify) és l'operació inversa del format: elimina tots els comentaris (inclosos els comentaris multilínia /* */ i els comentaris d'una sola línia --), fusiona caràcters d'espai en blanc consecutius en un sol espai, elimina espais addicionals al voltant de claudàtors/comes/punts i comes/operadors, i produeix SQL compacte d'una sola línia. La minificació és adequada per a escenaris com incrustar SQL en cadenes de codi, escriure en fitxers de registre, enviar mitjançant paràmetres d'URL o compartir en finestres de xat per evitar confusions de salts de línia. D'altra banda, el format afegeix salts de línia i indentació adequats per millorar la llegibilitat.

Quan s'activa el format automàtic? Es pot desactivar?

Després d'introduir o modificar SQL a l'àrea de l'editor esquerra, el format s'activa automàticament després d'un retard de desbordament de 800 ms (sempre que no hi hagi errors sintàctics en el format anterior). Això és per mostrar resultats de format immediatament després que deixeu d'escriure. Si preferiu el control manual, només cal que feu clic al botó de format a la barra d'eines sense esperar l'activació automàtica. Actualment no hi ha cap interruptor independent per desactivar el format automàtic, però no s'activarà repetidament mentre la contingut d'entrada no es modifiqui.

Què cal fer si el format falla amb una indicació d'error sintàctic?

El formatador analitza SQL basant-se en la llibreria sql-formatter i informa d'errors quan es troba amb sintaxi SQL que no pot analitzar. Les causes i solucions habituals inclouen: 1) Claudàtors no coincidents: comproveu que el nombre de claudàtors esquerres i drets coincideixi; utilitzeu la funció de ressaltat de coincidència de claudàtors de l'editor per ajudar en la comprovació; 2) Cometes de cadena no tancades: comproveu que les cometes simples i dobles apareguin en parelles; les cometes dins de cadenes han de ser escapades (per exemple, '' o \'); 3) Selecció incorrecta del dialecte de base de dades: per exemple, utilitzar la sintaxi de conversió de tipus :: específica de PostgreSQL però seleccionar el dialecte MySQL; canvieu al dialecte correcte; 4) Fragment SQL incomplet: per exemple, només tenir clàusules WHERE sense SELECT FROM; 5) Ús de sintaxi molt específica de bases de dades (com ara alguns fluxos de control de procediments emmagatzemats); proveu de canviar al dialecte més proper, o simplifiqueu el fragment SQL abans de formatar. Els missatges d'error mostren la ubicació i la causa del problema informat per l'analitzador, que es poden utilitzar per localitzar el problema. També podeu fer clic al botó de validació (Shift+Cmd/Ctrl+V) primer per comprovar la sintaxi.

Com triar entre els modes de majúscules, minúscules i preservar el cas de les paraules clau?

Les paraules clau en majúscules (UPPER) són l'estil de codificació SQL més tradicional i popular: les paraules clau en majúscules com SELECT/FROM/WHERE/JOIN creen un contrast visual amb els noms de taula/columna, permetent localitzar ràpidament l'estructura SQL en bases de codi grans. Les paraules clau en minúscules són més adequades per a entorns IDE moderns (els editors moderns tenen ressaltat sintàctic, ja no depenen del contrast de casos) amb una aparença visual més uniforme. Preservar (preserve) deixa el cas d'entrada sense canvis, adequat per a ajustos de format mínims en codi existent. Les estratègies de cas per a paraules clau, identificadors (noms de taula/columna), tipus de dades (VARCHAR/INT/BIGINT) i noms de funcions (COUNT/SUM/COALESCE) es poden configurar independentment.

Quina diferència hi ha entre el mode d'alineació tabular i la indentació estàndard?

La indentació estàndard (standard) utilitza la indentació jeràrquica tradicional amb un nombre fix d'espais per a cada clàusula. Els modes d'alineació tabular a l'esquerra/dreta alineen els noms de columna a les llistes SELECT, les expressions a les clàusules WHERE, etc., per columnes, creant un efecte visual similar a una taula. Per exemple, després de SELECT, diversos noms de columna s'alineen verticalment i els àlies AS també s'alineen a la mateixa posició de columna. Aquest mode és molt còmode en llegir consultes de múltiples columnes en monitors de pantalla ampla, però pot produir línies excessivament llargues en pantalles estretes.

Com canviar ràpidament entre l'estil SQL estàndard de l'equip i la preferència personal?

Utilitzeu els botons predefinits al panell de configuració: per defecte (paraules clau UPPER + indentació estàndard de 2 espais), minúscules (totes les paraules clau en minúscules), compacte (alineació tabularLeft + operadors densos), espaiós (indentació de 4 espais + doble línia buida entre consultes). Si el vostre equip té estàndards específics, ajusteu les opcions manualment i formateu. L'emmagatzematge de predefinits personalitzats no s'admet actualment, però amb opcions de configuració limitades, l'ajust ràpid és convenient.

Es perden els comentaris en el SQL formatat?

L'operació de format (Format) manté els comentaris: tant els comentaris d'una sola línia -- com els comentaris multilínia /* */ es mantenen prop de la seva ubicació original (la ubicació específica depèn de la lògica de processament de comentaris de la llibreria sql-formatter). Tanmateix, l'operació de compressió (Compress) elimina tots els comentaris per produir el SQL d'una sola línia més compacte; copieu els resultats formatats primer si necessiteu mantenir els comentaris abans de la compressió.

Quines dreceres de teclat s'admeten? Quina diferència hi ha entre Mac i Windows/Linux?

S'admeten les dreceres següents (utilitzeu la tecla Cmd a Mac, la tecla Ctrl a Windows/Linux, totes requereixen prémer simultàniament Shift): Shift+Cmd/Ctrl+F formatar; Shift+Cmd/Ctrl+C minificar; Shift+Cmd/Ctrl+V validació sintàctica; Shift+Cmd/Ctrl+O càrrega de fitxer; Shift+Cmd/Ctrl+D descàrrega de fitxer; Shift+Cmd/Ctrl+K netejar contingut. Feu clic a la icona del signe d'interrogació a la barra d'eines per veure la llista de dreceres de teclat en qualsevol moment.

Hi ha un límit de mida per a la càrrega de fitxers SQL? Quins formats de fitxer s'admeten?

Admet la càrrega de fitxers de text en formats .sql i .txt. Teòricament no hi ha un límit estricte de mida de fitxer, però fitxers molt grans (com ara fitxers de bolcat SQL de més d'1 MB) poden tenir problemes de rendiment en el processament del navegador. Es recomana processar consultes individuals o fitxers d'script a petita escala. Per a fitxers SQL molt grans (com ara bolcats complets de bases de dades), dividiu-los en trossos més petits abans de formatar. El contingut del fitxer es llegeix mitjançant l'API FileReader del navegador i mai s'enviarà a cap servidor.

És segura la funció de compartició d'URL? Els servidors poden veure el contingut SQL?

La funció de compartició d'URL utilitza LZ-String per comprimir el contingut SQL i el codifica a la part hash de l'URL (el contingut després de # mai s'envia als servidors amb les sol·licituds HTTP), només es processa localment al navegador. Quan copieu l'enllaç de compartició a una altra persona, el seu navegador analitza el hash i el descomprimeix per mostrar el contingut SQL: durant tot el procés, el SQL no passa per cap servidor. Tanmateix, tingueu en compte que l'enllaç de compartició conté tot el contingut SQL; si el SQL conté informació sensible (com ara contrasenyes, claus, dades personals), no compartiu l'enllaç en canals públics.

Es poden formatar scripts amb múltiples sentències SQL?

Sí. L'eina admet el format per lots de múltiples sentències SQL (per exemple, diverses sentències SELECT/INSERT/UPDATE/CREATE TABLE separades per punt i coma). Podeu controlar l'espaiat entre sentències (0/1/2 línies) mitjançant l'opció "Línies buides entre consultes" al panell de configuració. Carregueu l'exemple SQL "Múltiples sentències" per experimentar el format de múltiples sentències. Cada sentència s'indenta i es formata independentment, separada pel nombre configurat de línies buides entre sentències.

Quina mida de sentències SQL causa retard?

Basat en la implementació pura de JavaScript de la llibreria sql-formatter, processar SQL d'uns quants centenars de línies sol respondre en mil·lisegons en navegadors moderns, sense retard perceptible. Fins i tot procediments emmagatzemats de milers de línies o consultes complexes es completen en menys d'1 segon. Tots els càlculs es completen al fil principal del navegador; fitxers molt grans (com ara bolcats SQL de més de 10.000 línies) poden causar congelacions breus de la interfície; es recomana el processament per lots.

L'eina necessita accés a Internet? Les dades SQL són segures?

Funciona fora de línia un cop carregada la pàgina; el format, la minificació i la validació SQL es completen completament al JavaScript local del navegador, sense enviar les sentències SQL introduïdes a cap servidor extern. No utilitza seguiment de cookies ni recull contingut SQL introduït per l'usuari ni dades de comportament d'ús. Implementat basant-se en la llibreria sql-formatter de codi obert madura, amb lògica de codi transparent i auditable.

Solució de problemes

Què cal fer amb errors de format "Parse error" o "El format SQL ha fallat"?

El formatador analitza SQL basant-se en la llibreria sql-formatter i informa d'errors quan es troba amb sintaxi que no pot analitzar. Les causes i solucions habituals inclouen: 1) Claudàtors no coincidents: comproveu que el nombre de claudàtors esquerres i drets coincideixi, utilitzeu la funció de ressaltat de coincidència de claudàtors de l'editor per ajudar en la comprovació; 2) Cometes de cadena no tancades: comproveu que les cometes simples i dobles apareguin en parelles, les cometes dins de cadenes han de ser escapades (per exemple, '' o \'); 3) Selecció incorrecta del dialecte de base de dades: per exemple, utilitzar l'operador :: de PostgreSQL però seleccionar el dialecte MySQL, canvieu al dialecte correcte; 4) Sentència SQL incompleta: per exemple, només tenir clàusules WHERE sense SELECT FROM; 5) Ús de sintaxi molt específica de bases de dades (com ara alguns fluxos de control de procediments emmagatzemats), proveu de canviar al dialecte més proper o simplifiqueu el fragment SQL abans de formatar.

Els caràcters xinesos o especials es corrompen després de formatar?

Aquesta eina admet completament la codificació UTF-8; els caràcters xinesos i Unicode es mantenen inalterats durant el procés de format. Si apareixen caràcters corromputs, normalment és perquè el SQL que heu enganxat prové de fitxers amb codificació incorrecta (com ara copiar de fitxers codificats en GBK). Assegureu-vos que els fitxers font s'han desat amb codificació UTF-8, o convertiu els fitxers a codificació UTF-8 abans d'enganxar. L'editor CodeMirror del costat del navegador utilitza UTF-8 per defecte i no introdueix conversions de codificació.

No hi ha resposta o es mostra buit després de carregar un fitxer SQL?

La càrrega de fitxers només admet fitxers de text amb extensions .sql i .txt. Si els fitxers són en format binari (com ara fitxers de base de dades .sqlite, documents .doc), apareixeran corromputs o buits després de la càrrega. A més, alguns navegadors tenen restriccions de seguretat en llegir fitxers locals mitjançant JavaScript: assegureu-vos de seleccionar els fitxers fent clic activament al botó de càrrega en lloc d'arrossegar i deixar anar (la càrrega per arrossegar i deixar anar no s'admet actualment). Es recomana que la mida del fitxer no superi 1 MB; si és més gran, l'anàlisi del navegador pot ser lenta.

Algunes paraules clau es converteixen en minúscules/majúscules després de formatar, inconsistent amb l'entrada original?

Aquest és el comportament normal de format. L'opció de cas de paraula clau (keywordCase) està establerta per defecte a UPPER, que converteix uniformement les paraules clau SQL a majúscules. Si voleu mantenir el cas original sense canvis, establiu les opcions de cas per a paraules clau, identificadors, tipus de dades i funcions a "Preservar (preserve)" al panell de configuració: d'aquesta manera, el formatador només ajustarà els salts de línia i la indentació, sense canviar el cas de cap lletra.

Glossari

Dialecte SQL (SQL Dialect)
Extensions i variants del SQL estàndard per diferents sistemes de gestió de bases de dades (SGBD). Per exemple, LIMIT de MySQL, la conversió de tipus :: de PostgreSQL, TOP de SQL Server i ROWNUM d'Oracle són totes sintaxi específiques de dialecte. Seleccionar el dialecte correcte durant el format assegura una anàlisi sintàctica correcta.
Cas de paraula clau (Keyword Case)
L'estratègia de cas per a paraules reservades SQL (SELECT/FROM/WHERE/JOIN, etc.). Majúscules (UPPER) són l'estil tradicional, minúscules (lower) són cada cop més populars en el desenvolupament modern, i preservar (preserve) és per a canvis mínims.
Identificador (Identifier)
Noms d'objectes de base de dades en SQL, incloent noms de bases de dades, noms de taula, noms de columna, àlies, noms d'índex, noms de vista, noms de procediments emmagatzemats, etc. Diferents bases de dades citen els identificadors de manera diferent: MySQL utilitza accents greus, PostgreSQL utilitza cometes dobles, SQL Server utilitza claudàtors quadrats.
Estil d'indentació (Indent Style)
Controla l'alineació de la indentació durant el format SQL. La indentació estàndard utilitza progressió jeràrquica; tabularLeft/tabularRight alineen noms de columna i àlies de manera tabular, proporcionant una millor llegibilitat en pantalles amples però poden produir línies més llargues.
Salt de línia d'operador lògic (Logical Operator Newline)
La posició de salt de línia d'operadors lògics com AND/OR en condicions multilínia. before significa que l'operador és al començament de la línia següent, after significa que l'operador és al final de la línia actual. Diferents equips tenen diferents preferències.
Amplada d'expressió (Expression Width)
El límit de nombre de caràcters per línia única (20-200 caràcters) que activa l'embolcall. Les expressions que superin aquesta amplada s'embolcallen, similar a la configuració printWidth/ruler als editors de codi.
Operadors densos (Dense Operators)
Una opció de format que, quan s'activa, no deixa espais addicionals al voltant dels operadors (=, <, >, +, -, etc.), com ara `WHERE id=1 AND status='active'` en lloc de `WHERE id = 1 AND status = 'active'`, produint una sortida més compacta.
Línies buides entre consultes (Lines Between Queries)
El nombre de línies buides entre múltiples sentències SQL. 0 significa disposició contigua, 1 significa separació d'una línia buida (habitual), 2 significa dues línies buides (estil espaiós), afectant la llegibilitat dels scripts de múltiples sentències.
Minificar/Comprimir SQL (SQL Minify/Compress)
Elimina tots els comentaris i espais en blanc addicionals del SQL formatat, fusionant-los en un format compacte d'una sola línia. Adecuat per a sortides de registres, incrustació de codi, transmissió d'URL, etc.: l'operació inversa del format.
Pretty Print
Sortida de codi o dades en un format altament llegible mitjançant indentació i salts de línia automàtics. SQL Pretty Print és l'embelliment de format SQL, que és el contrari de Minify (compressió).
CodeMirror
El component d'editor de codi del costat del navegador utilitzat per aquesta eina (versió 6), que proporciona ressaltat sintàctic SQL, visualització de números de línia, plegament de codi i altres millores d'edició: una de les solucions d'editor de codi web més utilitzades en la indústria.
sql-formatter
La llibreria de format SQL de codi obert utilitzada al nucli d'aquesta eina, que admet l'anàlisi lèxica i la sortida formatada per a múltiples dialectes SQL: una de les llibreries de format SQL més populars en l'ecosistema frontend.

Llista de dialectes SQL admesos

Aquesta eina admet 20 dialectes SQL de bases de dades: seleccioneu el dialecte que coincideixi amb la vostra base de dades per obtenir resultats de format òptims:

DialecteBase de dadesDescripció
Standard SQLSQL estàndardSintaxi estàndard ANSI SQL, adequada per a escenaris generals i dialectes desconeguts
MySQLMySQL / TiDBLa base de dades relacional de codi obert més popular, identificadors d'accent greu, paginació LIMIT
MariaDBMariaDBFork de MySQL, sintaxi compatible amb MySQL amb funcions esteses
PostgreSQLPostgreSQLBase de dades de codi obert amb moltes funcions, identificadors de cometes dobles, conversió de tipus ::
SQLiteSQLiteBase de dades lleugera incrustada, comunament utilitzada en aplicacions mòbils i navegadors
T-SQLSQL Server / AzureTransact-SQL de Microsoft SQL Server, identificadors de claudàtors quadrats, paginació TOP
PL/SQLOracleExtensió SQL procedimental d'Oracle, paginació ROWNUM, paquets integrats rics
BigQueryGoogle BigQueryMagatzem de dades de Google Cloud, admet tipus imbricats com STRUCT/ARRAY
SnowflakeSnowflakeMagatzem de dades natiu del núvol amb potents capacitats de processament de dades semiestructurades
RedshiftAWS RedshiftMagatzem de dades d'Amazon Web Services, basat en PostgreSQL però amb sintaxi pròpia

Comparació d'estils predefinits de format

4 estils predefinits amb un sol clic per a diferents escenaris d'ús:

PredefinitParaules clauIndentacióOperadorsEspaiat entre consultes
Per defecteUPPEREstàndard 2 espaisEspaiat normal1 línia buida
MinúsculeslowerEstàndard 2 espaisEspaiat normal1 línia buida
CompacteUPPERTabular esquerraMode dens1 línia buida
EspaiósUPPEREstàndard 4 espaisEspaiat normal2 línies buides

Visió general de les dreceres de teclat

Totes les dreceres requereixen prémer simultàniament la tecla modificadora + Shift + la tecla de lletra corresponent:

AccióMacWindows/LinuxDescripció
Format⇧⌘FShift+Ctrl+FEmbellir les sentències SQL, afegir salts de línia i indentació
Minificar⇧⌘CShift+Ctrl+CComprimir SQL en una sola línia, eliminar comentaris i espais en blanc
Validació⇧⌘VShift+Ctrl+VComprovar la correcció sintàctica de SQL
Carrega⇧⌘OShift+Ctrl+OCarregar .sql/.txt des d'un fitxer local
Descarrega⇧⌘DShift+Ctrl+DDesar els resultats com a fitxer .sql
Netejar⇧⌘KShift+Ctrl+KNetejar el contingut d'entrada i sortida

Privacy & Security

Totes les operacions d'aquesta eina de format SQL es completen completament de manera local al vostre navegador: les sentències SQL que introduïu, el dialecte seleccionat i la configuració de format es processen totes al JavaScript del navegador mitjançant la llibreria sql-formatter, sense enviar cap contingut SQL ni configuració a cap servidor extern a la xarxa. La càrrega de fitxers llegeix el contingut del fitxer local mitjançant l'API FileReader d'HTML5, sense transmissió de xarxa. La funció de compartició d'URL codifica el SQL comprimit a la part hash de l'URL (el contingut després de # mai s'envia als servidors amb les sol·licituds HTTP), només es descomprimeix i es mostra localment al navegador. No utilitza seguiment de cookies ni recull contingut SQL introduït per l'usuari ni dades de comportament d'ús. Després de tancar o refrescar la pàgina, el contingut d'entrada i l'estat de configuració es restableixen automàticament (els registres d'historial només es desen a localStorage local).

Authoritative References