Alat Pemformat SQL

0 Karakter

Alat Pemformat SQL GeekFormat dengan cepat menghias dan mengatur pernyataan kueri SQL yang berantakan. Mendukung 20 dialek basis data termasuk MySQL, PostgreSQL, SQLite, SQL Server, Oracle, dll., dengan opsi pemformatan yang dapat disesuaikan seperti huruf besar/kecil kata kunci, gaya indentasi, posisi baris baru operator, lebar ekspresi. Menyediakan 4 gaya prasetel satu klik dengan fungsi pemadatan SQL dan validasi sintaksis bawaan, mendukung unggah/unduh berkas, berbagi URL, pintasan keyboard. Menyediakan penyorotan sintaksis dan tata letak panel yang dapat disesuaikan berbasis editor CodeMirror 6 dengan pemformatan otomatis waktu nyata setelah input. Semua pemrosesan terjadi secara lokal di browser Anda—pernyataan SQL tidak pernah diunggah ke server.

Rekomendasi Terkait

Tentang Pemformatan SQL

Pemformatan SQL (SQL Formatting / SQL Beautification) merujuk pada penyesuaian karakter spasi (baris baru, indentasi, spasi) dan huruf besar/kecil kata kunci pernyataan SQL melalui alat otomatis untuk memberikan struktur tata letak yang konsisten dan mudah dibaca. Sebagai bahasa kueri deklaratif, kueri SQL yang kompleks sering kali melibatkan banyak klausa seperti JOIN multi-tabel, kueri sub berlapis, banyak kondisi WHERE, pengelompokan GROUP BY, penyaringan HAVING, pengurutan ORDER BY, dll. Tanpa pemformatan, semua konten menumpuk dalam satu baris atau dengan indentasi kacau akan berdampak serius pada keterbacaan dan efisiensi pemeliharaan. SQL yang telah diformat menempatkan setiap klausa di barisnya sendiri melalui baris baru dan indentasi yang wajar, mengekspresikan tingkat berlapis melalui indentasi, memungkinkan pembaca memahami struktur kueri dengan cepat.

Mengapa pemformatan SQL penting? Dalam lingkungan kolaborasi tim, pengembang yang berbeda memiliki preferensi gaya pengkodean yang berbeda—beberapa lebih suka kata kunci huruf besar, yang lain huruf kecil; beberapa menggunakan indentasi 2 spasi, yang lain menggunakan 4 spasi atau Tab; beberapa menempatkan AND di awal baris, yang lain di akhir baris. Perbedaan gaya ini sendiri tidak memengaruhi eksekusi SQL tetapi menghasilkan sejumlah besar diff yang tidak berarti selama Tinjauan Kode (Code Review), mengharuskan peninjau membedakan antara perubahan logika nyata dan hanya penyesuaian pemformatan. Standar pemformatan SQL yang seragam dan alat pemformatan otomatis menghilangkan perdebatan gaya, memungkinkan tim fokus pada logika bisnis itu sendiri.

Aturan inti pemformatan SQL biasanya mencakup aspek-aspek berikut: Pertama, huruf besar/kecil kata kunci—kata cadangan SQL seperti SELECT, FROM, WHERE, JOIN, ON, GROUP BY, ORDER BY, HAVING, LIMIT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP biasanya berhuruf besar untuk dibedakan dari pengidentifikasi (atau berhuruf kecil secara seragam sesuai standar tim); Kedua, baris baru klausa—setiap klausa utama (SELECT/FROM/WHERE/GROUP BY/ORDER BY, dll.) di barisnya sendiri; Ketiga, perataan nama kolom—beberapa nama kolom dalam daftar SELECT masing-masing menempati satu baris dan disejajarkan secara vertikal; Keempat, tingkat indentasi—kueri sub, kondisi JOIN, ekspresi CASE berlapis, dll., mencerminkan hierarki melalui peningkatan indentasi; Kelima, posisi operator—operator logis seperti AND/OR ditempatkan secara seragam di awal atau akhir baris.

Pemformatan SQL untuk dialek basis data yang berbeda memiliki kekhasannya masing-masing. MySQL menggunakan backtick (`) untuk mengutip pengidentifikasi, PostgreSQL menggunakan kutip ganda ("), SQL Server menggunakan kurung siku ([]); MySQL menggunakan LIMIT untuk paginasi, PostgreSQL mendukung LIMIT/OFFSET, SQL Server menggunakan TOP atau OFFSET/FETCH, Oracle menggunakan ROWNUM; PostgreSQL memiliki operator tipe cast ::, MySQL memiliki escape backtick, SQL Server memiliki pengidentifikasi kurung siku. Perbedaan dialek ini mengharuskan pemformat mengenali elemen sintaksis khusus untuk basis data tertentu, jika tidak sintaksis khusus dapat dinilai salah sebagai kesalahan atau kata kunci terbagi salah. Alat ini diimplementasikan berdasarkan pustaka sql-formatter, memberikan dukungan sintaksis khusus untuk 20 dialek SQL utama.

Pemadatan SQL (SQL Minification) adalah kebalikan dari pemformatan dan sangat berguna dalam skenario tertentu. SQL yang dicetak dalam log aplikasi, SQL yang dihasilkan oleh kerangka kerja ORM (seperti Hibernate, MyBatis, Django ORM, SQLAlchemy), SQL yang ditangkap oleh alat pemantauan kinerja basis data—ini sering kali dalam format padat satu baris tanpa baris baru, yang sangat tidak ramah untuk pemecahan masalah—perlu diformat terlebih dahulu agar dapat dibaca. Sebaliknya, saat perlu menyematkan SQL ke dalam string kode (seperti penggabungan string di Java/Python/JavaScript), menulis ke berkas konfigurasi, mengirimkan melalui parameter URL, atau berbagi di alat obrolan yang tidak mendukung teks multi-baris, memadatkan menjadi satu baris menghindari masalah pemformatan yang disebabkan oleh baris baru dan indentasi.

Memilih gaya pemformatan yang sesuai memerlukan pertimbangan standar tim dan skenario penggunaan. Gaya kata kunci huruf besar adalah konvensi tradisional SQL—selama era percetakan, kata kunci huruf besar membuat SQL tulisan tangan atau yang dihasilkan mesin tik lebih mudah dibaca, dan banyak tim serta organisasi masih menggunakannya hingga saat ini. Gaya kata kunci huruf kecil semakin populer di platform kode modern seperti GitHub karena huruf kecil secara visual lebih lembut dan, dengan penyorotan sintaksis di editor modern, tidak lagi memerlukan huruf besar/kecil untuk membedakan kata kunci. Lebar indentasi 2 spasi lebih umum di kalangan pengembang frontend, 4 spasi lebih umum di kalangan pengembang backend Java/C#. Indentasi Tab memungkinkan pengembang yang berbeda menyesuaikan lebar tampilan di editor. Menempatkan operator logis AND/OR di awal baris memudahkan pemindaian setiap kondisi saat membaca daftar kondisi panjang; menempatkan di akhir baris lebih sesuai dengan kebiasaan membaca bahasa Inggris.

Prinsip implementasi alat pemformatan SQL terutama didasarkan pada analisis leksikal (Tokenization) dan penguraian sintaksis. Pustaka seperti sql-formatter pertama-tama menguraikan string SQL menjadi serangkaian token (kata kunci, pengidentifikasi, literal, operator, tanda baca, komentar, dll.), kemudian menyusun ulang token ini sesuai aturan sintaksis (dialek yang berbeda memiliki kumpulan aturan yang berbeda), menyisipkan baris baru dan indentasi di posisi yang sesuai. Berbeda dengan pemformat kode umum (seperti Prettier), pemformat SQL perlu memahami struktur tata bahasa khusus SQL (seperti kondisi JOIN...ON, ekspresi CASE WHEN...END, kurung kueri sub berlapis) untuk indentasi yang benar, bukan hanya mengandalkan pencocokan kurung kurawal atau kurung.

Poin-poin berikut perlu diperhatikan saat menggunakan alat pemformatan SQL: Pertama, pemformatan tidak memverifikasi kebenaran semantik SQL—SQL dengan sintaksis benar tetapi kesalahan logika (seperti kondisi JOIN yang salah, kondisi WHERE yang hilang) tetap salah setelah diformat; pemformatan hanya meningkatkan tata letak, bukan logika; Kedua, alat pemformatan mungkin dalam kasus tepi yang jarang menghasilkan hasil yang berbeda dari SQL asli dalam skenario sensitif spasi (seperti spasi dalam konstanta string, posisi komentar tertentu); verifikasi sederhana setelah pemformatan disarankan; Ketiga, jangan mengeksekusi SQL yang dihasilkan oleh alat pemformatan langsung di produksi tanpa pengujian, terutama SQL yang berisi parameter dinamis; Keempat, untuk SQL yang berisi data sensitif (kata sandi, kunci, PII), gunakan alat pemformatan lokal (seperti alat ini) daripada alat daring untuk menghindari risiko kebocoran data.

Kasus penggunaan

  • Mengatur prosedur tersimpan SQL besar yang tidak terformat dan kueri JOIN kompleks saat mengambil alih proyek warisan untuk memahami logika bisnis dengan cepat
  • Menstandarkan gaya SQL sebelum tinjauan kode tim untuk menghilangkan kebisingan diff yang disebabkan oleh preferensi pemformatan pribadi dan fokus pada tinjauan logika
  • Memformat SQL satu baris yang dipadatkan yang disalin dari log atau konsol agar lebih mudah dibaca dan memecahkan masalah
  • Memformat contoh SQL saat menulis dokumentasi teknis dan blog untuk meningkatkan profesionalisme dan keterbacaan saat disematkan dalam dokumen
  • Memformat ulang SQL yang diekspor dari klien basis data dengan pemformatan berantakan ke gaya standar tim sebelum melakukan commit kode
  • Memformat pernyataan demonstrasi SQL untuk digunakan dalam PPT dan penjelasan papan tulis saat mempersiapkan wawancara atau presentasi teknis
  • Memformat kueri sub berlapis yang berantakan untuk menemukan masalah struktural seperti kurung yang tidak cocok atau kata kunci yang hilang saat memecahkan kesalahan SQL
  • Log SQL yang dihasilkan oleh kerangka kerja ORM sering kali dalam format padat tanpa baris baru; formatlah untuk memudahkan analisis kueri yang benar-benar dieksekusi
  • Memformat pernyataan CREATE TABLE dan INSERT untuk meningkatkan kemudahan pemeliharaan saat mengembangkan skrip migrasi data
  • Menstandarkan pemformatan sebelum membandingkan versi SQL di berbagai versi untuk menghindari perbedaan pemformatan murni mengganggu tinjauan kode
  • Memformat kueri contoh saat mempelajari SQL untuk memahami hubungan hierarkis JOIN, kueri sub, dan GROUP BY melalui indentasi dan baris baru yang jelas
  • Memformat cuplikan SQL sebelum berbagi dengan rekan kerja melalui tautan URL—penerima melihat hasil pemformatan yang identik segera setelah membuka

Cara Penggunaan

  1. Pilih dialek basis data (default MySQL, mendukung 20 dialek SQL) untuk memastikan pemformat mengenali sintaksis dengan benar
  2. Tempelkan pernyataan SQL yang perlu diformat ke area editor kiri, atau klik tombol unggah untuk mengimpor berkas .sql/.txt, atau muat SQL contoh dari menu contoh
  3. Klik tombol format (Shift+Cmd/Ctrl+F) atau tunggu pemformatan otomatis (dipicu otomatis 800ms setelah input), dengan hasil pemformatan ditampilkan secara instan di sebelah kanan
  4. Untuk menyesuaikan pemformatan, klik tombol pengaturan untuk memperluas panel konfigurasi, sesuaikan opsi seperti huruf besar/kecil kata kunci, indentasi, baris baru, atau pilih gaya prasetel; untuk pemadatan satu baris, klik tombol padatkan
  5. Klik tombol salin untuk menyalin hasil, atau klik tombol unduh untuk menyimpan sebagai berkas .sql, atau klik tombol bagikan untuk membuat tautan URL yang berisi konten SQL

Fitur

  • Kompatibilitas 20 dialek basis data: Mendukung pengenalan sintaksis dan pemformatan untuk 20 dialek SQL termasuk Standard SQL, MySQL, MariaDB, TiDB, PostgreSQL, SQLite, BigQuery, Snowflake, Redshift, DB2, PL/SQL (Oracle), T-SQL (SQL Server), Spark SQL, Hive, Trino, ClickHouse, DuckDB, dan banyak lagi
  • Kontrol huruf besar/kecil kata kunci: Tiga mode untuk kata kunci seperti SELECT/FROM/WHERE/JOIN: huruf besar (UPPER), huruf kecil (lower), atau pertahankan asli (preserve), dengan konfigurasi terpisah untuk tipe data dan nama fungsi
  • Kontrol huruf besar/kecil pengidentifikasi: Pengidentifikasi seperti nama tabel, nama kolom, alias mendukung huruf besar, huruf kecil, atau pertahankan asli, menyesuaikan dengan standar pengkodean tim yang berbeda
  • Gaya indentasi dapat dipilih: Tersedia tiga gaya indentasi: indentasi standar, perataan kiri tabular (tabularLeft), perataan kanan tabular (tabularRight) untuk memenuhi preferensi membaca yang berbeda
  • Konfigurasi indentasi fleksibel: Pilih lebar indentasi dari 2 spasi, 4 spasi, atau karakter Tab; atur jumlah baris kosong antara pernyataan kueri menjadi 0/1/2 baris
  • Baris baru operator logis: Konfigurasikan apakah operator logis seperti AND/OR berpindah baris sebelum (before) atau sesudah (after) operator untuk mencocokkan gaya kode tim Anda
  • Kontrol lebar ekspresi: Ambang lebar baris yang dapat disesuaikan untuk pembungkusan ekspresi (20-200 karakter), secara otomatis membungkus baris yang melebihi lebar ini untuk mengontrol panjang kode satu baris
  • Mode operator padat: Saat diaktifkan, tidak ada spasi tambahan di sekitar operator untuk hasil pemformatan yang lebih ringkas, cocok untuk skenario SQL tersemat
  • Baris baru sebelum titik koma: Secara opsional sisipkan baris baru sebelum titik koma akhir pernyataan, menempatkan titik koma di barisnya sendiri untuk identifikasi batas pernyataan yang cepat
  • 4 gaya prasetel: Beralih satu klik antara prasetel Default (kata kunci UPPER + indentasi 2 spasi), Lowercase (semua kata kunci huruf kecil), Compact (perataan tabular + operator padat), Spacious (indentasi 4 spasi + baris kosong ganda) tanpa penyesuaian manual
  • Fungsi pemadatan SQL: Padatkan SQL menjadi satu baris dengan satu klik, secara otomatis menghapus komentar, spasi berlebih, dan baris baru—cocok untuk output log, penggabungan kode, dan penyematan dokumen
  • Fungsi validasi sintaksis: Validasi sintaksis SQL dasar, menampilkan pesan kesalahan saat pemformatan gagal untuk membantu menemukan masalah sintaksis
  • SQL contoh bawaan: Menyediakan empat set SQL contoh: kueri dasar, kueri JOIN kompleks, batch banyak pernyataan, pernyataan CREATE TABLE untuk pengalaman pemformatan cepat
  • Unggah/unduh berkas: Unggah berkas .sql/.txt untuk mengimpor SQL secara langsung; unduh hasil pemformatan sebagai berkas .sql untuk disimpan
  • Berbagi URL: Enkode SQL ke dalam hash URL menggunakan kompresi LZ-String—salin tautan untuk berbagi konfigurasi pemformatan dan konten SQL
  • Pemformatan otomatis waktu nyata: Pemformatan otomatis dengan debounce 800ms setelah input SQL, menampilkan hasil secara instan tanpa perlu mengklik tombol berulang kali
  • Pintasan keyboard: Shift+Cmd/Ctrl+F untuk memformat, Shift+Cmd/Ctrl+C untuk memadatkan, Shift+Cmd/Ctrl+V untuk memvalidasi, Shift+Cmd/Ctrl+O untuk mengunggah, Shift+Cmd/Ctrl+D untuk mengunduh, Shift+Cmd/Ctrl+K untuk menghapus
  • Editor CodeMirror: Editor dengan penyorotan sintaksis SQL berbasis CodeMirror 6 dengan penyesuaian lebar panel kiri/kanan yang dapat diseret, penyesuaian ukuran font, dan panel riwayat
  • Salin hasil satu klik: Salin SQL yang telah diformat atau dipadatkan ke papan klip dengan satu klik untuk ditempelkan langsung ke klien basis data atau kode
  • Pemrosesan murni lokal di browser: Semua pemformatan SQL diselesaikan dalam JavaScript browser berbasis pustaka sql-formatter; pernyataan SQL tidak pernah diunggah ke server mana pun, menjamin keamanan data

Pertanyaan Umum

Apakah pemformatan SQL mengubah logika kueri? Apakah SQL yang telah diformat dapat dieksekusi langsung?

Tidak mengubah logika kueri. Pemformatan SQL hanya menyesuaikan karakter spasi (baris baru, indentasi, spasi) dan huruf besar/kecil kata kunci; tidak mengubah pengidentifikasi, nilai, operator, panggilan fungsi, atau struktur kueri dalam SQL. SQL yang telah diformat secara semantik setara dengan SQL asli dan dapat disalin langsung ke klien basis data seperti MySQL Workbench, pgAdmin, DBeaver, Navicat untuk dieksekusi. Namun, verifikasi di lingkungan pengujian disarankan sebelum eksekusi di produksi.

Dialek basis data apa saja yang didukung? Bagaimana dengan perbedaan sintaksis SQL antar basis data?

Mendukung 20 dialek 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). Basis data yang berbeda memiliki perbedaan dalam sintaksis paginasi (LIMIT vs LIMIT/OFFSET vs TOP vs ROWNUM), penggabungan string, fungsi tanggal, pengutipan pengidentifikasi (backtick vs kutip ganda vs kurung siku), dll. Memilih dialek yang benar memastikan pemformat mengenali kata kunci dan nama fungsi dengan benar dan menghindari kesalahan pemformatan fungsi khusus dialek.

Apa itu pemadatan SQL? Apa bedanya dengan pemformatan?

Pemadatan SQL (Minify) adalah kebalikan dari pemformatan: menghapus semua komentar (termasuk komentar multi-baris /* */ dan komentar satu baris --), menggabungkan karakter spasi berurutan menjadi spasi tunggal, menghapus spasi berlebih di sekitar kurung/koma/titik koma/operator, menghasilkan SQL satu baris yang ringkas. Pemadatan cocok untuk skenario seperti menyematkan SQL dalam string kode, menulis ke berkas log, mengirimkan melalui parameter URL, berbagi di jendela obrolan untuk menghindari kebingungan baris baru. Sebaliknya, pemformatan menambahkan baris baru dan indentasi yang sesuai untuk meningkatkan keterbacaan.

Kapan pemformatan otomatis dipicu? Apakah dapat dinonaktifkan?

Setelah memasukkan atau memodifikasi SQL di area editor kiri, pemformatan akan dipicu secara otomatis setelah penundaan debounce 800ms (dengan syarat pemformatan sebelumnya tidak memiliki kesalahan sintaksis). Ini untuk menampilkan hasil pemformatan secara instan setelah Anda berhenti mengetik. Jika Anda lebih suka kontrol manual, cukup klik tombol format di bilah alat tanpa menunggu pemicu otomatis. Saat ini tidak ada sakelar terpisah untuk menonaktifkan pemformatan otomatis, tetapi tidak akan terpicu berulang kali selama konten input tidak dimodifikasi.

Apa yang harus dilakukan saat pemformatan gagal dengan peringatan kesalahan sintaksis?

Pemformat melaporkan kesalahan saat menemui sintaksis SQL yang tidak dapat diurai. Penyebab umum meliputi: 1) Kurung yang tidak cocok—periksa apakah jumlah kurung kiri dan kanan cocok; 2) String tidak tertutup—periksa apakah kutip tunggal/kutip ganda muncul berpasangan, kutip dalam string perlu diescape (seperti '' atau \'); 3) Pemilihan dialek basis data yang salah—misalnya, menggunakan sintaksis tipe cast :: khusus PostgreSQL tetapi memilih dialek MySQL; 4) Fragmen SQL tidak lengkap—misalnya, hanya ada kondisi WHERE tanpa SELECT FROM. Pesan kesalahan menunjukkan lokasi masalah dan alasan yang dilaporkan oleh parser, yang dapat digunakan untuk menemukan masalah. Anda juga dapat mengklik tombol validasi (Shift+Cmd/Ctrl+V) terlebih dahulu untuk memeriksa sintaksis.

Bagaimana cara memilih antara mode huruf besar, huruf kecil, dan pertahankan huruf besar/kecil kata kunci?

Kata kunci huruf besar (UPPER) adalah gaya pengkodean SQL yang paling tradisional dan populer—kata kunci huruf besar seperti SELECT/FROM/WHERE/JOIN menciptakan perbedaan visual dengan nama tabel/kolom, memungkinkan lokasi struktur SQL yang cepat dalam basis kode besar. Kata kunci huruf kecil lebih cocok untuk lingkungan IDE modern (editor modern memiliki penyorotan sintaksis, tidak lagi mengandalkan perbedaan huruf besar/kecil) dengan tampilan visual yang lebih seragam. Pertahankan (preserve) membiarkan huruf besar/kecil input Anda tidak berubah, cocok untuk penyesuaian pemformatan minimal pada kode yang ada. Strategi huruf besar/kecil untuk kata kunci, pengidentifikasi (nama tabel/kolom), tipe data (VARCHAR/INT/BIGINT), dan nama fungsi (COUNT/SUM/COALESCE) dapat dikonfigurasi secara independen.

Apa perbedaan antara mode perataan Tabular dan indentasi standar?

Indentasi standar (standard) menggunakan indentasi hierarkis tradisional dengan jumlah spasi tetap untuk setiap klausa. Mode perataan kiri/kanan tabular menyelaraskan nama kolom dalam daftar SELECT, ekspresi dalam kondisi WHERE, dll., berdasarkan kolom, menciptakan efek visual seperti tabel. Misalnya, beberapa nama kolom setelah SELECT disejajarkan secara vertikal, dan alias AS juga disejajarkan ke posisi kolom yang sama. Mode ini sangat intuitif saat membaca kueri multi-kolom pada monitor layar lebar tetapi dapat menyebabkan baris yang terlalu panjang pada layar sempit.

Bagaimana cara beralih dengan cepat antara gaya SQL standar tim dan preferensi pribadi?

Gunakan tombol prasetel di panel pengaturan: Default (kata kunci UPPER + indentasi standar 2 spasi), Lowercase (semua kata kunci huruf kecil), Compact (perataan tabularLeft + operator padat), Spacious (indentasi 4 spasi + baris kosong ganda antar kueri). Jika tim Anda memiliki standar khusus, sesuaikan opsi secara manual dan format. Penyimpanan prasetel kustom saat ini tidak didukung, tetapi dengan jumlah opsi konfigurasi yang terbatas, penyesuaian cepat sangat nyaman.

Apakah SQL yang telah diformat kehilangan komentar?

Operasi Format (Format) mempertahankan komentar—baik komentar satu baris -- maupun komentar multi-baris /* */ dipertahankan di dekat posisi aslinya (posisi spesifik tergantung pada logika pemrosesan komentar pustaka sql-formatter). Namun, operasi Padatkan (Compress) menghapus semua komentar untuk menghasilkan SQL satu baris yang paling ringkas; salin hasil pemformatan terlebih dahulu jika komentar perlu dipertahankan sebelum pemadatan.

Pintasan keyboard apa saja yang didukung? Apa perbedaan antara Mac dan Windows/Linux?

Mendukung pintasan berikut (gunakan tombol Cmd di Mac, tombol Ctrl di Windows/Linux, semuanya perlu menahan Shift secara bersamaan): Shift+Cmd/Ctrl+F Format; Shift+Cmd/Ctrl+C Padatkan; Shift+Cmd/Ctrl+V Validasi sintaksis; Shift+Cmd/Ctrl+O Unggah berkas; Shift+Cmd/Ctrl+D Unduh berkas; Shift+Cmd/Ctrl+K Hapus konten. Klik ikon tanda tanya di bilah alat untuk melihat daftar pintasan kapan saja.

Apakah ada batasan ukuran untuk unggahan berkas SQL? Format berkas apa saja yang didukung?

Mendukung pengunggahan berkas teks dalam format .sql dan .txt. Secara teoretis tidak ada batasan keras pada ukuran berkas, tetapi pemrosesan browser terhadap berkas yang sangat besar (misalnya, berkas cadangan SQL melebihi 1MB) mungkin memiliki masalah kinerja. Disarankan memproses kueri individu atau berkas skrip skala kecil. Untuk berkas SQL yang sangat besar (misalnya, cadangan basis data lengkap), bagi menjadi segmen yang lebih kecil sebelum diformat. Konten berkas dibaca melalui API FileReader browser dan tidak pernah diunggah ke server.

Apakah fitur berbagi URL aman? Dapatkah server melihat konten SQL?

Fitur berbagi URL memadatkan konten SQL menggunakan LZ-String dan mengenkodenya ke bagian hash URL (konten setelah #). Bagian hash URL memiliki karakteristik bahwa ia tidak pernah dikirim ke server dengan permintaan HTTP dan hanya diproses secara lokal di browser. Saat Anda menyalin tautan berbagi ke orang lain, browser mereka mengurai hash dan mendekompresinya untuk menampilkan konten SQL—SQL tidak pernah melewati server mana pun selama proses tersebut. Namun, perhatikan bahwa tautan berbagi berisi konten SQL lengkap; jika SQL berisi informasi sensitif (seperti kata sandi, kunci, data pribadi), jangan bagikan tautan di saluran publik.

Dapatkah skrip yang berisi banyak pernyataan SQL diformat?

Ya. Alat ini mendukung pemformatan batch banyak pernyataan SQL (misalnya, banyak pernyataan SELECT/INSERT/UPDATE/CREATE TABLE yang dipisahkan oleh titik koma). Anda dapat mengontrol jarak antar pernyataan (0/1/2 baris) melalui opsi "Jumlah Baris Kosong Antar Kueri" di panel pengaturan. Muat SQL contoh "Banyak pernyataan" untuk merasakan pemformatan banyak pernyataan. Setiap pernyataan diindentasi dan diformat secara independen, dipisahkan antar pernyataan dengan jumlah baris kosong yang dikonfigurasi.

Ukuran pernyataan SQL apa yang menyebabkan kelambatan?

Berdasarkan implementasi JavaScript murni dari pustaka sql-formatter, pemrosesan SQL dalam beberapa ratus baris biasanya merespons dalam milidetik di browser modern tanpa kelambatan yang nyata. Bahkan prosedur tersimpan atau kueri kompleks ribuan baris selesai dalam waktu 1 detik. Semua perhitungan selesai di utas utama browser; berkas yang sangat besar (misalnya, cadangan SQL melebihi 10.000 baris) dapat menyebabkan pembekuan antarmuka singkat—pemrosesan batch disarankan.

Apakah alat ini memerlukan akses internet? Apakah data SQL aman?

Bekerja secara luring setelah halaman dimuat; pemformatan, pemadatan, dan validasi SQL semuanya selesai dalam JavaScript lokal browser tanpa mengirimkan pernyataan SQL yang Anda masukkan ke server eksternal mana pun. Tidak menggunakan pelacakan Cookie atau mengumpulkan konten SQL yang dimasukkan pengguna. Diimplementasikan berdasarkan pustaka sql-formatter sumber terbuka yang matang dengan logika kode yang transparan dan dapat diaudit.

Pemecahan Masalah

Apa yang harus dilakukan tentang kesalahan pemformatan "Parse error" atau "Pemformatan SQL gagal"?

Pemformat melakukan penguraian SQL berdasarkan pustaka sql-formatter dan melaporkan kesalahan saat menemui sintaksis yang tidak dikenali. Penyebab dan solusi umum: 1) Kurung yang tidak cocok—periksa apakah jumlah kurung kiri dan kanan cocok, gunakan fitur penyorotan pencocokan kurung editor untuk membantu pemeriksaan; 2) Kutip string tidak tertutup—periksa apakah kutip tunggal, kutip ganda muncul berpasangan, kutip dalam string perlu diescape (seperti '' atau \'); 3) Pemilihan dialek basis data yang salah—misalnya, menggunakan operator :: PostgreSQL tetapi memilih dialek MySQL, beralih ke dialek yang benar; 4) Pernyataan SQL tidak lengkap—misalnya, hanya ada klausa WHERE tanpa SELECT FROM; 5) Menggunakan sintaksis khusus basis data yang sangat khusus (seperti alur kontrol prosedur tersimpan tertentu), coba beralih ke dialek terdekat, atau sederhanakan fragmen SQL sebelum diformat.

Karakter Tiongkok atau karakter khusus menjadi kacau setelah pemformatan?

Alat ini sepenuhnya mendukung pengodean UTF-8; karakter Tiongkok dan Unicode tetap tidak berubah selama proses pemformatan. Jika muncul karakter kacau, biasanya karena SQL yang Anda tempel berasal dari berkas dengan pengodean yang salah (seperti menyalin dari berkas pengodean GBK). Pastikan berkas sumber disimpan menggunakan pengodean UTF-8, atau konversikan berkas ke pengodean UTF-8 sebelum menempel. Editor CodeMirror sisi browser default menggunakan UTF-8 dan tidak menimbulkan konversi pengodean.

Tidak ada respons atau tampilan kosong setelah mengunggah berkas SQL?

Unggahan berkas hanya mendukung berkas teks dengan ekstensi .sql dan .txt. Jika berkas berformat biner (seperti berkas basis data .sqlite, dokumen .doc), berkas akan menampilkan karakter kacau atau kosong setelah diunggah. Selain itu, beberapa browser memiliki batasan keamanan dalam membaca berkas lokal melalui JavaScript—pastikan Anda memilih berkas dengan secara aktif mengklik tombol unggah daripada seret dan lepas (unggahan seret dan lepas saat ini tidak didukung). Ukuran berkas disarankan tidak melebihi 1MB; melebihi dapat menyebabkan penguraian browser lambat.

Beberapa kata kunci menjadi huruf kecil/huruf besar setelah pemformatan, tidak konsisten dengan input asli?

Ini adalah perilaku pemformatan normal. Opsi huruf besar/kecil kata kunci (keywordCase) defaultnya UPPER, yang mengonversi kata kunci SQL menjadi huruf besar secara seragam. Jika Anda ingin mempertahankan huruf besar/kecil asli tidak berubah, atur opsi huruf besar/kecil untuk kata kunci, pengidentifikasi, tipe data, fungsi menjadi "pertahankan (preserve)" di panel pengaturan—dengan cara ini pemformat hanya menyesuaikan baris baru dan indentasi tanpa mengubah huruf besar/kecil karakter apa pun.

Glosarium

Dialek SQL (SQL Dialect)
Ekstensi dan varian SQL standar oleh sistem manajemen basis data (DBMS) yang berbeda. Misalnya, LIMIT MySQL, tipe cast :: PostgreSQL, TOP SQL Server, ROWNUM Oracle semuanya adalah sintaksis khusus dialek. Pemilihan dialek yang benar selama pemformatan memastikan penguraian sintaksis yang benar.
Huruf Besar/Kecil Kata Kunci (Keyword Case)
Strategi huruf besar/kecil untuk kata cadangan SQL (SELECT/FROM/WHERE/JOIN, dll.). Huruf besar (UPPER) adalah gaya tradisional, huruf kecil (lower) semakin populer dalam pengembangan modern, pertahankan (preserve) untuk perubahan minimal.
Pengidentifikasi (Identifier)
Nama objek basis data dalam SQL, termasuk nama basis data, nama tabel, nama kolom, alias, nama indeks, nama tampilan, nama prosedur tersimpan, dll. Basis data yang berbeda mengutip pengidentifikasi secara berbeda: MySQL menggunakan backtick, PostgreSQL menggunakan kutip ganda, SQL Server menggunakan kurung siku.
Gaya Indentasi (Indent Style)
Mengontrol perataan indentasi selama pemformatan SQL. Indentasi standar menggunakan perkembangan hierarkis; tabularLeft/tabularRight menyelaraskan nama kolom dan alias dalam bentuk tabular, keterbacaan lebih baik di layar lebar tetapi dapat menghasilkan baris yang lebih panjang.
Baris Baru Operator Logis (Logical Operator Newline)
Posisi baris baru operator logis seperti AND/OR dalam kondisi multi-baris. before berarti operator di awal baris berikutnya, after berarti operator di akhir baris saat ini. Tim yang berbeda memiliki preferensi yang berbeda.
Lebar Ekspresi (Expression Width)
Ambang jumlah karakter satu baris yang memicu pembungkusan (20-200 karakter). Ekspresi yang melebihi lebar ini akan dibungkus, mirip dengan pengaturan printWidth/ruler di editor kode.
Operator Padat (Dense Operators)
Opsi pemformatan yang, saat diaktifkan, tidak meninggalkan spasi tambahan di sekitar operator (=, <, >, +, -, dll.), seperti `WHERE id=1 AND status='active'` daripada `WHERE id = 1 AND status = 'active'`, menghasilkan output yang lebih ringkas.
Jumlah Baris Kosong Antar Kueri (Lines Between Queries)
Jumlah baris kosong antara banyak pernyataan SQL. 0 berarti pengaturan berdekatan, 1 berarti pemisahan satu baris kosong (umum), 2 berarti dua baris kosong (gaya luas), memengaruhi keterbacaan skrip banyak pernyataan.
Pemadatan SQL (SQL Minify/Compress)
Menghapus semua komentar dan spasi berlebih dari SQL yang telah diformat, menggabungkannya menjadi format ringkas satu baris. Cocok untuk output log, penyematan kode, pengiriman URL, dll.—operasi kebalikan dari pemformatan.
Cetak Rapi (Pretty Print)
Output kode atau data dalam format yang sangat mudah dibaca melalui indentasi dan baris baru otomatis. SQL Pretty Print adalah penghiasan pemformatan SQL, kebalikan dari Minify (pemadatan).
CodeMirror
Komponen editor kode sisi browser (versi 6) yang digunakan oleh alat ini, memberikan penyorotan sintaksis SQL, tampilan nomor baris, pelipatan kode, dan peningkatan pengeditan lainnya—solusi editor kode Web yang banyak digunakan di industri.
sql-formatter
Pustaka pemformatan SQL sumber terbuka yang digunakan di inti alat ini, mendukung analisis leksikal dan output terformat untuk banyak dialek SQL—salah satu pustaka pemformatan SQL paling populer di ekosistem frontend.

Daftar Dialek SQL yang Didukung

Alat ini mendukung 20 dialek basis data SQL—memilih dialek yang cocok dengan basis data Anda menghasilkan hasil pemformatan yang optimal:

DialekBasis DataDeskripsi
Standard SQLSQL StandarSintaksis standar ANSI SQL, cocok untuk skenario umum dan dialek yang tidak diketahui
MySQLMySQL / TiDBBasis data relasional sumber terbuka paling populer, pengidentifikasi backtick, paginasi LIMIT
MariaDBMariaDBPercabangan MySQL, sintaksis kompatibel MySQL dengan fungsi yang diperluas
PostgreSQLPostgreSQLBasis data sumber terbuka kaya fitur, pengidentifikasi kutip ganda, tipe cast ::
SQLiteSQLiteBasis data ringan tersemat, umum digunakan di aplikasi seluler dan browser
T-SQLSQL Server / AzureTransact-SQL milik Microsoft SQL Server, pengidentifikasi kurung siku, paginasi TOP
PL/SQLOracleEkstensi SQL prosedural Oracle, paginasi ROWNUM, paket bawaan yang kaya
BigQueryGoogle BigQueryGudang data awan Google, mendukung jenis berlapis seperti STRUCT/ARRAY
SnowflakeSnowflakeGudang data asli awan dengan kemampuan pemrosesan data semi-terstruktur yang kuat
RedshiftAWS RedshiftGudang data Amazon Web Services, berbasis PostgreSQL tetapi dengan sintaksis eksklusif

Perbandingan Gaya Prasetel Pemformatan

4 gaya prasetel satu klik untuk skenario penggunaan yang berbeda:

PrasetelKata KunciIndentasiOperatorJarak Kueri
DefaultUPPER2 spasi StandarJarak normal1 baris kosong
Lowercaselower2 spasi StandarJarak normal1 baris kosong
CompactUPPERKiri TabularMode padat1 baris kosong
SpaciousUPPER4 spasi StandarJarak normal2 baris kosong

Ringkasan Pintasan Keyboard

Semua pintasan memerlukan penekanan tombol pengubah + Shift + tombol huruf terkait secara bersamaan:

AksiMacWindows/LinuxDeskripsi
Format⇧⌘FShift+Ctrl+FMenghias pernyataan SQL, menambahkan baris baru dan indentasi
Padatkan⇧⌘CShift+Ctrl+CMemadatkan SQL menjadi satu baris, menghapus komentar dan spasi
Validasi⇧⌘VShift+Ctrl+VMemeriksa kebenaran sintaksis SQL
Unggah⇧⌘OShift+Ctrl+OMemuat .sql/.txt dari berkas lokal
Unduh⇧⌘DShift+Ctrl+DMenyimpan hasil sebagai berkas .sql
Hapus⇧⌘KShift+Ctrl+KMenghapus konten input dan output

Privacy & Security

Semua operasi alat pemformat SQL ini diselesaikan sepenuhnya secara lokal di browser Anda: pernyataan SQL yang Anda masukkan, dialek yang dipilih, dan konfigurasi pemformatan semuanya diproses dalam JavaScript browser melalui pustaka sql-formatter tanpa mengirimkan konten SQL atau konfigurasi apa pun ke server eksternal melalui jaringan. Unggahan berkas membaca konten berkas lokal melalui API HTML5 FileReader tanpa transmisi jaringan. Fitur berbagi URL mengenkode SQL yang telah dipadatkan di bagian hash URL (konten setelah # tidak pernah dikirim ke server dengan permintaan HTTP), hanya didekompresi dan ditampilkan secara lokal di browser. Tidak menggunakan pelacakan Cookie atau mengumpulkan konten SQL yang dimasukkan pengguna atau data perilaku penggunaan. Setelah menutup atau menyegarkan halaman, konten input dan status konfigurasi secara otomatis diatur ulang (catatan riwayat hanya disimpan di localStorage lokal).

Authoritative References