Saya akan mengatakan ada dua jenis hal yang perlu diketahui sehubungan dengan SQL (ini benar dari banyak teknologi sebenarnya), ada hal-hal teknis khusus seperti bergabung, subquery, serikat pekerja, dll yang Anda mengerti atau tidak, dan kemudian ada hal-hal seperti desain basis data dan pemodelan data yang memiliki gradien keterampilan di dalamnya, seperti seni. Anda menjadi lebih baik dari waktu ke waktu dengan hal-hal yang lebih lembut, tetapi tidak pernah "tahu" mereka karena tidak ada "mereka bekerja dengan cara ini" dengan mereka.
Yang mengatakan, inilah tata letak umum saya akan pergi, dan saya benar-benar terbuka untuk komentar / pemikiran dari orang lain di mana saya mungkin salah.
Pemula
- Di mana klausa (di, di antara, dll)
- Perbarui sintaks
- Batin vs kiri vs kanan bergabung dengan pemahaman dan penggunaan
- Sintaks untuk mengubah dan membuat struktur
- Temp table dan penggunaannya
- Kursor
- Gagasan dasar untuk apa indeks, meskipun bukan cara kerjanya
- Memahami untuk apa kunci asing dan bagaimana mengatasinya (penghapusan cascading dll)
- Memahami dasar-dasar transaksi
- Memahami kendala
Menengah
- Bagaimana indeks bekerja, perbedaan antara berkerumun, non-berkerumun, dll, apa halaman itu dan bagaimana mereka tata letak
- Memahami subqueries, dan dapat berpikir melalui menggunakannya dalam gabungan dan wheres
- Pivot
- Dapat memikirkan bergabung dengan tabel pada dirinya sendiri ketika relevan
- Dapat menghasilkan laporan data kompleks melalui bys grup dengan fungsi agregat
- Dapat melakukan profil dasar hanya dalam kapasitas pemantauan / debugging seperti membaca log
- Memahami perbedaan antara OLAP dan OLTP dan kapan / di mana menggunakan struktur OLAP
- Tahu cara menggunakan pemicu dan tidak menggunakannya
- Memahami transaksi dan dapat melapisi mereka dalam menangani kegagalan di stack
Maju
- Dapat membaca rencana eksekusi, dan memahami bagaimana bagian-bagian berbeda dari kueri memengaruhinya
- Dapat menyetel kueri dengan petunjuk eksekusi tanpa mengacaukan kinerja (petunjuk paralelisme, petunjuk indeks, petunjuk loop, dkk)
- Dapatkah profil dan menggunakan jejak untuk mengidentifikasi dan memahami statistik eksekusi di bawah beban dunia nyata
- Tahu apa struktur data pada disk
- Dapat menggunakan penghitung kinerja dan memahami apa beban basis data dan perilaku dari pemantauan mereka
- Tahu cara mendesain kubus OLAP dan melakukan penambangan data lanjutan dengan satu
- Tahu cara menggunakan pemicu dan cara menggunakannya dengan aman, dengan risiko minimal
- Tahu cara menggunakan transaksi terdistribusi bahkan dengan lapisan
Hanya itu yang bisa saya dapatkan dari atas kepala saya. Silakan tinggalkan komentar yang menyebutkan orang lain yang saya lewatkan atau jika saya meletakkan sesuatu di tempat yang salah. Saya tidak cukup maju untuk mengetahui daftar besar teknik-teknik canggih untuk meletakkan heh