Kamis, 04 November 2010

CURSOR IMPLISIT DAN EKSPLISIT

CURSOR

Cursor merupakan suatu variabel yang digunakan untuk menampung hasil query yang terdiri atas lebih dari satu row atau record. Cursor dapat diilustrasikan sebagai penampung sekaligus pointer atas hasil eksekusi query.

Cursor dibagi menjadi dua macam, yaitu :

· Cursor Implisit

· Cursor Eksplisit

1. Cursor Implisit

Cursor Implisit merupakan cursor yang tidak memerlukan deklarasi terlebih dahulu (tidak bernama). Cursor ini harus menghasilkan satu baris record.

Cursor implisit merupakan cursor yang tidak perlu dideklarasikan sebelumnya. Cursor ini berasosiasi dengan perintah SELECT, INSERT, DELETE, dan UPDATE.

Contoh cursor Implisit :

select first_name, last_name, department_name

from employees e join departments d

on e.department_id=d.department_id

where d.department_id=50;

2. Cursor Eksplisit

Statement declare

àMerupakan deklarasi nama cursor dan definisi struktur query yang akan dilakukan di dalamnya.

CURSOR nama_cursor IS query

Contoh:

DECLARE

CURSOR CUR1 IS SELECT nim, nama, alamat FROM mahasiswa

Statement open

à Sebelum suatu cursor dapat digunakan, cursor harus dibuka terlebih dahulu.

OPEN nama_cursor;

Contoh:

OPEN CUR1;

Statement fetch

à Fetch merupakan perintah untuk mengambil isi cursor, dimana isi dari cursor tersebut adalah hasil query yang telah dideklarasikan pada statement deklarasi cursor.

FETCH nama_cursor INTO ;

Contoh:

FETCH CUR1 INTO v_nim, v_nama, v_alamat;

Statement close

à Setelah pemrosesan query selesai, cursor harus ditutup dengan statemen CLOSE .

CLOSE nama_cursor;

Contoh:

Close CUR1;

Contoh Cursor Eksplisit :

Tampilkan first name , last name dari tabel employees dan nama department yang id department diinputkan oleh user.

jawab :

declare

rata number;

total number;

jum number;

cursor cursor1 is

select first_name, last_name, salary, department_name

from employees e join departments d

on e.department_id=d.department_id

where d.department_id=&input_kode_department;

vrec cursor1%rowtype;

begin

open cursor1;

dbms_output.put_line('=======================================================');

dbms_output.put_line('NO NAME DEPARTMENT NAME SALARY');

dbms_output.put_line('=======================================================');

total:=0;

loop

fetch cursor1 into vrec;

exit when cursor1%notfound;

dbms_output.put_line(rpad(cursor1%rowcount,5,' ')||

rpad(vrec.first_name||' '||vrec.last_name,19,' ')||

rpad(vrec.department_name,25,' ')||

lpad(vrec.salary,6,' '));

total:=total+vrec.salary;

end loop;

rata:=total/cursor1%rowcount;

jum:=cursor1%rowcount;

dbms_output.put_line('=======================================================');

dbms_output.put_line('Jumlah record : '||jum);

dbms_output.put_line('Total salary : '||total);

dbms_output.put_line('Rata - rata salary : '||rata);

close cursor1;

end;

/

ce.JPG

Rabu, 29 September 2010

tugas Tutorial SQL

Nama : Ani Isnawati

NIM : 30109120

Kelas : PIS - 09-08

SELECT :

a. Untuk menampilkan nama table yang telah kita buat

Select * from cat;

b. Untuk menampilakan table yang ingin kita tampilkan

Select* from (nama_table);

c. Untuk menampilkan kolom dari table yang ingin kita tampilkan

Select (nama_coloum) from (nama_table);

d. U tuk menampilkan nama table berdasarkan kondisi

Select * from (nama_table) where(nama_coloum);

e. Menggunakan order untuk mengurutkan secara descending

Select * from (nama_coloum) order by (nama_table) desc;

f. Menggunakan lower untuk mengubah huruf besar menjadi huruf kecil

Select lower (‘ANI’) from dual;

g. Menggunakan upper untuk mengubah huruf kecil menjadi huruf besar

Select upper (‘ani’) from dual;

INSERT:

a. Untuk memasukkan data

insert into (nama_table) values (cdata yang ingin kita isi pada tiap kolomya);

DELETE:

a. Untuk menghapus data yang ada dalam table

Delete from (nama_table) where (kondisi yang ingin kita hapus);

UPDATE:

a. Untuk memperbaharui data atau mengubah isi data yang jika tidak diisikan where maka akan merubah semua kolom data

Update (nama_table) set (nama_coloum) where (kondisi);