SQL - Cursors: A Beginner's Guide
Hai daar, bakal ahli pangkalan data masa depan! ? Hari ini, kita akan melangkah ke dunia yang menarik SQL Cursors. Jangan khawatir jika Anda belum pernah mendengar tentang mereka sebelumnya - oleh akhir panduan ini, Anda akan mengolah data Anda seperti seorang pro! Ayo masuk!
Cursors di SQL
Bayangkan Anda di sebuah buffet (mmm, makanan ?). Anda memiliki piring (cursor Anda), dan Anda mengurusi barisan, memilih satu item pada satu waktu. Itu sebenarnya apa yang dilakukan cursor di SQL - itu memungkinkan Anda untuk memproses baris dari hasil set satu per satu, bukan sekaligus.
Dalam istilah yang lebih teknis, cursor adalah objek pangkalan data yang memungkinkan Anda untuk menelusuri baris dari hasil set, satu baris pada satu waktu. Itu seperti sebuah pointer yang mencatat posisi Anda di hasil set.
Mengapa Menggunakan Cursors?
Anda mungkin berpikir, "Mengapa saya tidak bisa menggunakan pernyataan SELECT saja?" Well, kadang-kadang Anda perlu melakukan operasi pada setiap baris secara individual, atau Anda mungkin perlu memproses hasil set yang besar dalam bagian kecil untuk menyimpan memori. Itu di mana cursors berguna!
Properti Cursors
Cursors memiliki beberapa properti yang menentukan perilakunya. Mari kita lihat yang utama:
Properti | Deskripsi |
---|---|
Scrollability | Menentukan apakah cursor dapat bergerak ke depan saja atau ke depan dan ke belakang |
Sensitivity | Menentukan apakah cursor mencerminkan perubahan yang dibuat pada data dasar |
Updatability | Menentukan apakah cursor dapat digunakan untuk memperbarui atau menghapus baris |
Transactional Behavior | Menentukan apakah cursor terpengaruh oleh batas transaksi |
Jangan khawatir jika ini terlihat agak abstrak saat ini. Kita akan melihat mereka dalam aksi segera!
siklus kehidupan Cursor
Kehidupan cursor seperti sebuah petualangan kecil dengan empat tahap utama:
- Deklarasi
- Pembukaan
- Penarikan
- Penutupan
Ayo jelajahi setiap tahap ini dengan beberapa contoh kode.
Declare Cursor Statement
Pertama-tama, kita perlu mendeklarasikan cursor kami. Ini seperti mengatakan ke SQL, "Hey, saya ingin membuat cursor yang akan bekerja dengan kueri ini."
Ini adalah cara Anda mendeklarasikan cursor:
DECLARE employee_cursor CURSOR FOR
SELECT employee_id, first_name, last_name
FROM employees
WHERE department_id = 10;
Dalam contoh ini, kita mendeklarasikan cursor bernama employee_cursor
yang akan mengambil rincian karyawan dari tabel employees
untuk departemen 10.
Open Cursor Statement
Setelah kita mendeklarasikan cursor, kita perlu membukanya. Ini seperti mengatakan, "Oke, mari kita mulai perjalanan kita melalui hasil set!"
OPEN employee_cursor;
Perintah ini menjalankan kueri SELECT yang terkait dengan cursor dan mempersiapkannya untuk penarikan.
Fetch Cursor Statement
Sekarang kita masuk ke bagian yang menarik - penarikan data! Ini di mana kita benar-benar mengambil baris satu per satu.
DECLARE @employee_id INT, @first_name VARCHAR(50), @last_name VARCHAR(50);
FETCH NEXT FROM employee_cursor
INTO @employee_id, @first_name, @last_name;
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'Employee: ' + @first_name + ' ' + @last_name;
FETCH NEXT FROM employee_cursor
INTO @employee_id, @first_name, @last_name;
END
mari kitauraikan ini:
- Kita mendeklarasikan variabel untuk menahan data yang kita tarik.
- Kita gunakan
FETCH NEXT
untuk mengambil baris berikutnya dari cursor. - Kita gunakan loop
WHILE
untuk memproses semua baris.@@FETCH_STATUS = 0
berarti penarikan sukses. - Dalam loop, kita mencetak nama karyawan dan menarik baris berikutnya.
Ini seperti mengurusi barisan di buffet, mengambil satu item pada satu waktu, dan melakukan sesuatu dengannya (dalam hal ini, mencetaknya).
Close Cursor Statement
Setelah kita selesai dengan cursor kita, itu sopan untuk menutupnya. Ini melepaskan sumber daya dan biasanya adalah praktek yang baik.
CLOSE employee_cursor;
DEALLOCATE employee_cursor;
Kita tutup cursor dengan CLOSE
dan kemudian DEALLOCATE
nya untuk menghapusnya sepenuhnya dari memori.
Dan begitu saja! Anda telah melalui siklus keseluruhan cursor. ?
Catatan Peringatan
Meskipun cursors sangat kuat, mereka bisa menjadi berat jika digunakan secara salah. Itu seperti menggunakan sendok untuk mengosongkan kolam renang - itu akan bekerja, tapi mungkin ada alat yang lebih baik untuk pekerjaan itu. Selalu pertimbangkan operasi berdasarkan set pertama, dan gunakan cursors hanya saat Anda benar-benar memerlukan pengolahan baris demi baris.
Kesimpulan
Selamat! Anda baru saja mengambil langkah pertama ke dunia SQL cursors. Ingat, latihan membuat sempurna, jadi jangan khawatir untuk mencoba kueri dan properti cursor yang berbeda.
Sekarang, Anda bukan lagi seorang pemula cursor! ??
Selamat mengoding, dan mayat kueri Anda selalu mengembalikan hasil yang Anda harapkan! ?
Credits: Image by storyset