GARUDA AKAN MAAMPU TERBANG TINGGI

GARUDA AKAN MAAMPU TERBANG TINGGI

Minggu, 03 Oktober 2010


DDL & DML

Create Table

Format Pembuatan Table :
CREATE TABLE       Nama_Tabel (
Nama_kolom1      tipe_kolom1,
Nama_kolom2      tipe_kolom2,
Constraint1, Constraint2
);
Format Constraint Primary Key:
CONSTRAINT Nama_Constraint PRIMARY KEY (Nama_Kolom);
Format Constraint Foreign Key:
CONSTRAINT Nama_Constraint FOREIGN KEY (Nama_KolomFK) REFERENCES Nama_Tabel_Induk (Nama_KolomTI);
Contoh 1: Membuat Tabel Anggota dengan primary key pada kolom no_anggota
create table anggota(                   
no_anggota number(6),                   
nama_anggota varchar(50) not null,
alamat_anggota varchar (100),                                                           
constraint pk1 primary key(no_anggota)  
);
Contoh2: Membuat Tabel Peminjaman dengan 2 buah foreign key yang mengacu ke 2 buah tabel induk
create table peminjaman(                
id_buku char(4),                        
no_anggota number(6),                   
tanggal_pinjam date not null,           
tanggal_deadline date not null,
tanggal_kembali date,                   
denda number(7,2),                      
constraint fk1 foreign key(id_buku) references buku(id_buku),
constraint fk2 foreign key(no_anggota) references anggota(no_anggota)
);
NOTE: Pada saat membuat tabel yang memiliki foreign key, pastikan tabel induk sudah dibuat dan tipe data kolom induk sama persis dengan tipe data kolom FK, adapun nama kolom boleh berbeda.

Alter Table

Format Menambah Kolom/Constraint Table :
ALTER TABLE         Nama_Tabel         ADD (
Nama_kolom1      tipe_kolom1,
Nama_kolom2      tipe_kolom2,
Constraint1, Constraint2
);
Format Memodifikasi Kolom Table :
ALTER TABLE         Nama_Tabel         MODIFY (
Nama_kolom1      tipe_kolom1,
Nama_kolom2      tipe_kolom2
);

Format Membuang Kolom/Constraint Table :
ALTER TABLE         Nama_Tabel         DROP COLUMN    Nama_Kolom;
Atau
ALTER TABLE         Nama_Table         DROP CONSTRAINT              Nama_Constraint;

Contoh1: Menambah kolom golongan darah dan sebuah foreign key ke tabel x kolom_anu
alter table anggota add(                
golongan_darah char(1),                                                          
constraint c foreign key (golongan_darah) references X(anu)  
);
Contoh2: Mengubah tipe data kolom golongan darah menjadi max 2 karakter
alter table anggota modify(             
golongan_darah varchar(2)                                           
);
Contoh3: Membuang kolom golongan_darah dari tabel anggota
alter table anggota
drop column golongan_darah;
Contoh4: Membuang constraint c yang bertipe foreign key dari tabel anggota
alter table anggota
drop constraint c;

Drop Table

Format Penghancuran Table :
DROP TABLE          Nama_Tabel;
Contoh: Menghancurkan tabel anggota berikut seluruh data yang ada di dalamnya
drop table anggota;
Note: Jika tabel A masih diacu oleh tabel B maka harus menghancurkan dulu tabel B sebelum tabel A.

Insert

Format Menambah Data Jika Semua Kolom Ingin Diisi:
INSERT INTO          Nama_Tabel         VALUES (
Data_kolom1,
Data_kolom2,
Data_kolom3
);
Format Menambah Data Jika Hanya Kolom Tertentu Yang Diisi:
INSERT INTO          Nama_Tabel         (Nama_Kolom1, Nama_Kolom2)
VALUES (
Data_kolom1,
Data_kolom2
);
Contoh1: Menambah data pada tabel anggota (semua kolom diisi sesuai urutan kolom pada tabel)
insert into anggota values(             
101,                
‘Ngatimin van der Woodsen’,
‘Jl. Entah Berantah nomor sekian’
);
Contoh2: Menambah data pada tabel anggota hanya pada kolom2 tertentu saja
insert into peminjaman (id_buku, no_anggota, tanggal_pinjam, tanggal_deadline)
values(                   
‘B001’,                   
101,  
’31-JAN-1985’,
’23-FEB-1985’
);
Note:
Insert untuk semua kolom memperhatikan urutan kolom sesuai perintah DESC Nama_Tabel
Untuk tipe data selain number penulisan data diapit dengan petik tunggal (‘)
Format Penulisan Date : DD-MON-YYYY (2 digit tanggal, 3 digit awal bulan dalam bhs inggris, 4 digit tahun)

Update

Format Mengubah Data:
UPDATE Nama_Tabel
SET          Nama_Kolom = data_baru
WHERE   syarat_perubahan_data;
Contoh1: Mengubah semua alamat anggota menjadi ‘Sukabirus’
update anggota set alamat_anggota = ‘Sukabirus’;
Contoh2: Mengubah no_anggota 101 menjadi 201
update anggota set no_anggota = 201
where no_anggota = 101;
Contoh3: Mengubah semua alamat anggota menjadi ‘Sukabirus’ jika nomor anggota antara 200 dan 300
update anggota set alamat_anggota = ‘Sukabirus’
where (no_anggota >= 200) and (no_anggota <= 300);

Delete

Format Menghapus Data:
DELETE FROM       Nama_Tabel
WHERE                   syarat_perubahan_data;
Contoh1: Menghapus seluruh isi tabel anggota
delete from anggota;
Contoh2: Meghapus data anggota yang nomor anggotanya 101
delete from anggota
where no_anggota = 101;
Contoh3: Menghapus semua data anggota yang nomor anggotanya mulai 200 sampai 300
delete from anggota
where (no_anggota >= 200) and (no_anggota <= 300);
Note: Jika fasilitas autocommit dimatikan maka penyimpanan terhadap perubahan data (insert, update, delete) akan terjadi setelah dilakukan perintah COMMIT atau DISC. Jika belum melakukan COMMIT ato DISC dan ingin mengembalikan data ke kondisi semula dapat digunakan perintah ROLLBACK.

Simple Queries

Select... From... Where

Format Query Data:
SELECT    daftar_kolom
FROM     daftar_tabel
WHERE   syarat_dan_atau_foreign_key
Fungsi Agregat: MIN(), MAX(), AVG(), SUM(), COUNT()
SELECT                    daftar_kolom_non_fungsi_ag,         fungsi_ag(nama_kolom1), fungsi_ag(nama_kolom2)
FROM                     daftar_tabel
WHERE                  syarat_dan_atau_foreign_key
GROUP BY              daftar_kolom_non_fungsi_ag

(*) Fungsi agregat dapat digunakan sebagai pengganti daftar kolom, digunakan setelah SELECT...
(*) Jika setelah SELECT digunakan fungsi agregat bersama kolom yang lain yang bukan fungsi agregat maka HARUS menggunakan klausa GROUP BY. Perhatikan contoh 3,4,5 dan 6

Contoh1: Menampilkan nama dan alamat anggota yang diawali huruf A dan terdiri dari 5 huruf
select nama_anggota, alamat_anggota
from anggota
where nama_anggota like 'A____';
Contoh2: Menampilkan nama anggota dan judul buku yang diawail huruf W dan terdiri dari MINIMAL 8 huruf
select nama_anggota, judul_buku
from anggota, buku, peminjaman
where anggota.no_anggota = peminjaman.no_anggota
and buku.id_buku = peminjaman.id_buku
and judul_buku like 'W_______%';
Contoh3: Menampilkan total denda yang pernah dibayar oleh Ngatimin (tanpa menampilkan nama Ngatimin)
Select sum(denda) as totaldenda
from peminjaman, anggota
where anggota.no_anggota = peminjaman.no_anggota
and nama_anggota = 'Ngatimin';
Contoh4: Menampilkan jumlah buku yang pernah dipinjam oleh Ngatiyem (tanpa menampilkan nama Ngatiyem)
select count(id_buku) as jmlbuku
from peminjaman, anggota
where anggota.no_anggota = peminjaman.no_anggota
and nama_anggota = 'Ngatiyem';
Contoh5: Menampilkan total denda yang pernah dibayar oleh Ngatimin (dengan menampilkan nama Ngatimin)
Select nama_anggota, sum(denda) as totaldenda
from peminjaman, anggota
where anggota.no_anggota = peminjaman.no_anggota
and nama_anggota = 'Ngatimin'
group by nama_anggota;
Contoh6: Menampilkan jumlah buku yang pernah dipinjam oleh Ngatiyem (dengan menampilkan nama Ngatiyem)
select nama_anggota, count(id_buku) as jmlbuku
from peminjaman, anggota
where anggota.no_anggota = peminjaman.no_anggota
and nama_anggota = 'Ngatiyem'
group by nama_anggota;
Contoh 7: Menampilkan judul buku dan tanggal peminjaman buku oleh Ngatimin yg tidak dikembalikan
select judul_buku, tanggal_pinjam
from peminjaman, anggota, buku
where anggota.no_anggota = peminjaman.no_anggota
and buku.id_buku = peminjaman.id_buku
and nama_anggota = 'Ngatimin'
and tanggal_kembali is null;

Simple Anonymous PL/SQL

Panduan:
1.       Bagian declare diisi dengan daftar variabel dan tipe datanya masing-masing
2.       Bagian inti program selalu diawali dengan BEGIN dan diakhiri dengan END; serta /
3.       PL/SQL dapat disimpan sebagai file *.sql dan di-run sebagai script dengan perintah @ fullpath, dimana fullpath tidak boleh mengandung spasi
contoh: @ D:\BelajarOracle\Pertemuan3\anu.sql;
4.       Jika blok PL/SQL menmapilkan output ke layar maka setelah login kita harus mengaktifkan screen output dengan cara menjalankan perintah SET SERVEROUTPUT ON setelah login (cukup satu kali tiap login)
5.       Aturan nama variabel: tidak boleh pakai spasi, diawali selain huruf atau mengandung simbol tanda baca

Format Deklarasi Variabel:
Nama_Var             Tipe_data;
atau
Nama_Var             Nama_Tabel.Nama_Kolom%Type;

Format Pembacaan Single Row Data:
SELECT    daftar_kolom
INTO       daftar_variabel
FROM     daftar_tabel
WHERE   syarat;

(*) Format di atas tidak bisa digunakan jika hasil query lebih dari 1 baris, kecuali jika dilengkapi dengan exception

Format Penerimaan Input Dari User:
Nama_Var := &prompt;
atau
Nama_Var := ‘&prompt’;

Note: Prompt bebas namun tidak boleh menggunakan spasi dan simbol selain alfanumerik. Jika Input bertipe selain tipe data number maka &prompt harus diapit petik tunggal (‘)

Contoh1: Menerima input jari-jari dan menampilkan luas serta keliling lingkaran
Declare
jari2         number(5,2);
keliling      number(7,2);
luas          number(7,2);

begin
jari2 := &jari2;
keliling := 2 * 3.14 * jari2;
luas := 3.14 * power(jari2,2);
dbms_output.put_line('Jari-jari lingkaran = '||jari2);
dbms_output.put_line('keliling lingkaran = '||keliling);
dbms_output.put_line('luas lingkaran = '||luas);
end;
/
Contoh2: Menerima input nama anggota dan menampilkan alamatnya
Declare
cari          varchar(30);
nama          anggota.nama_anggota%type;
alamat        anggota.alamat_anggota%type;

begin
cari := '&nama_yang_dicari';
select nama_anggota, alamat_anggota
into nama, alamat
from anggota
where nama_anggota = cari;
dbms_output.put_line(nama||' tinggal di '||alamat);
end;
/


PL/SQL with Conditional

If... Then...


If... Then... Else...


If... Then... Elsif... Else...


Case... When...

PL/SQL with Looping

For... Loop


While... Loop


Loop... Exit When...


PL/SQL with Cursor

Cursor WithOUT Exception


Cursor With Exception

0 komentar:

Posting Komentar