Pertama dan terutama, dapatkan pemahaman menyeluruh tentang gabungan. Bukan hanya bagian dalam dan kiri yang bergabung. Ketahui apa yang dilakukan oleh gabungan silang dan gabungan luar sepenuhnya. Ketahui keadaan yang menyebabkan Anda memilih jenis gabung tertentu. Memahami bahwa mereka tidak dapat dipertukarkan dan bahwa permintaan yang menggunakan gabungan kiri dapat mengembalikan hasil yang berbeda dari yang menggunakan gabungan batin. (Orang akan berpikir itu akan jelas tetapi saya sudah membaca terlalu banyak pertanyaan di mana orang-orang di decribing masalah mereka, agak secara acak mencoba berbagai bergabung.)
Selanjutnya benar-benar memahami agregat dan cara kerjanya. Mysql akan membiarkan Anda lolos dengan tidak melakukan bys grup dengan cara standar. Tetapi memiliki disiplin untuk sepenuhnya mendefinisikan grup dengan klausa dengan benar. Ini akan membantu Anda memahami apa yang Anda lakukan dan akan membuat pengetahuan Anda lebih mudah ditransfer ke database lain.
Pelajari apa yang dilakukan pernyataan kasus.
Saat melakukan kueri yang kompleks, belajarlah untuk bekerja di chunks. Verifikasi di setiap bagian bahwa Anda memiliki hasil yang Anda harapkan. Jadi misalnya, misalkan Anda perlu menulis permintaan pelaporan pada pesanan yang telah dikembalikan dalam 3 bulan terakhir dan alasan pengembalian serta informasi kontak untuk pelanggan. Langkah pertama adalah mendapatkan pesanan dikembalikan dalam tiga bulan terakhir. Setelah Anda tahu bahwa Anda memiliki solid itu, Anda dapat menambahkan informasi tentang alasan pengembalian. Setelah Anda memiliki solid itu, Anda dapat menambahkan pelanggan yang mengembalikannya. Setelah Anda memiliki solid itu, tambahkan informasi kontak untuk orang tersebut. Pada setiap tahap, periksa hasil Anda dan lihat apakah hasilnya masuk akal. Dalam hal ini, saya mungkin ingin berakhir hanya dengan satu catatan per pesanan yang dikembalikan. Jika pada tahap peralihan mana pun, jumlah hasil naik atau turun, Anda tahu Anda memiliki masalah dengan kueri. Terkadang dalam membangun blok, Anda akan ingin melihat bidang tambahan hanya untuk memverifikasi apakah informasi itu benar. Saya meletakkan ini di baris yang terpisah dan berkomentar saat saya mengerjakan langkah berikutnya (menghapusnya di akhir setelah saya tahu saya benar) sehingga mereka tersedia untuk dilihat lagi dengan mudah jika menambahkan kerutan lain membuat kueri menjadi lucu. Anda tidak dapat melakukan kueri kompleks dengan benar tanpa pemahaman menyeluruh tentang seperti apa hasil Anda seharusnya. Berpikir itu terlihat OK karena itu mengembalikan beberapa hasil hampir akan menjamin bahwa Anda memiliki hasil yang salah sebagian besar waktu. m benar) sehingga tersedia untuk dilihat kembali dengan mudah jika menambahkan kerutan lain membuat kueri menjadi lucu. Anda tidak dapat melakukan kueri kompleks dengan benar tanpa pemahaman menyeluruh tentang seperti apa hasil Anda seharusnya. Berpikir itu terlihat OK karena itu mengembalikan beberapa hasil hampir akan menjamin bahwa Anda memiliki hasil yang salah sebagian besar waktu. m benar) sehingga tersedia untuk dilihat kembali dengan mudah jika menambahkan kerutan lain membuat kueri menjadi lucu. Anda tidak dapat melakukan kueri kompleks dengan benar tanpa pemahaman menyeluruh tentang seperti apa hasil Anda seharusnya. Berpikir itu terlihat OK karena itu mengembalikan beberapa hasil hampir akan menjamin bahwa Anda memiliki hasil yang salah sebagian besar waktu.
Berikut adalah daftar beberapa hal dasar yang harus Anda lakukan dalam SQL tanpa harus memikirkannya:
- Pertama pilih lurus tanpa bergabung (dan tanpa pilih *) tetapi dengan kondisi pada pilih
- Anda harus tahu cara menggabungkan dua atau lebih tabel dan mendapatkan catatan yang ada di semua tabel
- Anda harus tahu cara menggabungkan dua atau lebih tabel dan mendapatkan catatan yang ada di semua tabel tetapi mengembalikan hanya satu catatan dari tabel dengan banyak sisi dari hubungan satu-ke-banyak
- Anda harus bisa mendapatkan catatan dalam satu tabel tetapi tidak dalam tabel terkait
- Anda harus dapat mengelompokkan data untuk laporan
- Anda harus dapat menyisipkan satu rekaman ke tabel
- Anda harus dapat memperbarui satu catatan dalam sebuah tabel
- Anda harus dapat menghapus satu catatan dalam sebuah tabel
- Anda harus dapat menyisipkan sekelompok catatan ke tabel tanpa kursor
- Anda harus dapat memperbarui sekelompok catatan dalam tabel tanpa kursor
- Anda harus dapat menghapus sekelompok catatan dalam tabel tanpa kursor
- Anda harus dapat melakukan beberapa tindakan dalam satu transaksi dan menangani perangkap kesalahan
- Anda harus dapat membuat gabungan catatan dan tahu kapan harus menggunakan UNION, wakil UNION, SEMUA
- Anda harus dapat memvariasikan data untuk satu bidang berdasarkan beberapa kriteria (menggunakan CASE)
Setelah Anda merasa nyaman dengan pengetahuan SQL dasar Anda, kenali struktur basis data Anda. Saya dapat menulis pertanyaan kompleks terhadap dbs yang sangat rumit yang saya dukung jauh lebih cepat daripada orang lain karena saya mengerti strukturnya dan tidak perlu memikirkan di mana barang disimpan. Jika Anda memahami struktur tabel dan hubungan kunci asing dan di mana nilai pencarian disimpan dan apa arti kolom (bukan hanya nama mereka tetapi data apa yang disimpan di dalamnya) maka Anda bisa menjadi ahli dalam menanyakan database itu. Hal pertama yang saya lakukan dalam pekerjaan baru adalah memahami struktur db.