Pemformatan kode / Panduan

Format atau ringkas SQL: apa yang dapat diperiksa dari tata letaknya?

Pemisahan baris dapat memperjelas struktur kueri. Kebenaran hasil dan keamanan kueri tetap harus diperiksa di basis data yang relevan.

Gunakan tata letak untuk melihat pertanyaan

Sebuah pernyataan SQL dibangun dari token seperti kata kunci, identifikator, literal dan operator. Spasi dan pergantian baris sering memisahkan token, sementara tanda baca memiliki maknanya sendiri. MultiVerto’s formatter menambahkan break sebelum klausa umum, sehingga SELECT name,score FROM results WHERE score>10 ORDER BY score DESC menjadi lebih mudah untuk discan. Pemeriksa dapat melihat kolom yang dipilih, tabel sumber, filter dan pemesanan sebagai keputusan terpisah. Alat kompak sebaliknya mengurangi ruang redundan sementara mempertahankan teks token. Tidak ada alat yang menjalankan pertanyaan terhadap basis data, memeriksa bahwa hasil adalah tabel nyata, atau membuktikan bahwa skor memiliki jenis yang diinginkan. Perlakukan keluaran sebagai bantuan membaca, bukan sertifikat kebenaran.

Ikuti contoh review konkret

Bayangkan sebuah laporan yang menunjukkan hasil dengan skor di atas 10, diurutkan dari skor tertinggi ke bawah. Formatting memaparkan SELECT, FROM, WHERE dan ORDER BY pada baris terpisah; Anda dapat kemudian bertanya apakah perbandingan secara ketat lebih besar dari 10 atau harus termasuk 10. Jika ORDER BY hilang, urutan baris yang dikembalikan dapat tidak didefinisikan, seperti dokumen SQLite. Sebuah kueri yang diringkas mungkin lebih pendek untuk disimpan dalam sebuah tes kecil, tetapi tidak memberitahu Anda apa-apa tentang rencana eksekusi atau penggunaan indeks. Salin pertanyaan yang diformat ke dalam lingkungan basis data yang sebenarnya, periksa hasil dan bandingkan dengan kasus tes yang diketahui. Peformat teks tidak dapat menggantikan eksekusi itu.

Menilai SQL yang sama melalui tiga periksa terpisah.
  1. format token menjadi klausa yang dapat dibaca
  2. periksa filter dan maksud ORDER BY
  3. jalankan query uji di basis data target

Mengendalikan komentar dan string secara sengaja

String SQL dan identifikator quoted tidak boleh dibagi sebagai kata biasa. Komentar baris yang dimulai dengan dua tanda hubung berjalan ke baris baru; menghapus atau memindahkan baris baru yang tidak hati-hati dapat mengubah teks yang dikomentari. Pemformat SQL MultiVerto saat ini secara sengaja menolak pernyataan yang berisi komentar daripada menebak di mana untuk meletakkannya. Alat kompak mempertahankan komentar dan batas pembalikan barisnya, tetapi Anda harus tetap menilai hasil sebelum menggunakannya. Dialek SQL juga berbeda dalam kutipan dan sintaks string khusus. Sebuah alat browser-side kecil tidak dapat menjanjikan dukungan untuk setiap vendor ekstensi. Simpan teks asli Anda dan gunakan pembacaan sendiri basis data untuk validasi akhir.

Pemformatan bukanlah kontrol keamanan

Sebuah pertanyaan yang rapi secara visual masih dapat mengembalikan baris yang salah atau dibangun secara tidak aman. Jangan menghubungkan input s orang yang tidak dipercaya ke SQL dan asumsikan bahwa formatnya telah membuatnya aman; gunakan parameter melalui API basis data di mana yang sesuai. Jangan tempelkan kredensial atau rahasia produksi ke dalam contoh yang dipublikasikan. Editor lokal bekerja di browser, tetapi sebuah prefilled embed yang dibagikan berisi masukannya dalam fragmen URL untuk pembaca untuk melihat. Ketika mengubah pernyataan, periksa kondisi, join dan batas terpisah dari ruang kosong. Sebuah string kompak bukanlah enkripsi atau obfuscation yang melindungi logika bisnis. Tujuan praktisnya di sini adalah membandingkan bentuk yang dapat dibaca dengan serialisasi yang lebih pendek.

Validasi dalam basis data yang penting

Mulai dengan salinan pertanyaan singkat tanpa komentar dan formatnya di bawah. Periksa bahwa string kutipan, identifikator, operator dan tanda baca tetap ada. Jika pertanyaan Anda berisi komentar atau vendor- spesifik konstruksi, gunakan formatter dirancang untuk dialek itu atau biarkan tidak berubah. Kemudian jalankan query di database uji yang aman dengan baris perwakilan, termasuk nilai batas seperti skor 10 dan 11. Bandingkan data yang dikembalikan, urutan dan kinerja sebelum menerapkan pertanyaan yang diubah. Jika Anda meringkasnya setelah itu, uji keluaran itu juga. Transformasi teks dapat membantu manusia memeriksa niat, tetapi database dan data menentukan perilaku sebenarnya.

Coba konverter

Formatkan pertanyaan SELECT kecil, lalu verifikasikannya di basis data Anda.

Letakkan klausa SQL umum pada baris terpisah.

Buka konverter lengkap

Panduan lainnya

Panduan konversi

Jelajahi panduan