Pemformat SQL
SQL (Structured Query Language) adalah bahasa standar untuk basis data relasional. Alat ini memformat kueri SQL dengan indentasi yang tepat, mengubah kata kunci menjadi huruf besar, dan menyusun kueri kompleks untuk keterbacaan. Mendukung dialek SQL umum.
Spesifikasi
Kasus Penggunaan Umum
- Memformat SQL minifikasi dari log atau output ORM
- Membuat kueri kompleks dapat dibaca untuk tinjauan kode
- Menyiapkan SQL untuk dokumentasi
- Men-debug dan memahami kueri yang ada
Fitur
- Cetak rapi SQL dengan indentasi konsisten
- Mengubah kata kunci SQL menjadi huruf besar (SELECT, FROM, WHERE, dll.)
- Memformat JOIN dan subkueri kompleks
- Menangani CTE (Common Table Expressions) dengan WITH
- Dukungan untuk fungsi window
- Dukungan 6 dialek SQL (Standard, PostgreSQL, MySQL, MariaDB, SQLite, T-SQL)
- Ekstraksi nama tabel
- Toggle tampilan minifikasi
- Tampilan penghematan ukuran (asli vs. minifikasi)
Contoh
Kueri Kompleks dengan JOIN
Coba →Kueri dengan agregasi, join, dan pengurutan.
SELECT
u.id,
u.name,
COUNT(o.id) AS order_count
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.active = true
GROUP BY u.id, u.name
HAVING COUNT(o.id) > 5
ORDER BY order_count DESCTips
- Format kueri sebelum melakukan commit ke version control.
- Kata kunci huruf besar meningkatkan keterbacaan tetapi tidak diwajibkan oleh SQL.
- Subkueri harus diindentasi untuk kejelasan.
Pemahaman Pemformat SQL
SQL (Structured Query Language) telah menjadi bahasa standar untuk basis data relasional sejak tahun 1970-an. SQL menyediakan sintaks deklaratif untuk mengkueri, memanipulasi, dan mengelola data di berbagai sistem basis data termasuk PostgreSQL, MySQL, SQLite, SQL Server, dan Oracle. Meskipun setiap basis data menambahkan ekstensi proprietary, bahasa intinya sangat konsisten.
Pernyataan SQL dibagi ke dalam beberapa kategori. Data Manipulation Language (DML) mencakup SELECT, INSERT, UPDATE, dan DELETE untuk membaca dan memodifikasi data. Data Definition Language (DDL) mencakup CREATE, ALTER, dan DROP untuk mengelola objek basis data. Data Control Language (DCL) menangani izin dengan GRANT dan REVOKE. SQL modern juga mendukung Common Table Expressions (CTE) dengan klausa WITH, fungsi window untuk analitik, dan operasi JSON untuk data semi-terstruktur.
Memformat SQL sangat penting untuk keterbacaan dan pemeliharaan. Kueri kompleks dengan join, subkueri, dan agregasi dapat menjadi tidak dapat dipahami ketika dikompresi menjadi satu baris — umum terjadi pada kueri yang dihasilkan ORM, log aplikasi, dan alat pemantauan basis data. Pemformatan konsisten dengan kata kunci huruf besar, indentasi yang tepat, dan klausa yang sejajar membuat kueri lebih mudah ditinjau, di-debug, dan dioptimasi.
Pemformatan SQL juga membantu analisis performa. Kueri yang diformat dengan baik memudahkan identifikasi indeks yang hilang (dengan melihat kolom mana yang muncul dalam kondisi WHERE dan JOIN), menemukan subkueri yang tidak perlu yang bisa ditulis ulang sebagai join, dan memahami alur logis kueri kompleks yang melibatkan CTE dan fungsi window.
SQL tidak peka huruf besar-kecil untuk kata kunci, jadi SELECT dan select diperlakukan identik oleh mesin basis data. Kata kunci huruf besar (SELECT, FROM, WHERE, JOIN) adalah konvensi yang diikuti secara luas yang meningkatkan keterbacaan dengan membedakan secara visual kata kunci SQL dari nama tabel dan kolom. Sebagian besar pemformat dan panduan gaya merekomendasikan kata kunci huruf besar untuk alasan ini.
Common Table Expression (CTE) adalah kumpulan hasil sementara bernama yang didefinisikan dengan kata kunci WITH yang ada selama durasi satu kueri. CTE meningkatkan keterbacaan dengan memecah kueri kompleks menjadi langkah-langkah bernama, menggantikan subkueri yang sangat bertingkat dengan struktur sekuensial dari atas ke bawah. CTE rekursif memperluas kemampuan ini untuk menelusuri data hierarkis seperti bagan organisasi atau komentar bersarang.
Sintaks SQL inti (SELECT, JOIN, WHERE, GROUP BY) konsisten di semua dialek basis data, tetapi perbedaan muncul pada fitur proprietary. MySQL menggunakan backtick untuk mengutip pengidentifikasi, PostgreSQL menggunakan tanda kutip ganda, dan SQL Server menggunakan tanda kurung siku. Fungsi, tipe data, dan fitur lanjutan seperti join LATERAL, MERGE, dan UPSERT juga bervariasi menurut dialek. Pemformat ini menangani sintaks SQL standar yang berfungsi di semua basis data utama.