PL/SQL - Penjaring: Portal Anda ke Manipulasi Data

Hai teman-teman, para ahli basis data masa depan! Hari ini, kita akan memulai perjalanan menarik ke dunia penjaring PL/SQL. Jangan khawatir jika Anda baru saja memulai dengan pemrograman – saya akan menjadi panduan ramah Anda, dan kita akan meng eksplorasi topik ini langkah demi langkah. Pada akhir panduan ini, Anda akan bisa menggunaikan penjaring seperti seorang ahli!

PL/SQL - Cursors

Apa Itu Penjaring?

Sebelum kita masuk ke detil, mari kita memahami apa itu penjaring. Bayangkan Anda di sebuah buffet (ya, saya membuat Anda merasa hungry!). Anda memiliki piring (program Anda) dan Anda melihat semua makanan lezat (tabel basis data Anda). Penjaring adalah seperti tangan Anda – ia membantu Anda memilih item spesifik dari buffet dan menempatkannya di piring Anda. Dalam istilah basis data, penjaring memungkinkan Anda untuk mengambil dan memanipulasi data dari basis data Anda, satu baris demi satu baris.

Sekarang, mari kita eksplor dua jenis penjaring di PL/SQL:

Penjaring implisit

Penjaring implisit adalah seperti fungsi otomatis di kamera smartphone Anda – mereka bekerja di belakang layar tanpa Anda perlu melakukan banyak hal. Oracle membuat dan mengelola penjaring ini bagi Anda saat Anda menjalankan pernyataan SQL.

mari lihat contoh berikut:

BEGIN
UPDATE employees SET salary = salary * 1.1 WHERE department_id = 20;

IF SQL%FOUND THEN
DBMS_OUTPUT.PUT_LINE('Para karyawan menerima peningkatan gaji 10%!');
ELSE
DBMS_OUTPUT.PUT_LINE('Tidak ada karyawan di departemen 20 yang ditemukan.');
END IF;
END;
/

Dalam kode ini:

  1. Kita memperbarui gaji karyawan di departemen 20.
  2. SQL%FOUND adalah atribut penjaring implisit yang mengembalikan TRUE jika UPDATE mempengaruhi baris mana pun.
  3. Kita menggunakan ini untuk mencetak pesan yang sesuai.

Atribut penjaring implisit lainnya termasuk:

  • SQL%ROWCOUNT: Jumlah baris yang terpengaruh
  • SQL%ISOPEN: Selalu mengembalikan FALSE untuk penjaring implisit
  • SQL%NOTFOUND: Lawan dari SQL%FOUND

Penjaring eksplisit

Penjaring eksplisit adalah seperti mode manual di kamera Anda – Anda memiliki kontrol lebih, tetapi Anda perlu mengelolanya sendiri. Mereka sempurna saat Anda perlu memproses baris satu demi satu atau saat Anda ingin memiliki kontrol lebih terhadap proses pengambilan data.

Mari kitauraikan siklus hidup penjaring eksplisit:

Mendeklarasikan Penjaring

Pertama, kita perlu memberitahu blok PL/SQL kita tentang data yang kita inginkan. Itu seperti memutuskan apa yang Anda inginkan makan di buffet sebelum Anda mulai mengisi piring Anda.

DECLARE
CURSOR c_emp IS
SELECT employee_id, first_name, last_name
FROM employees
WHERE department_id = 30;

Di sini, kita mendeklarasikan penjaring bernama c_emp yang akan mengambil detil karyawan dari departemen 30.

Membuka Penjaring

Sekarang kita telah memutuskan apa yang kita inginkan, itu waktunya untuk mendekati buffet (atau dalam kasus kita, basis data).

OPEN c_emp;

Baris ini mengatakan ke Oracle untuk menjalankan pernyataan SELECT dan menyiapkan himpunan hasil.

Mengambil Penjaring

Ini adalah tempat kita benar-benar mulai menempatkan makanan di piring kita – atau dalam istilah pemrograman, mengambil data baris demi baris.

DECLARE
v_emp_id employees.employee_id%TYPE;
v_first_name employees.first_name%TYPE;
v_last_name employees.last_name%TYPE;
BEGIN
OPEN c_emp;
LOOP
FETCH c_emp INTO v_emp_id, v_first_name, v_last_name;
EXIT WHEN c_emp%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(v_emp_id || ' - ' || v_first_name || ' ' || v_last_name);
END LOOP;
CLOSE c_emp;
END;
/

Dalam contoh ini:

  1. Kita mendeklarasikan variabel untuk menahan data yang diambil.
  2. Kita membuka penjaring.
  3. Kita menggunakan LOOP untuk mengambil baris satu demi satu.
  4. Kita keluar dari loop saat tidak ada baris lagi (c_emp%NOTFOUND).
  5. Kita mencetak detil setiap karyawan.

Menutup Penjaring

Seperti Anda mengembalikan piring Anda setelah selesai makan di buffet, kita perlu menutup penjaring saat kita selesai.

CLOSE c_emp;

Ini melepaskan sumber daya yang terkait dengan penjaring.

Loop Penjaring FOR: Sebuah Jalan Pintas

Sekarang, saya punya sebuah rahasia kecil untuk Anda. Ada cara untuk membuat bekerja dengan penjaring menjadi lebih mudah – itu disebut Loop Penjaring FOR. Itu seperti memiliki seorang teman yang membantu Anda mengisi piring Anda di buffet!

BEGIN
FOR emp_rec IN (SELECT employee_id, first_name, last_name
FROM employees
WHERE department_id = 30) LOOP
DBMS_OUTPUT.PUT_LINE(emp_rec.employee_id || ' - ' ||
emp_rec.first_name || ' ' ||
emp_rec.last_name);
END LOOP;
END;
/

Loop ini melakukan semua pekerjaan bagi Anda:

  1. Itu mendeklarasikan variabel catatan (emp_rec) untuk menahan setiap baris.
  2. Itu membuka penjaring, mengambil setiap baris, dan menutup penjaring secara otomatis.
  3. Anda hanya perlu fokus pada apa yang harus dilakukan dengan setiap baris di dalam loop.

Metode Penjaring: Alat Anda

mari rangkum metode yang kita bisa gunakan dengan penjaring dalam tabel rapi:

Metode Deskripsi
DECLARE Mendefinisikan penjaring dan pernyataan SELECTnya
OPEN Menjalankan pernyataan SELECT dan menyiapkan himpunan hasil
FETCH Mengambil baris berikutnya dari himpunan hasil
CLOSE Menutup penjaring dan melepaskan sumber daya

Ingat, dengan kekuatan yang besar datang tanggung jawab yang besar. Selalu tutup penjaring Anda saat Anda selesai penggunaannya untuk melepaskan sumber daya!

Dan itu adalah nya, teman-teman saya! Anda telah mengambil langkah pertama ke dunia penjaring PL/SQL. Praktik dengan konsep ini, mainkan dengan berbagai skenario, dan segera Anda akan dapat menjelajahi basis data Anda dengan keanggunan dan presisi seorang pemrogramer berpengalaman.

Ingat, dalam pemrograman, sama seperti dalam kehidupan, kunci adalah untuk terus belajar dan mencoba. Jadi, pergi dan tulis kode, buat kesalahan, dan terutama, bersenang-senang! Siapa tahu? Aplikasi basis data besar berikutnya mungkin hanya di jari Anda. Selamat coding!

Credits: Image by storyset