Ringkasan

Selesai

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, dan JSON_VALUE untuk 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, dan JARO_WINKLER_DISTANCE
  • Membuat tabel graf dan menulis kueri menggunakan operator MATCH dan SHORTEST_PATH untuk 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 OVER klausa memungkinkan perhitungan analitis tanpa menciutkan baris. Gunakan mereka alih-alih gabungan mandiri untuk menghitung total sementara dan menentukan peringkat.
  • JSON_OBJECT dan JSON_ARRAYAGG membangun JSON dari data relasional, sementara OPENJSON mengurai JSON ke dalam baris relasional
  • JARO_WINKLER_DISTANCE dioptimalkan untuk pencocokan nama; EDIT_DISTANCE_SIMILARITY bekerja lebih baik untuk string yang lebih panjang
  • Selalu periksa @@TRANCOUNT sebelum ROLLBACK dalam blok CATCH untuk menangani kasus di mana tidak ada transaksi yang aktif
  • Gabungkan SET XACT_ABORT ON dengan TRY...CATCH untuk perlindungan transaksi penuh

Pelajari lebih lanjut