Minggu, 31 Oktober 2010

Cursor Explisit Implisit in oracle

Example cursor explisit  and cursor implisit in oracle

cursor explisit  
select [daftar kolom]
into [daftar variabel]
from [daftar tabel]
where [syarat]
------------------------------------------------------------
select first_name, last_name, salary
into nama_depan, nama_belakang, gaji
from employees
where first_name = ‘Susan’;

1.       declare
nama_cari varchar(15);
nama_depan varchar(15);
nama_belakang varchar(15);
gaji varchar(10);
------------------------------------------------------------------
declare
nama_cari employees.first_name%type;
nama_depan employees.first_name%type;
nama_belakang employees.last_name%type;
gaji employees.salary%type;
2.       declare
nama_cari varchar(15);
nama_depan varchar(15);
nama_belakang varchar(15);
gaji varchar(10);
begin
nama_cari := '&masukkan_nama';
select first_name, last_name, salary
into nama_depan, nama_belakang, gaji
from employees
where first_name = nama_cari;
dbms_output.put_line('pegawai bernama '||nama_depan||’ ‘ ||nama_belakang||' gajinya adalah USD '||gaji);
end;
/
3.       declare
nama_cari employees.first_name%type;
nama_depan employees.first_name%type;
nama_belakang employees.last_name%type;
gaji employees.salary%type;
begin
nama_cari := '&masukkan_nama';
select first_name, last_name, salary
into nama_depan, nama_belakang, gaji
from employees
where first_name = nama_cari;
dbms_output.put_line('pegawai bernama '||nama_depan||
' '||nama_belakang||' gajinya adalah USD '||gaji);
end;
/
Latihan menulis

                Jawaban
                declare
nama_cari employees.first_name%type;
nama_depan employees.first_name%type;
alamat_email employees.email%type;
telepon employees.phone_number%type;
begin
nama_cari := '&masukkan_nama';
select first_name, email, phone_number
into nama_depan, alamat_email, telepon
from employees
where first_name = nama_cari;
dbms_output.put_line('Nama: '||nama_depan);
dbms_output.put_line('Email: '||alamat_email||'@SemogaJaya.co.id');
dbms_output.put_line('Telepon: '||telepon);
end;
/
Latihan menulis

Jawaban
declare
nama_cari employees.first_name%type;
nama_depan employees.first_name%type;
nama_job jobs.job_title%type;
gaji employees.salary%type;
begin
nama_cari := '&masukkan_nama';
select first_name, job_title, salary
into nama_depan, nama_job, gaji
from employees, jobs
where employees.job_id = jobs.job_id
and first_name = nama_cari;
dbms_output.put_line('pegawai bernama '||nama_depan||' pekerjaannya sebagai '||nama_job||' dan gajinya adalah USD '||gaji);
end;
/

cursor implisit
DOFC à (DECLARE, OPEN, FETCH, CLOSE)
Declare
cursor [nama_cursor_bebas] is
select [daftar_kolom]
from [daftar_tabel]
where [syarat];
begin
open [nama_cursor_bebas];
loop
                fetch [nama_cursor_bebas] into [daftar_variabel];
                exit when [nama_cursor_bebas] %notfound;
                [aksi_lain]
end loop;
close [nama_cursor_bebas];
end;
/
Contoh
1.       declare
nama_cari varchar(15);
nama_depan varchar(15);
nama_belakang varchar(15);
gaji varchar(10);
cursor anu is
select first_name, last_name, salary
from employees
where first_name = nama_cari;
begin
nama_cari := '&masukkan_nama';
open anu;
loop
        fetch anu into nama_depan, nama_belakang, gaji;
                        exit when anu%notfound;
                                dbms_output.put_line('pegawai bernama '||nama_depan||' ' ||nama_belakang||' gajinya adalah USD '||gaji);
end loop;
close anu;
end;
/
2.       declare
nama_cari employees.first_name%type;
nama_depan employees.first_name%type;
nama_belakang employees.last_name%type;
gaji employees.salary%type;
cursor anu is
select first_name, last_name, salary
from employees
where first_name = nama_cari;
begin
nama_cari := '&masukkan_nama';
open anu;
loop
        fetch anu into nama_depan, nama_belakang, gaji;
                        exit when anu%notfound;
                dbms_output.put_line('pegawai bernama '||nama_depan||' ' ||nama_belakang||' gajinya adalah USD '||gaji);
end loop;
close anu;
end;
/

Latihan Menulis

Jawaban
declare
nama_cari employees.first_name%type;
nama_depan employees.first_name%type;
alamat_email employees.email%type;
telepon employees.phone_number%type;
cursor anu is
select first_name, email, phone_number
from employees
where first_name = nama_cari;
begin
nama_cari := '&masukkan_nama';
open anu;
loop
        fetch anu into nama_depan, alamat_email, telepon;
        exit when anu%notfound;
        dbms_output.put_line('Nama: '||nama_depan);
        dbms_output.put_line('Email: '||alamat_email||'@SemogaJaya.co.id');
        dbms_output.put_line('Telepon: '||telepon);
        dbms_output.put_line(‘-----------------------------------------------------------’);
end loop;
close anu;
end;
/

Latihan Menulis

Jawaban
declare
nama_cari employees.first_name%type;
nama_depan employees.first_name%type;
nama_job jobs.job_title%type;
gaji employees.salary%type;
cursor anu is
select first_name, job_title, salary
from employees, jobs
where employees.job_id = jobs.job_id
and first_name = nama_cari;
begin
nama_cari := '&masukkan_nama';
open anu;
loop
        fetch anu into nama_depan, nama_job, gaji;
        exit when anu%notfound;
        dbms_output.put_line('pegawai bernama '||nama_depan||' pekerjaannya sebagai '||nama_job||' dan gajinya adalah USD '||gaji);
end loop;
close anu;
end;
/

LOOPING IN ORACLE

Example Looping
1.        Declare
i number(3);
BEGIN
FOR i IN 1..10 LOOP
   DBMS_OUTPUT.PUT_LINE('Ini angka ' || i );
END LOOP;
END;
/

2.       Declare
BEGIN
FOR i IN 1..10 LOOP
   DBMS_OUTPUT.PUT_LINE('Ini angka ' || i );
END LOOP;
END;
/
3.       Declare
X number(3);
BEGIN
X:=&berapa;
FOR i IN 1..x LOOP
   DBMS_OUTPUT.PUT_LINE('Ini angka ' || i );
END LOOP;
END;
/
4.       Declare
x number(3);
BEGIN
X:=&berapa;
FOR i IN 1..x LOOP
   if mod(i,2) = 1 then
      DBMS_OUTPUT.PUT_LINE('Ini angka ' || i );
   else
      DBMS_OUTPUT.PUT_LINE('Ini angka ' || ‘i’ );
   end if;
END LOOP;
END;
/
5.       Declare
X number(3);
BEGIN
X:=&berapa;
FOR i IN 1..x LOOP
   if mod(x,2) = 1 then
      DBMS_OUTPUT.PUT_LINE('proses' );
   else
      DBMS_OUTPUT.PUT_LINE('lewat' );
   end if;
END LOOP;
END;
/
6.       Declare
X number(3);
BEGIN
X:=&berapa;
FOR i IN 1..x LOOP
   if mod(i,2) = 1 then
      for a in 1..i loop
         DBMS_OUTPUT.PUT_LINE(a);
      end loop;
   else
      DBMS_OUTPUT.PUT_LINE('lewat');
   end if;
END LOOP;
END;
/

7.       Declare
X number(3);
BEGIN
X:=&berapa;
FOR i IN 1..x LOOP
   for a in 1..i
      if mod(i,2) = 1 then 
         DBMS_OUTPUT.PUT_LINE(a);
      else
         DBMS_OUTPUT.PUT_LINE('lewat');
      end if;
   end loop;
END LOOP;
END;
/
8.       Declare
X number(3);
BEGIN
X:=&berapa;
FOR i IN 1..x LOOP
   if mod(i,2) = 1 then
      for a in 1..i loop
         DBMS_OUTPUT.PUT_LINE(a);
      end loop;
   end if;
END LOOP;
END;
/
9.       DECLARE
i NUMBER(3);
hasil NUMBER(5);
BEGIN
i:=1;
WHILE i <= 10 LOOP
   hasil := i**3;
   DBMS_OUTPUT.PUT_LINE(i ||' pangkat 3 = '|| hasil );
   i := i + 1;
END LOOP;
END;
/
10.   DECLARE
hasil NUMBER(5);
BEGIN
i:=1;
WHILE i <= 10 LOOP
   hasil := i**3;
   DBMS_OUTPUT.PUT_LINE(i ||' pangkat 3 = '|| hasil );
   i := i + 1;
END LOOP;
END;
/
11.   DECLARE
i NUMBER(3);
hasil NUMBER(5);
BEGIN
i:=10;
WHILE i <= 10 LOOP
   hasil := i**3;
   DBMS_OUTPUT.PUT_LINE(i ||' pangkat 3 = '|| hasil );
   i := i + 1;
END LOOP;
END;
/
12.   DECLARE
i NUMBER(3);
hasil NUMBER(5);
BEGIN
i:=10;
WHILE i <= 10 LOOP
   i := i + 1;
   hasil := i**3;
   DBMS_OUTPUT.PUT_LINE(i ||' pangkat 3 = '|| hasil );
END LOOP;
END;
/
13.    DECLARE
i NUMBER(3);
hasil NUMBER(5);
BEGIN
i:=10;
WHILE i <= 10 LOOP
   hasil := i**3;
   DBMS_OUTPUT.PUT_LINE(i ||' pangkat 3 = '|| hasil );
END LOOP;
END;
/
14.   DECLARE
i NUMBER(3);
hasil NUMBER(5);
BEGIN
i:=10;
WHILE i <= 10 LOOP
   hasil := i**3;
   i := i + 1;
   DBMS_OUTPUT.PUT_LINE(i ||' pangkat 3 = '|| hasil );
END LOOP;
END;
/
15.   DECLARE
total NUMBER(9);
counter NUMBER(6);
BEGIN
total := 0;
counter := 10;
LOOP
   total := total + counter;
   EXIT WHEN total > 50;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Counter: ' || counter);
DBMS_OUTPUT.PUT_LINE(' Total: ' || total);
END;
/
16.   DECLARE
total NUMBER(9);
counter NUMBER(6);
BEGIN
total := 0;
counter := 10;
LOOP
   total := total + counter;
   DBMS_OUTPUT.PUT_LINE(' Total: ' || total);
   EXIT WHEN total > 50;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Counter: ' || counter);
END;
/
17.   DECLARE
total NUMBER(9);
counter NUMBER(6);
BEGIN
total := 0;
counter := 10;
LOOP
   total := total + counter;
   EXIT WHEN total > 50;
   DBMS_OUTPUT.PUT_LINE(' Total: ' || total);
END LOOP;
DBMS_OUTPUT.PUT_LINE('Counter: ' || counter);
END;
/




INPUT, OUTPUT, And IF



Example input output dan IF

1.       declare
B number(2);
begin
B:=101+4;
dbms_output.put_line(‘Bismillah, ini angka’ || B);
end;
/

2.       declare
A varchar(3);
begin
A := ‘tes’;
dbms_output.put_line(a||’duh’);
dbms_output.put_line(A);
dbms_output.put_line(‘Bismillah’);
end;


3.       declare
a number(5);
b number(5);
c number(9);
begin
a:=&nilai_a_berapa_sih;
b:=&nilai_b;
c:=a-b;
dbms_output.put_line(c);
end;
/

4.       declare
a number(5);
b number(5);
c number(9);
d varchar(5);
begin
a:=&nilai_a;
b:=&nilai_b;
d:=‘&nilai_d’;
c:=a+b;
dbms_output.put_line(a|| ‘ditambah’ || b || ‘sama dengan’ || c);
end;
/
5.       declare
x varchar(10);
y number(5);
begin
x:= ‘tes';
Y:= 15;
dbms_output.put_line('Selamat Datang '||x);
if y < 25 then
 dbms_output.put_line(‘tes lagi ah’);
end if;
end;
/


6.       declare
x varchar(10);
y number(5);
begin
dbms_output.put_line('Selamat Datang '||x);
if (y < 25) then
 dbms_output.put_line(‘tes lagi ah’);
end if;
x:= ‘tes';
Y:= 15;
end;
/

7.       declare
x varchar(10);
y number(5);
begin
dbms_output.put_line('Selamat Datang '||x);
if y < 25 then
 dbms_output.put_line('tes lagi ah');
end if;
x:= 'tes';
Y:= 15;
dbms_output.put_line('Selamat Datang '||x);
if y < 25 then
 dbms_output.put_line('tes lagi ah');
end if;
end;
/

8.       declare
x varchar(10);
y number(5);
begin
x := 'abc';
y := 25;
dbms_output.put_line('Selamat Datang '||x);
if (x = 'Abc') then
 dbms_output.put_line('tes lagi ah');
end if;
end;
/

9.       declare
x varchar(10); y number(5); z varchar(10);
Begin
Z := ‘x’;
x := ‘x';
y := 25;
dbms_output.put_line('Selamat Datang '||z);
if (z = x) then
 dbms_output.put_line('tes lagi ah');
end if;
if (z = ‘x’) then
 dbms_output.put_line('tes beda');
end if;
end;
/

10.   declare
jk varchar(10);
umur number(5);
begin
jk := '&jenis_kelamin';
umur := &umur;
if (umur > 60) then
  dbms_output.put_line('inget mati...');
elsif (jk = 'L' and umur >= 25) or (jk='P' and umur >= 20) then
  dbms_output.put_line('buruan nikah bisi expired');
elsif (jk = 'L' and umur < 25) or (jk='P' and umur < 20) then
  dbms_output.put_line('belajar dulu yg bener');
end if;
end;
/

Insert,Update, Delete in oracle

Standard operation of a database is to insert, delete and update. All three are commonly called DML stands for Data Manipulation Language. SQL is a standard language for database processing. Of course, any use Oracle-SQL, just that there are some characteristics that are different from standard SQL.

Once we started discussing the "Try-try" Oracle, then we have a user that is a separate user called TEST. Please you enter the page or go to the Oracle XE SQL + (if you install another version of the oracle, for example: 8i, 9i, 10g, and you also have to include the value hostring / TNSNAMES your database) and login with the user, namely:

User
TEST
Password
test
INSERT
Insert is used to enter data into a table in a user (schema) specific. 
Insert syntax can be written as follows:
INSERT INTO [nama_user].[nama_table]
([nama_kolom1], [nama_kolom2], . . .)
VALUES
([nilai1], [nilai2], . . .);
Keterangan :
nama_user
:
Nama user atau nama schema ketika login
nama_tabel
:
Nama tabel yang terdapat pada user (schema) tersebut
nama_kolom
:
Nama kolom yang akan diisi data pada [nama_tabel]
nilai
:
Nilai yang akan diisikan pada [nama_kolom], mis : [nilai1] akan diisikan ke dalam [nama_kolom1], [nilai2] akan diisikan ke dalam [nama_kolom2]
UPDATE
Update is used to change the data in a table in a user (schema) on the basis of certain specific conditions. SyntaxUpdate can be written as follows:
UPDATE [nama_user].[nama_table]SET
[nama_kolom1] = [nilai1],
[nama_kolom2] = [nilai2],
[nama_kolom3] = [nilai3],
. . .
WHERE
[kondisi_update];
Keterangan :
nama_user
:
Nama user atau nama schema ketika login
nama_tabel
:
Nama tabel yang terdapat pada user (schema) tersebut
nama_kolom
:
Nama kolom yang akan diisi data pada [nama_tabel]
nilai
:
Nilai yang akan diisikan pada [nama_kolom]
kondisi_update
:
Sebuah kondisi yang yang menyaring (filter) record-record mana saja yang akan di update
DELETE
Delete is used to erase data on a table in a user (schema) under certain specific conditions. SyntaxDelete can be written as follows:
DELETE [nama_user].[nama_table]WHERE
[kondisi_delete];
Keterangan :
nama_user
:
Nama user atau nama schema ketika login
nama_tabel
:
Nama tabel yang terdapat pada user (schema) tersebut
kondisi_delete
:
Sebuah kondisi yang yang menyaring (filter) record-record mana saja yang akan di delete
Before reading the example below, a good idea to first read the article Create Table-Teaching and Learning System - (Analysis & Design). The article will help you to understand the examples given, because the tables used are based on case studies.
Insert :

INSERT INTO
 TEST.MURID (
NIS,
NAMA,
TGL_LAHIR,
JENIS_KELAMIN,
ALAMAT,
ORTU)
VALUES (
’000001′,
‘MUKHTARUL UMAM’,
TO_DATE(’23-04-1993′,‘DD-MM-YYYY’),
‘L’,
‘JL. P. DIPENOGORO, TEGAL’,
‘SULAIMAN’);
Update :

UPDATE
 TEST.MURID SET
NAMA = ‘MUKHTARUL UMAM SHOLEH’,
TGL_LAHIR =
 TO_DATE(’25-04-1993′,‘DD-MM-YYYY’)
WHERE
NIS = ’000001′;
Delete :

DELETE
 TEST.MURID
WHERE
NIS = ’000001′;
NB :
·         If you want to change a database kept by the end of each DML syntax to execute COMMIT;
·        If companies do not want to keep the alias want restored then end with the execution ROLLBACK;

Rabu, 06 Oktober 2010

Database management system



 SQL (DDL & DML)



SQL (Structured Query Language) adalah sebuah bahasa yang dipergunakan untuk mengakses data dalam basis data relasional. Bahasa ini secara de facto merupakan bahasa standar yang digunakan dalam manajemen basis data relasional
Secara umum SQL terdiri dari dua bahasa
1. DDL (Data Definition Language)
    DDL digunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan
    objek-objek yang diperlukan dalam basis data, misalnya tabel, view, user, dan 
    sebagainya. Secara umum, DDL yang digunakan adalah 
    CREATE untuk membuat objek  baru, 
    USE untuk menggunakan objek, 
    ALTER  untuk mengubah objek yang sudah ada, dan 
    DROP untuk menghapus objek. 
DDL biasanya digunakan oleh administrator  basis data dalam pembuatan sebuah aplikasi basis data. 

2. DML (Data Manipulation Language)
    DML digunakan untuk memanipulasi data yang ada dalam suatu tabel. Perintah yang 
    umum dilakukan adalah:
SELECT untuk menampilkan data
INSERT untuk menambahkan data baru
UPDATE untuk mengubah data yang sudah ada
DELETE untuk menghapus data

Contoh 

DDL (Data Definition Language)
1.  Masuk ke MySQL
     C:\Documents and setting\Mahasiswa BSI> mysql
2.  Buat database “NIM_Perpus” dan lihat database tersebut
     Mysql>> CREATE DATABASE 12054377_perpus;
3. Buat table “anggota” dengan struktur:
    
                                                                                                                        
Field    Name
Type
Size
Ket
Id_anggota Varchar 4
Primary    key
Nama Varchar 15
ALamat Varchar 20
Notelp Varchar 12
Tgl_lahit Varchar


Mysql>> CREATE TABLE anggota(id_anggota varchar(4),
    Nama varchar(15),
    Alamat varchar(20),
    Notelp varchar(12),
    Tgl_lahir date, primary key(id_anggota));

a. Hapus primary key
    Mysql>> ALTER  TABLE anggota DROP Primary Key;

b. Tambahkan kembali primary key pada "id_anggota"
    Mysql>> ALTER TABLE anggota ADD Primary     Key(id_anggota);

4. Lihat field table "anggota"
    Mysql>> CREATE DATABASE 12054377_perpus;


5. Ganti nama table "anggota" menjadi "anggota_baru". Lalu lihat perubahan tersebut
    Mysql> RENAME TABLE anggota TO anggota_baru;

6. Ganti field "nama" dengan "nama_anggota" lalu lihat perubahannya
    Mysql>> ALTER TABLE anggota_baru CHANGE nama nama_anggota VARCHAR(15);

7. Tambahkan field "tgl_anggota" dengan type varchar(15)
    Mysql>> ALTER TABLE anggota_baru ADD tgl_anggota  varchar(15); 

8. Ubahlah type "tgl-anggota" menjadi Date
    Mysql>> ALTER TABLE anggota_baru CHANGE tgl_anggota  tgl_anggota Date;

9. Hapus field "tgl_anggota"
    Mysql>> ALTER TABLE anggota_baru drop tgl_anggota;

10. Lihat field-field anggota_baru
      Mysql>> DESCRIBE anggota_baru;

DML (Data Manipulation Language)

11. Isi record pada table tersebut dengan data anda
      Contoh : 001, Razbie, Jakarta, 0218000063, 04/05/2010
      Mysql>> INSERT INTO VALUES(‘001’,’Razbie’, ’Jakarta’,’0218000063’,’2010-05-04’);

12. Lihat semua isi record
      Mysql>> SELECT *FROM anggota_baru;

13. Tambahkan record untuk field "id_anggota" dan  "nama_anggota"
      Contoh : A002, Intan
      Mysql>> INSERT INTO  anggota_baru(id_anggota,nama_anggota) 
      VALUES(‘A002’,’Intan’);

14. Lihat record dari table "anggota" dimana "id_anggota"  001
      Mysql>> SELECT *FROM anggota_baru WHERE  id_anggota=’001’;

15. Lakukan perubahan untuk "id_anggota" 001 menjadi "A001"
      Mysql>> UPDATE anggota_baru SET id_anggota=’A001’ WHERE id_anggota=’001’;

16. Hapus record dimana “id_anggota” A002
      Mysql>> DELETE anggota_baru WHERE id_anggota=’A002’;

Diberdayakan oleh Blogger.

Blogger template by AdsenseBloggerTemplates | Original design by andrastudio

Powered by Blogger