Pemformat SQL

Format SQL online

Kueri dari log terlalu padat? Pisahkan kolom, kondisi JOIN, dan subkueri agar lebih mudah ditinjau tanpa mengatur setiap baris secara manual.

Editor kueriFormat di browser · tanpa menjalankan SQL
Muat contoh
213 / 50.000 karakter

02 Hasil format SQL

Kueri asli tetap tersedia

Rapikan kueri sebelum dibahas bersama tim

SQL yang disalin dari log aplikasi atau ORM sering tampil dalam satu baris panjang. Pemformat SQL menambahkan pemisah baris dan indentasi agar struktur kueri lebih mudah diikuti. Anda dapat menemukan kondisi JOIN dan filter tanpa menata ulang teks satu per satu.

Tempel kueri, pilih dialeknya, lalu atur indentasi dua spasi, empat spasi, atau tab. Tentukan huruf besar atau kecil untuk kata kunci dan klik Format SQL. Hasil ditampilkan terpisah dari masukan asli. Mengubah masukan atau opsi akan menghapus hasil lama; format ulang sebelum menyalin.

Sesuaikan dialek dengan database sumber

Tersedia SQL standar, PostgreSQL, MySQL, MariaDB, SQLite, SQL Server (T-SQL), Oracle SQL, BigQuery, dan Snowflake. Dialek membantu mesin mengenali penulisan pengenal dan sintaks khusus, misalnya backtick pada MySQL atau kurung siku pada T-SQL.

Memilih dialek lain tidak mengonversi kueri antar-database. Fungsi dan skema tidak disesuaikan secara otomatis. Opsi Oracle SQL juga bukan jaminan dukungan untuk semua prosedur tersimpan. Pilih dialek yang digunakan saat kueri ditulis.

Mudah dibaca belum tentu benar

Dengan memisahkan WHERE dan HAVING, Anda lebih mudah membedakan filter baris dari filter agregat. Indentasi juga memperjelas tingkat CTE dan subkueri. Namun, tampilan rapi tidak memastikan bahwa kondisi kueri sesuai dengan aturan bisnis.

Opsi huruf hanya diterapkan pada kata kunci yang dikenali. Penulisan pengenal, nama fungsi, dan tipe data tetap dipertahankan; nilai parameter tidak diisi. Komentar tetap ada, meskipun letak atau spasinya dapat berubah. Periksa hasil sesuai konteks database sebelum digunakan.

Contoh hasil format SQL

Contoh memakai data fiktif, kata kunci huruf besar, dan indentasi dua spasi. Memuat contoh di editor juga memilih dialek yang sesuai.

JOIN dan agregasi

Jumlahkan pesanan yang sudah dibayar per pelanggan, lalu saring totalnya. Kondisi penggabungan dan kedua jenis filter terlihat terpisah.

SELECT
  c.id,
  c.name,
  count(o.id) AS order_count,
  sum(o.total) AS revenue
FROM
  customers c
  JOIN orders o ON o.customer_id = c.id
WHERE
  o.status = 'paid'
GROUP BY
  c.id,
  c.name
HAVING
  sum(o.total) > 1000
ORDER BY
  revenue DESC;
Kembali ke pemformat

CTE dan fungsi jendela

Contoh PostgreSQL memakai CTE dan ROW_NUMBER untuk memberi peringkat pesanan setiap pelanggan. Perhatikan struktur SELECT di dalamnya.

WITH
  ranked_orders AS (
    SELECT
      id,
      customer_id,
      total,
      row_number() OVER (
        PARTITION BY
          customer_id
        ORDER BY
          created_at DESC
      ) AS position
    FROM
      orders
    WHERE
      created_at >= date '2024-01-01'
  )
SELECT
  customer_id,
  id,
  total
FROM
  ranked_orders
WHERE
  position = 1
ORDER BY
  customer_id;
Kembali ke pemformat

INSERT dan komentar

Contoh MySQL dengan pengenal ber-backtick, komentar, dan titik koma di dalam string. Tanda tersebut tetap menjadi bagian nilai.

-- Fictional seed data
INSERT INTO
  `products` (`sku`, `name`, `price`)
VALUES
  ('DEMO-01', 'Desk lamp; warm light', 29.95),
  ('DEMO-02', 'Reader''s notebook', 8.50);
Kembali ke pemformat

Pertanyaan umum

Bagaimana cara menyimpan hasilnya?

Klik Salin atau unduh sebagai formatted.sql. Anda juga dapat memulai pemformatan dengan Ctrl+Enter atau Command+Enter di macOS.

Apakah SQL dikirim ke server?

Pemformatan berjalan dalam Web Worker di browser. Alat ini tidak mengirim kueri ke API pemformatan, tidak terhubung ke database, tidak menyimpan masukan secara permanen, dan tidak memasukkannya ke URL.

Apakah alat ini memperbaiki kesalahan atau mempercepat kueri?

Tidak. Alat hanya mengatur spasi, baris, dan penulisan kata kunci. Tabel, kolom, tipe, izin, serta rencana eksekusi tidak diperiksa. Gunakan alat database untuk validasi dan analisis performa.

Bisakah beberapa pernyataan diproses sekaligus?

Bisa untuk pernyataan SQL biasa yang dipisahkan titik koma. Titik koma di dalam string yang dikenali tetap menjadi data. Perintah DELIMITER khusus, prosedur, dan skrip klien berada di luar alur yang didukung.

Mengapa pemformatan gagal?

Periksa dialek serta pasangan tanda kutip dan kurung. Sintaks templat atau interpolasi kode mungkin tidak dikenali. Masukan dibatasi 50.000 karakter dan tugas berhenti setelah sepuluh detik. Bagi skrip panjang menjadi bagian yang lebih kecil.

Apakah komentar dan placeholder dihapus?

Komentar dipertahankan, tetapi tata letaknya bisa berubah. Placeholder yang didukung dialek tidak diganti dengan nilai. Komentar yang menonaktifkan pemformat dapat membuat bagian tertentu tetap tidak diformat.

SQL Formatter · GitHub

Kembali ke pemformat