Sunday, May 13, 2012

EMANIPULASI DATA DENGAN PL/SQL

Publiser angga Debby Frayudha

Manipulasi data menggunakan PL/SQL
Untuk membuat perubahan data pada table, digunakan perintah DML sebagai berikut :
·         INSERT
·         UPDATE
·         DELETE
·         MERGE

Menyisipkan Data
Berikut contoh-contoh program untuk menyisipkan data pegawai baru ke dalam table employees

Pada saat menyisipkan baris data ke dalam table yang dicantumkan pada blok PL/SQL, kita bisa :
·         Menggunakan fungsi sql, semisal user dan sysdate
·         Men-generate primary key dengan menggunakan sequences
·         Menurunkan nilai dalam blok pl/sql
·         Menambahkan kolom yang memiliki nilai default
Mengubah data
Berikut contoh program untuk menambah gaji semua pegawai yang pekerjaannya adalah stock clerks
Pada klausa SET, bagian sebelah kiri selalu kolom/field pada table, sedangkan pada bagian kanan dapat merupakan ekspresi yang terdiri dari kolom table, atau variable local PL/SQL klausa WHERE digunakan untuk menetukan baris yang harus diubah datanya, jika tidak ada baris yang dimodifikasi, tidak ada error yang ditampilkan
penandaan pada program PL/SQL selalu menggunakan := sedangkan penandaan pada kolom sql selalu menggunakan =
Menghapus data
Contoh berukut menghapus baris data pada departemen 10.
Jika klausa WHERE tidak digunakan pada UPDATE, maka semua baris data pada table akan dihapus
Menggabung (Merge) baris
Menyisipkan atau mengubah baris data yang ada dalam table copy_emp untuk dicocokkan dengan data yang ada di table employees. Jika data yang ada di EMPLOYEES sudah ada di copy_emp, maka data di copy_emp tinggal disesuaikan dengan sisi data yang ada di employees. Jika data yang ada di employees belum ada di copy_emp, maka data tersebut disisipkan sebagai data baru ke dalam table copy_emp.

DECLARE
v_empno employees.employee_id%type :=100;
BEGIN
MERGE INTO copy__emp c
USING employees e
ON (e.employee_id = v_empno)
WHEN MATCHED THEN
UPDATE SET
c.first_name = e.first_name,
c.last_name = e.last_name,
c.email = e.email,
. . . . . ..
WHEN NOT MATCHED THEN
INSERT VALUES (e.employee_id, e.first_name, e.last_name, . . . . . . .. . . . . . . . );
END;

 

Aturan Penamaan :
·         Berfunsi untuk menghindari ambiguitas pada klausa where
·         Kolom table dan nama variable harus memiliki nama yang unik tidak boleh sama
·        

DECLARE
v_last_name VARCHAR2(25);

 
Untuk menghindari ambiguitas, missal variable local diawali dengan v_, semisal :



tidak mungkin terjadi ambiguitas pada klausa INTO, ini dikarenakan yang terlibat pada klausa INTO pasti variable PL/SQL, dan bukan nama field dari table.

publisher Angga Debby Frayudha
Share:

0 comments:

Post a Comment