Daftar Isi:
- Verifikasi struktur database
- Coba query pada database uji
- Pertanyaan cek ganda yang menyertakan bergabung
- Permintaan dengan cek tiga kali dengan subselects
- Ringkaskan data dengan GROUP BY
- Perhatikan klausa GROUP BY clause
- Gunakan tanda kurung dengan AND, OR, dan NOT
- Hak istimewa pengambilan DNS
- Cadangkan database Anda secara teratur
- Menangani kondisi kesalahan dengan anggun
Video: Lec-47: SQL Queries and Subqueries (part-1) | Database Management System 2025
Pernyataan SELECT SQL adalah alat Anda untuk menggali informasi tersembunyi di database. Bahkan jika Anda memiliki gagasan yang jelas tentang apa yang ingin Anda ambil, menerjemahkan gagasan itu ke dalam SQL dapat menjadi tantangan. Jika formulasi Anda hanya sedikit mati, Anda mungkin akan mendapatkan hasil yang salah. Untuk mengurangi kesempatan Anda disesatkan, gunakan sepuluh prinsip berikut.
Verifikasi struktur database
Jika Anda mengambil data dari database dan hasilnya tidak masuk akal, periksalah perancangan basis data. Banyak database yang dirancang dengan buruk sedang digunakan, dan jika Anda bekerja dengan itu, perbaiki desainnya sebelum Anda mencoba obat lain. Ingat - desain yang baik adalah prasyarat integritas data.
Coba query pada database uji
Buat database uji yang memiliki struktur yang sama dengan database produksi Anda, namun hanya dengan beberapa baris perwakilan di tabel. Pilihlah data sehingga Anda tahu terlebih dahulu apa hasil dari pertanyaan Anda.
Jalankan setiap kueri uji pada data uji dan lihat apakah hasilnya cocok dengan harapan Anda. Jika tidak, Anda mungkin perlu merumuskan kembali pertanyaan Anda. Jika sebuah query diformulasikan dengan benar tetapi Anda akan mendapatkan hasilnya yang buruk, Anda mungkin perlu merestrukturisasi database Anda.
Bangun beberapa set data uji dan pastikan untuk memasukkan kasus ganjil, seperti tabel kosong dan nilai ekstrim pada batas batas yang diijinkan. Cobalah untuk memikirkan skenario yang tidak mungkin dan periksa perilaku yang tepat saat terjadi. Dalam proses memeriksa kasus yang tidak biasa, Anda bisa mendapatkan wawasan tentang masalah yang lebih mungkin terjadi.
Pertanyaan cek ganda yang menyertakan bergabung
Bergabung secara terkenal berlawanan dengan intuisi. Jika kueri Anda berisi satu, pastikan itu melakukan apa yang Anda harapkan sebelum menambahkan klausa WHERE atau faktor rumit lainnya.
Permintaan dengan cek tiga kali dengan subselects
Kueri dengan subselects mengambil data dari satu tabel dan, berdasarkan apa yang diambil, ambil beberapa data dari tabel lain. Oleh karena itu, menurut definisi, pertanyaan semacam itu benar-benar sulit dilakukan. Pastikan data yang diambil oleh SELECT bagian dalam adalah data yang dibutuhkan oleh SELECT bagian luar untuk menghasilkan hasil yang diinginkan. Jika Anda memiliki dua atau lebih tingkat subseleksi, Anda harus lebih berhati-hati lagi.
Ringkaskan data dengan GROUP BY
Katakan bahwa Anda memiliki tabel (NASIONAL) yang berisi nama (Pemain), tim (Tim), dan jumlah home run hit (Homers) oleh setiap pemain bisbol di Liga Nasional. Anda dapat mengambil total homer tim untuk semua tim dengan kueri seperti ini:
SELECT Team, SUM (Homers) FROM NATIONAL GROUP BY Team;
Pertanyaan ini mencantumkan setiap tim, diikuti oleh jumlah total home run yang dilanda oleh semua pemain tim tersebut.
Perhatikan klausa GROUP BY clause
Misalkan Anda menginginkan daftar hitter kekuatan Liga Nasional. Pertimbangkan pertanyaan berikut:
SELECT Player, Team, Homers FROM NATIONAL WHERE Homers> = 20 GROUP BY Team;
Pada sebagian besar implementasi, query ini mengembalikan sebuah kesalahan. Umumnya, hanya kolom yang digunakan untuk pengelompokan atau kolom yang digunakan dalam fungsi yang ditetapkan dapat muncul dalam daftar pilih. Namun, jika Anda ingin melihat data ini, formulasi berikut bekerja:
SELECT Player, Team, Homers FROM NATIONAL WHERE Homers> = 20 GROUP BY Team, Player, Homers;
Karena semua kolom yang ingin ditampilkan muncul di klausa GROUP BY, kueri berhasil dan memberikan hasil yang diinginkan. Formulasi ini memilah daftar yang dihasilkan terlebih dahulu oleh Team, kemudian oleh Player, dan akhirnya oleh Homers.
Gunakan tanda kurung dengan AND, OR, dan NOT
Terkadang saat Anda mencampur AND dan OR, SQL tidak memproses ekspres sesuai urutan yang Anda harapkan. Gunakan tanda kurung dalam ekspresi kompleks untuk memastikan bahwa Anda mendapatkan hasil yang diinginkan. Mengetik beberapa penekanan tombol ekstra adalah harga kecil untuk membayar hasil yang lebih baik.
Tanda kurung juga membantu memastikan bahwa kata kunci TIDAK diterapkan pada istilah atau ungkapan yang Anda inginkan untuk diterapkan.
Hak istimewa pengambilan DNS
Banyak orang tidak menggunakan fitur keamanan yang tersedia di DBMS mereka. Mereka tidak mau repot dengan mereka karena menurut mereka penyalahgunaan dan penyimpangan data adalah hal yang hanya terjadi pada orang lain. Jangan menunggu untuk dibakar. Tetapkan dan pertahankan keamanan untuk semua database yang memiliki nilai apapun.
Cadangkan database Anda secara teratur
Lansiran yang Merasa Suka: Data sulit ditemukan kembali setelah terjadi lonjakan arus listrik, kebakaran, gempa bumi, atau bencana lainnya menghancurkan hard drive Anda. (Ingat, terkadang komputer mati tanpa alasan yang bagus.) Buat backup sering dan letakkan media backup di tempat yang aman.
Apa yang dimaksud dengan tempat yang aman bergantung pada seberapa kritis data Anda. Ini mungkin tahan api di ruangan yang sama dengan komputer Anda. Mungkin di gedung lain. Mungkin di awan. Mungkin di bungker beton di bawah gunung yang telah dikeraskan untuk menahan serangan nuklir. Tentukan tingkat keamanan yang sesuai untuk data Anda.
Menangani kondisi kesalahan dengan anggun
Apakah Anda membuat kueri ad hoc dari workstation atau memasukkan kueri dalam aplikasi, terkadang SQL mengembalikan pesan kesalahan dan bukan pada hasil yang diinginkan. Di sebuah workstation, Anda bisa memutuskan apa yang harus dilakukan selanjutnya, berdasarkan pesan yang dikembalikan.
Dalam sebuah aplikasi, situasinya berbeda. Pengguna aplikasi mungkin tidak tahu tindakan apa yang sesuai. Masukkan penanganan kesalahan yang luas ke dalam aplikasi Anda untuk menutupi semua kemungkinan kesalahan yang mungkin terjadi. Membuat kode penanganan kesalahan membutuhkan banyak usaha, tapi lebih baik daripada meminta pengguna menatap tajam pada layar yang membeku.
