Pemformat SQL

Rapikan indentasi kueri SQL agar dapat dibaca, sepenuhnya di browser Anda. Tidak ada yang dieksekusi dan tidak ada basis data yang dihubungi.

Berjalan sepenuhnya di browser Anda. Tidak ada yang diunggah, dicatat, atau disimpan.

Tempelkan kueri yang datang sebagai satu baris panjang dan bacalah dengan semestinya. Pemformatan dilakukan di browser Anda: pernyataan, nama tabel, dan nilai apa pun di klausa WHERE tidak pernah meninggalkan perangkat Anda.

Cara kerja

Pernyataan dipecah menjadi potongan-potongan—string, komentar, nama berkutip, angka, kata, operator—lalu ditulis ulang dengan jeda baris dan indentasi yang ditentukan dari urutan itu. Setiap klausa dimulai di baris baru, kondisi disejajarkan di bawah klausa tempatnya berada, dan subkueri diberi indentasi di dalam tanda kurungnya.

Setiap potongan ditulis ulang persis seperti saat datang. Yang dapat berubah hanyalah spasi di antaranya dan huruf besar-kecil kata-kata yang dikenali alat ini, artinya pernyataan yang keluar adalah pernyataan yang masuk. Sifat itu dipastikan oleh pengujian, bukan diserahkan pada pemeriksaan mata.

Tanda kurung yang berisi pernyataan tersendiri dipecah menjadi beberapa baris; pemanggilan fungsi, daftar IN, atau tanda kurung yang hanya mengelompokkan ekspresi tetap dalam satu baris, karena memecahnya membuat kueri lebih panjang tanpa membuatnya lebih jelas.

Contoh

Kasus Masukan Hasil
Kueri dalam satu baris select id, name from users where active = 1 order by name SELECT id, name FROM users WHERE active = 1 ORDER BY name

Pertanyaan umum

Apakah kueri saya dikirim ke suatu tempat?

Tidak. Pemformat ini adalah JavaScript yang berjalan di halaman ini. Tidak ada yang diunggah, dicatat, atau disimpan: Anda bisa memutus jaringan dan alat ini tetap berfungsi.

Apakah alat ini memeriksa validitas SQL saya?

Tidak, dan hal itu perlu ditegaskan. Yang dilakukannya hanyalah menata ulang spasi. Alat ini tidak punya skema, tata bahasa dialek, ataupun basis data, sehingga akan dengan senang hati merapikan pernyataan yang tidak akan diterima server mana pun. Satu-satunya yang ditolaknya adalah string atau komentar yang tidak ditutup, karena hal itu membuatnya tidak bisa membedakan kode dari teks.

Dialek apa yang dipahaminya?

Alat ini mengenali gaya tanda kutip dari dialek yang paling umum—tanda kutip tunggal untuk string, serta tanda kutip ganda, backtick, atau kurung siku untuk nama—sehingga tidak akan merusak MySQL, PostgreSQL, SQLite, maupun SQL Server. Alat ini tidak memeriksa tata bahasa dialek, karena tidak melakukan penguraian.

Untuk apa opsi backslash?

MySQL memperlakukan backslash di dalam string sebagai escape, sehingga 'it\'s' adalah satu string. SQL standar—dan PostgreSQL, SQLite, SQL Server, serta Oracle—tidak demikian, sehingga di sana teks yang sama adalah sebuah string yang diikuti sesuatu yang lain. Tidak ada cara mengetahuinya dari kuerinya saja, dan menebak akan merusak salah satu dialek, jadi opsi ini berupa sakelar. Biarkan nonaktif kecuali Anda bekerja dengan MySQL.

Mengapa huruf besar-kecil nama kolom saya berubah?

Karena nama itu dieja sama dengan sebuah kata kunci. Opsi huruf besar-kecil mengubah kata-kata yang dikenali alat ini, dan alat ini tidak bisa membedakan kolom bernama “key” dari kata kuncinya. Nama yang langsung mengikuti TABLE, INTO, FROM, JOIN, atau UPDATE dibiarkan apa adanya, karena di posisi itulah huruf besar-kecil sebuah nama memang bisa berpengaruh. Jika Anda tidak ingin ada yang berubah, atur opsi kata kunci ke biarkan seperti yang ditulis, atau beri tanda kutip pada nama tersebut.

Perlu diketahui

  • Tidak ada apa pun di halaman ini yang mengeksekusi SQL atau terhubung ke basis data. Pernyataan adalah teks, dan diperlakukan sebagai teks.
  • Tata letaknya deterministik: pernyataan yang sama dengan opsi yang sama selalu menghasilkan keluaran yang sama, dan memformat pernyataan yang sudah diformat tidak mengubah apa pun.
  • Ekspresi CASE, join, subkueri, dan daftar kolom pada CREATE TABLE masing-masing punya aturannya sendiri. Semua yang tidak tercakup aturan dibiarkan di baris tempatnya berada alih-alih ditebak.

Semua alat Kode