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.
