Μορφοποιητής SQL
Μορφοποιήστε ερωτήματα SQL για PostgreSQL, MySQL, SQL Server, Oracle, BigQuery και άλλες διαλέκτους, με επιλογές εσοχής και πεζών-κεφαλαίων.
Πώς να μορφοποιήσετε ένα ερώτημα SQL
- Επικολλήστε ένα ή περισσότερα ερωτήματα ή πατήστε Άνοιγμα αρχείου για να φορτώσετε ένα αρχείο
.sql(έως 10 MB). - Επιλέξτε τη Διάλεκτο της βάσης δεδομένων σας, για παράδειγμα PostgreSQL, MySQL ή SQL Server (T-SQL).
- Επιλέξτε πώς θα γράφονται οι Λέξεις-κλειδιά (ΚΕΦΑΛΑΙΑ, πεζά ή Όπως πληκτρολογήθηκαν) και την Εσοχή.
- Ενεργοποιήστε την επιλογή Χωρίς κενά γύρω από τους τελεστές αν προτιμάτε το
a=b+1από τοa = b + 1. - Πατήστε Μορφοποίηση SQL και στη συνέχεια αντιγράψτε ή κατεβάστε το αποτέλεσμα. Αν αλλάξετε μια επιλογή, το ερώτημα μορφοποιείται ξανά.
Το ερώτημα αντιμετωπίζεται μόνο ως κείμενο. Δεν εκτελείται ποτέ και δεν στέλνεται σε βάση δεδομένων ούτε σε διακομιστή.
Τι κάνει ο μορφοποιητής
Το εργαλείο χρησιμοποιεί τη βιβλιοθήκη ανοικτού κώδικα sql-formatter. Χωρίζει κάθε εντολή σε ρήτρες και τοποθετεί τη λέξη-κλειδί κάθε ρήτρας (SELECT, FROM, WHERE, GROUP BY, ORDER BY…) σε δική της γραμμή, με το περιεχόμενο της ρήτρας σε εσοχή από κάτω. Οι στήλες μιας λίστας SELECT μπαίνουν μία ανά γραμμή, οι συνθήκες AND και OR ξεκινούν νέα γραμμή, ενώ τα υποερωτήματα και οι εκφράσεις CASE έχουν εσοχή ανάλογα με το επίπεδο φωλιάσματος. Οι σύντομες εκφράσεις σε παρενθέσεις μένουν σε μία γραμμή. Αν υπάρχουν πολλές εντολές χωρισμένες με ερωτηματικό, διαχωρίζονται με μια κενή γραμμή.
Αλλάζουν μόνο τα κενά και η χρήση πεζών-κεφαλαίων. Τα αλφαριθμητικά, τα αναγνωριστικά σε εισαγωγικά και τα σχόλια διατηρούνται ακριβώς όπως είναι, επομένως το μορφοποιημένο ερώτημα επιστρέφει το ίδιο αποτέλεσμα με το αρχικό.
Γιατί μετράει η διάλεκτος
Οι βάσεις δεδομένων SQL έχουν κοινό πυρήνα αλλά διαφέρουν σε λεπτομέρειες, και ο μορφοποιητής πρέπει να τις γνωρίζει για να διαβάσει σωστά το ερώτημα:
- τα αναγνωριστικά μπαίνουν σε
"διπλά εισαγωγικά"στην τυπική SQL και στην PostgreSQL, σε`ανάποδους τόνους`στις MySQL, MariaDB και BigQuery, και σε[αγκύλες]στον SQL Server· - τελεστές όπως το
->>και οι μετατροπές τύπου::της PostgreSQL ή η πρόσβαση διαδρομής:του Snowflake υπάρχουν μόνο σε ορισμένες διαλέκτους· - οι δεσμευμένες θέσεις παραμέτρων διαφέρουν:
?,$1,:nameή@name· - κάθε διάλεκτος έχει τις δικές της δεσμευμένες λέξεις και συναρτήσεις, στις οποίες εφαρμόζεται η επιλογή Λέξεις-κλειδιά.
Αν δείτε το μήνυμα «Δεν ήταν δυνατή η ανάλυση του ερωτήματος», ελέγξτε πρώτα ότι η επιλεγμένη διάλεκτος ταιριάζει με τη βάση σας. Το σφάλμα δείχνει τη γραμμή και τη στήλη όπου σταμάτησε η ανάλυση. Η Τυπική SQL είναι η πιο αυστηρή επιλογή: όποτε γίνεται, διαλέξτε την πραγματική σας βάση δεδομένων.
Συμβουλές για τα πεζά-κεφαλαία και το στιλ
Οι λέξεις-κλειδιά με κεφαλαία παραμένουν η πιο συνηθισμένη σύμβαση, επειδή ξεχωρίζουν με την πρώτη ματιά τη γλώσσα από τα ονόματα πινάκων και στηλών. Τα πεζά προτιμώνται από ομάδες που τα βρίσκουν ευανάγνωστα, ενώ η επιλογή Όπως πληκτρολογήθηκαν αφήνει άθικτη τη δική σας επιλογή. Τα ονόματα πινάκων, στηλών και συναρτήσεων δεν αλλάζουν ποτέ: μόνο οι δεσμευμένες λέξεις ακολουθούν την επιλογή. Στα μεγάλα αρχεία, η συνεπής μορφοποίηση διευκολύνει επίσης πολύ τον έλεγχο των διαφορών ανάμεσα στις εκδόσεις.
Συχνές ερωτήσεις
Ποιες διάλεκτοι υποστηρίζονται;
Τυπική SQL, PostgreSQL, MySQL, MariaDB, SQLite, SQL Server (T-SQL), Oracle (PL/SQL), Google BigQuery, Snowflake, Amazon Redshift, IBM Db2, Db2 for i, Apache Hive, Spark SQL, Trino/Presto, DuckDB, ClickHouse, SingleStoreDB, TiDB και Couchbase N1QL.
Ελέγχει το εργαλείο αν το ερώτημά μου είναι έγκυρο;
Όχι. Ελέγχει ότι το ερώτημα μπορεί να διαβαστεί στην επιλεγμένη διάλεκτο, όχι ότι οι πίνακες ή οι στήλες υπάρχουν ή ότι το ερώτημα θα εκτελεστεί. Αυτό μπορεί να το επιβεβαιώσει μόνο η βάση δεδομένων σας.
Μπορεί να μορφοποιήσει αποθηκευμένες διαδικασίες;
Εν μέρει. Οι εντολές μέσα στις διαδικασίες μορφοποιούνται, αλλά τα διαδικαστικά τμήματα (BEGIN … END, βρόχοι, DECLARE) διατάσσονται πιο απλά απ’ ό,τι σε ένα ειδικό περιβάλλον ανάπτυξης.
Στέλνεται το ερώτημά μου σε διακομιστή;
Όχι. Η μορφοποίηση γίνεται στο πρόγραμμα περιήγησής σας, επομένως τα ερωτήματα με ονόματα πινάκων ή δεδομένα μένουν στον υπολογιστή σας.
Γιατί το σχόλιό μου μετακινήθηκε;
Τα σχόλια διατηρούνται, αλλά ένα σχόλιο στο τέλος μιας γραμμής μπορεί να μετακινηθεί μαζί με το στοιχείο που ακολουθεί, όταν αυτό περνά σε νέα γραμμή.
Σχετικά εργαλεία
- Μορφοποίηση και επικύρωση JSON Δωρεάν μορφοποίηση και επικύρωση JSON που κάνει beautify, minify και έλεγχο του JSON στο πρόγραμμα περιήγησής σας, με συντακτικά σφάλματα ανά γραμμή και στήλη.
- Μορφοποίηση και ελαχιστοποίηση JavaScript Μορφοποιήστε ελαχιστοποιημένη JavaScript, ελαχιστοποιήστε την με το Terser ή ελέγξτε τη σύνταξή της με γραμμή και στήλη σφάλματος, στο πρόγραμμα περιήγησης.
- Μορφοποιητής XML Μορφοποιήστε, ελαχιστοποιήστε και επικυρώστε XML στο πρόγραμμα περιήγησής σας. Τα σφάλματα αναφέρονται με γραμμή και στήλη. Τα αρχεία δεν μεταφορτώνονται.