PL/SQL - Rekod: Panduan Pemula untuk Data Terstruktur

Hai sana, para ahli pangkalan data masa depan! Hari ini, kita akan memulakan sebuah perjalanan yang menarik ke dalam dunia Rekod PL/SQL. Jangan bimbang jika anda belum pernah menulis satu baris kode sebelum ini - saya akan menjadi panduannya yang ramah, dan kita akan menjelajah bersama-sama, langkah demi langkah. Pada akhir panduan ini, anda akan terkejut atas betapa banyak yang anda telah belajar!

PL/SQL - Records

apa itu Rekod di PL/SQL?

Sebelum kita masuk ke dalam khususannya, mari kita memahami apa itu rekod. Bayangkan anda sedang menguruskan sebuah pesta ulang tahun, dan anda perlu mencatat maklumat tetamu anda. Anda mungkin menulis nama setiap orang, umur mereka, dan rasa kue kesukaan mereka. Di PL/SQL, sebuah rekod adalah seperti daftar itu, tetapi untuk menyimpan data yang berkaitan dalam unit tunggal.

Rekod membolehkan kita mengumpulkan jenis data yang berbeza bersama-sama, membuat kode kita lebih teratur dan mudah untuk diuruskan. Itu seperti memiliki cabinet fail yang super efisien untuk data anda!

Sekarang, mari kita jelajahi tiga jenis rekod di PL/SQL:

  1. Rekod Berdasarkan Tabel
  2. Rekod Berdasarkan Cursor
  3. Rekod Ditakrifkan Pengguna

Rekod Berdasarkan Tabel

Rekod berdasarkan tabel adalah seperti mengambil snapshot baris di dalam jadual pangkalan data anda. Mereka secara automatik menyesuaikan struktur jadual, membuat mereka sangat mudah untuk digunakan.

Imejkan jika kita ada jadual yang dipanggil employees dengan kolom employee_id, first_name, last_name, dan salary. Berikut adalah cara kita boleh membuat dan menggunakan rekod berdasarkan tabel:

DECLARE
emp_record employees%ROWTYPE;
BEGIN
SELECT * INTO emp_record
FROM employees
WHERE employee_id = 101;

DBMS_OUTPUT.PUT_LINE('Nama Pegawai: ' || emp_record.first_name || ' ' || emp_record.last_name);
DBMS_OUTPUT.PUT_LINE('Gaji: $' || emp_record.salary);
END;
/

Dalam contoh ini, emp_record adalah ditakrifkan sebagai rekod yang menyesuaikan struktur jadual employees. Kemudian kita memilih satu baris dari jadual dan menyimpannya dalam rekod kita. Akhirnya, kita cetak beberapa maklumat dari rekod.

Buatang seperti mengisi borang yang sudah dirancang untuk menyesuaikan jadual pegawai anda. Itu cepat, mudah, dan pastikan semua maklumat muat sempurna!

Rekod Berdasarkan Cursor

Rekod berdasarkan cursor adalah serupa dengan rekod berdasarkan tabel, tetapi mereka berdasarkan cursor bukan tabel. Sebuah cursor adalah seperti pointer yang boleh melintasi set hasil daripada queri.

Berikut adalah contoh bagaimana menggunakan rekod berdasarkan cursor:

DECLARE
CURSOR emp_cursor IS
SELECT employee_id, first_name, last_name, salary
FROM employees
WHERE department_id = 60;

emp_record emp_cursor%ROWTYPE;
BEGIN
OPEN emp_cursor;
LOOP
FETCH emp_cursor INTO emp_record;
EXIT WHEN emp_cursor%NOTFOUND;

DBMS_OUTPUT.PUT_LINE('ID Pegawai: ' || emp_record.employee_id);
DBMS_OUTPUT.PUT_LINE('Nama: ' || emp_record.first_name || ' ' || emp_record.last_name);
DBMS_OUTPUT.PUT_LINE('Gaji: $' || emp_record.salary);
DBMS_OUTPUT.PUT_LINE('---');
END LOOP;
CLOSE emp_cursor;
END;
/

Dalam contoh ini, kita takrifkan cursor yang memilih kolum khusus daripada jadual employees. Kemudian kita takrifkan rekod berdasarkan cursor ini dan gunakan untuk mengambil dan papar maklumat bagi setiap pekerja di jabatan 60.

Imejkan anda sebagai detektif yang mengikuti jejak petunjuk. Cursor adalah kaca besi anda, dan setiap kali anda menemui petunjuk (atau dalam kes ini, seorang pekerja), anda menulis detilnya dalam buku catatan andalan anda (rekod).

Rekod Ditakrifkan Pengguna

Rekod ditakrifkan pengguna adalah jenis yang paling fleksibel. Anda boleh membuat strukturnya sendiri untuk menyimpan data yang anda perlukan. Itu seperti membuat borang anda sendiri dari awal!

Berikut adalah bagaimana membuat dan menggunakan rekod ditakrifkan pengguna:

DECLARE
TYPE book_record_type IS RECORD (
title VARCHAR2(100),
author VARCHAR2(50),
publication_year NUMBER,
is_bestseller BOOLEAN
);

my_favorite_book book_record_type;
BEGIN
my_favorite_book.title := 'The Hitchhiker''s Guide to the Galaxy';
my_favorite_book.author := 'Douglas Adams';
my_favorite_book.publication_year := 1979;
my_favorite_book.is_bestseller := TRUE;

DBMS_OUTPUT.PUT_LINE('Buku kesukaanku adalah "' || my_favorite_book.title || '"');
DBMS_OUTPUT.PUT_LINE('Ia ditulis oleh ' || my_favorite_book.author || ' pada ' || my_favorite_book.publication_year);

IF my_favorite_book.is_bestseller THEN
DBMS_OUTPUT.PUT_LINE('Ia adalah buku terlaris!');
ELSE
DBMS_OUTPUT.PUT_LINE('Ia adalah harta tersembunyi.');
END IF;
END;
/

Dalam contoh ini, kita takrifkan jenis rekod custom yang dipanggil book_record_type. Kemudian kita membuat rekod jenis ini dan mengisi maklumat tentang buku kesukaan kita. Akhirnya, kita papar detil dan memeriksa jika ia adalah buku terlaris.

Rekod ditakrifkan pengguna adalah seperti membuat resipi anda sendiri. Anda memutuskan tepat apa bahan-bahan (field) yang anda perlukan, dan dalam apa keadaan!

Perbandingan Jenis Rekod

Untuk membantu anda memahami bila untuk menggunakan jenis rekod tertentu, ini adalah jadual perbandingan yang praktis:

Jenis Rekod Kesgunaan Kelebihan Kekurangan
Berdasarkan Tabel Ketika bekerja dengan data yang menyesuaikan struktur jadual Mudah digunakan, secara automatik menyesuaikan struktur jadual Terbatas kepada struktur jadual yang wujud
Berdasarkan Cursor Ketika bekerja dengan hasil queri Fleksibel, boleh berdasarkan queri yang kompleks Memerlukan pengurusan cursor
Ditakrifkan Pengguna Ketika anda memerlukan strukture data custom Paling fleksibel, boleh menyimpan mana-mana gabungan jenis data Memerlukan lebih setup kode

Kesimpulan

Dan di situ, teman belajar yang kesayangan! Kita telah menjelajah melalui negeri Rekod PL/SQL, dari kemudahan rekod berdasarkan tabel ke fleksibiliti rekod ditakrifkan pengguna. Ingat, memilih jenis rekod yang betul adalah seperti memilih alat yang betul untuk kerja - ia boleh membuat hidup coding anda jauh lebih mudah.

Buat terus, tetap ciek, dan sebelum anda tahu, anda akan membuat rekod PL/SQL seperti seorang pro. Selamat coding, dan mayat pangkalan data anda sentiasa teratur dan queri anda pantas!

Credits: Image by storyset