Ringkasan
Dalam modul ini, Anda mempelajari teknik T-SQL tingkat lanjut yang membantu Anda menulis kode database yang lebih ekspresif, efisien, dan dapat dipertahankan. Kemampuan ini membahas skenario pengembangan database umum yang melibatkan analitik kompleks, data hierarkis, pemrosesan JSON, dan penanganan kesalahan.
Anda mempelajari cara untuk:
- Menulis Ekspresi Tabel Umum (CTA) untuk mengatur kueri kompleks dan menggunakan pola rekursif untuk melintasi struktur data hierarkis
- Menerapkan fungsi jendela untuk peringkat, total berjalan, rata-rata bergerak, dan perhitungan analitis yang mempertahankan detail tingkat baris.
- Gunakan fungsi JSON termasuk
JSON_OBJECT, ,JSON_ARRAYJSON_ARRAYAGG,OPENJSON, danJSON_VALUEuntuk mengurai, membangun, dan mengubah data JSON - Menerapkan ekspresi reguler dengan
REGEXP_LIKEREGEXP_REPLACE, ,REGEXP_SUBSTR, dan fungsi terkait untuk pencocokan pola dan manipulasi teks - Temukan perkiraan kecocokan menggunakan fungsi string fuzzy seperti
EDIT_DISTANCE,EDIT_DISTANCE_SIMILARITY, danJARO_WINKLER_DISTANCE - Membuat tabel graf dan menulis kueri menggunakan operator
MATCHdanSHORTEST_PATHuntuk penjelajahan hubungan - Menulis subkueri berkorelasi untuk perbandingan baris demi baris, pemeriksaan keberadaan, dan perhitungan per baris
- Menerapkan penanganan kesalahan terstruktur dengan
TRY...CATCH, fungsi kesalahan,THROW, dan manajemen transaksi yang tepat
Poin-poin Penting
- CTE rekursif adalah pendekatan standar untuk menavigasi data hierarkis seperti bagan organisasi atau struktur bill-of-materials
- Fungsi jendela dengan
OVERklausa memungkinkan perhitungan analitis tanpa menciutkan baris. Gunakan mereka alih-alih gabungan mandiri untuk menghitung total sementara dan menentukan peringkat. -
JSON_OBJECTdanJSON_ARRAYAGGmembangun JSON dari data relasional, sementaraOPENJSONmengurai JSON ke dalam baris relasional -
JARO_WINKLER_DISTANCEdioptimalkan untuk pencocokan nama;EDIT_DISTANCE_SIMILARITYbekerja lebih baik untuk string yang lebih panjang - Selalu periksa
@@TRANCOUNTsebelumROLLBACKdalam blokCATCHuntuk menangani kasus di mana tidak ada transaksi yang aktif - Gabungkan
SET XACT_ABORT ONdenganTRY...CATCHuntuk perlindungan transaksi penuh