SQL Formatter

Ubah SQL yang panjang dan berantakan menjadi kueri yang rapi dan terindentasi untuk MySQL, PostgreSQL, SQL Server, SQLite, BigQuery, dan lainnya.

Berjalan 100% di browser Anda. Apa pun yang Anda tempel tidak diunggah atau disimpan.
Kueri SQL
SQL yang sudah diformat
Siap.

Cara menggunakan SQL formatter

  1. Tempel satu atau beberapa pernyataan SQL ke kotak input.
  2. Pilih dialek yang sesuai dengan database Anda: SQL standar, MySQL, PostgreSQL, SQL Server (T-SQL), SQLite, MariaDB, BigQuery, Snowflake, atau Oracle PL/SQL.
  3. Pilih huruf kapital keyword: HURUF BESAR, huruf kecil, atau pertahankan seperti yang ditulis.
  4. Atur ukuran indentasi.
  5. Klik Format SQL dan salin hasilnya.

Query Anda diformat di browser dan tidak pernah diunggah atau disimpan, sehingga aman menempelkan query produksi yang memperlihatkan nama tabel atau logika bisnis.

Mengapa memformat SQL?

SQL tidak peka terhadap spasi: database menjalankan query satu baris persis sama seperti query yang diindentasi rapi. Namun, manusia membacanya dengan sangat berbeda. Query yang disalin dari log ORM, alat pemantauan, atau laporan query lambat biasanya datang sebagai satu baris panjang, sehingga sulit melihat kondisi mana yang termasuk ke join atau subquery mana.

Formatter menempatkan setiap klausa utama (SELECT, FROM, JOIN, WHERE, GROUP BY, ORDER BY) pada barisnya sendiri dan mengindentasi bagian bersarang secara konsisten. Bandingkan:

select u.id,u.email,count(o.id) as orders from users u left join orders o on o.user_id=u.id where u.created_at>='2026-01-01' group by u.id,u.email having count(o.id)>5 order by orders desc;
SELECT
  u.id,
  u.email,
  COUNT(o.id) AS orders
FROM
  users u
  LEFT JOIN orders o ON o.user_id = u.id
WHERE
  u.created_at >= '2026-01-01'
GROUP BY
  u.id,
  u.email
HAVING
  COUNT(o.id) > 5
ORDER BY
  orders DESC;

Versi yang sudah diformat lebih mudah ditinjau dalam pull request, lebih mudah di-debug, dan menghasilkan diff yang lebih bersih ketika seseorang kemudian menambahkan kolom atau kondisi.

Mengapa dialek itu penting

Setiap database memperluas SQL standar dengan sintaksnya sendiri. Memilih dialek yang tepat membantu formatter mengenali keyword, operator, dan penulisan kutipan identifier dengan benar:

DialekKutipan identifierContoh sintaks khusus
MySQL / MariaDB`backticks`LIMIT 10, ON DUPLICATE KEY UPDATE
PostgreSQL"double quotes"cast ::, RETURNING, ILIKE
SQL Server (T-SQL)[brackets]SELECT TOP 10, @variables
BigQuery`backticks`STRUCT, UNNEST, EXCEPT dalam SELECT *
Oracle PL/SQL"double quotes"FETCH FIRST 10 ROWS ONLY, blok BEGIN … END;

Jika sebuah query terformat dengan aneh, misalnya operator terpecah atau keyword diperlakukan sebagai nama kolom, beralih ke dialek yang benar biasanya memperbaikinya.

Kesalahan SQL umum yang terlihat berkat pemformatan

Formatter tidak menjalankan atau memvalidasi query Anda sepenuhnya, tetapi tata letak yang jelas membuat banyak bug menjadi kentara:

  • Koma yang hilang di daftar select. SELECT id name FROM users adalah SQL yang sah, tetapi mengembalikan id dengan alias name. Dengan satu kolom per baris, koma yang hilang langsung terlihat.
  • Filter pada tabel yang di-outer join di dalam WHERE. LEFT JOIN orders o … WHERE o.status = 'paid' diam-diam mengubah outer join menjadi inner join. Pindahkan kondisinya ke klausa ON jika Anda ingin mempertahankan baris yang tidak cocok.
  • AND dan OR bercampur tanpa tanda kurung. AND mengikat lebih kuat daripada OR, jadi a OR b AND c berarti a OR (b AND c). Tambahkan tanda kurung agar maksudnya eksplisit.
  • Tanda kurung atau kutip yang tidak seimbang. Ketika indentasi output tiba-tiba bergeser, cari kurung atau string literal yang belum ditutup tepat sebelum titik itu.

Tips dan praktik terbaik

  • Keyword huruf besar adalah konvensi yang umum karena memisahkan sintaks SQL dari nama tabel dan kolom Anda; huruf kecil sama validnya. Pilih satu untuk setiap proyek.
  • Selalu beri alias pada tabel dalam query multi-tabel dan sertakan alias tabel pada nama kolom (u.id alih-alih id).
  • Jangan pernah membangun SQL dengan menggabungkan input pengguna. Gunakan query berparameter atau prepared statement untuk mencegah SQL injection.
  • Menyimpan timestamp sebagai bilangan bulat? Gunakan konverter Unix timestamp untuk memeriksa arti suatu nilai, dan generator UUID untuk primary key pengujian.
Tips: Memformat hasil query yang disimpan sebagai JSON? Tempel ke JSON formatter.

Pertanyaan yang sering diajukan

Apakah pemformatan mengubah apa yang dilakukan query saya?

Tidak. Formatter hanya mengubah spasi, jeda baris, dan, jika Anda memilihnya, huruf kapital keyword. Identifier, string literal, dan logika query tidak berubah.

Apakah SQL formatter memeriksa apakah query saya valid?

Tidak sepenuhnya. Formatter memecah query menjadi token untuk menata tampilannya, sehingga input yang sangat rusak bisa menghasilkan output yang aneh, tetapi tidak memeriksa apakah tabel atau kolom ada atau apakah pernyataan itu akan berjalan. Gunakan database Anda atau EXPLAIN untuk itu.

Bisakah saya memformat beberapa pernyataan sekaligus?

Bisa. Pisahkan pernyataan dengan titik koma dan masing-masing akan diformat secara berurutan.

Haruskah keyword SQL ditulis dengan huruf besar?

Keyword SQL tidak peka huruf besar-kecil di semua database utama, jadi ini murni soal gaya. Huruf besar bersifat tradisional dan umum dalam dokumentasi; banyak tim modern lebih suka huruf kecil. Yang penting adalah konsistensi.

Diperbarui

Tersalin ke clipboard