SQLPlus
-- hapus semua table dari database
select 'drop table ' || tname || ' cascade constraint purge;' from tab;
select 'drop view ' || tname || ';' from tab;
-- cara masukkan xxx.sql (selain copy paste)
ketik @ di sqlPlus, kemudian drag file xxx.sql ke sqlPlus lalu enter
-- tampilkan kodetp, nama cust, nama paket dari TRPAKET, PAKET, CUSTOMER dengan VIEW
create view detailPaket as
select tr.kodetp, c.nama as "CUSTOMER", p.nama as "PAKET"
from trpaket tr, customer c, paket p
where tr.kodecust=c.kodecust and tr.kodepk=p.kodepk;
select * from detailpaket;
-- tampilkan kodetp, nama customer, dan nama paket
select dp.notapjm, pkt.customer
from dpjmcd dp, detailPaket pkt
where dp.kodetp=pkt.kodetp;
-- MINUS :: customer siapa saja yang tidak pernah meminjam paket cd
select kodecust, nama
from customer
MINUS
select tr.kodecust, c.nama
from customer c, trpaket tr
where tr.kodecust=c.kodecust;
-- UNION :: tampilkan semua kodecust yg pinjam paket dan pinjam cd --> data kembar dihapus
select kodecust
from trpaket
UNION
select kodecust
from hpjmcd;
-- UNION ALL :: tampilkan semua kodecust yg pinjam paket dan pinjam cd --> data kembar tidak dihapus
select kodecust
from trpaket
UNION ALL
select kodecust
from hpjmcd;
-- CASE :: tampilkan jika jumlah di tabel Paket ... brarti banyak/sedikit/sedang
select kodepk, nama, (case
when jumlah<30 then 'SEDIKIT'
when jumlah>=30 and jumlah<80 then 'SEDANG'
else 'BANYAK'
end) as jumlah,
harga
from paket;
-- SUBQUERY :: kodecd & judulcd yang punya harga sewa paling mahal
select kodecd, judulcd
from cd
where hrgsewa = (select max(hrgsewa)
from cd);
-- NOT IN :: tampilkan supplier yang tidak pernah dibeli cd-nya
select sup.nama
from supplier sup
where sup.kodesup NOT IN ( select kodesup
from hbeli );
-- IN :: tampilkan supplier yang pernah dibeli cd-nya
select sup.nama
from supplier sup
where sup.kodesup IN ( select kodesup
from hbeli );
-- tampilkan nama customer yang pernah meminjam saja
select c.nama
from customer c, hpjmcd hp
where c.kodecust=hp.kodecust;
-- LEFT JOIN :: tampilkan semua customer yang pernah & tidak pernah pinjam beserta nota pinjamnya
select c.nama, hp.notapjm
from customer c
LEFT JOIN hpjmcd hp
ON c.kodecust=hp.kodecust;
-- tambahkan "-" jika customer tidak pernah pinjam pakai NVL
select c.nama, NVL(hp.notapjm, '-')
from customer c
LEFT JOIN hpjmcd hp
ON c.kodecust=hp.kodecust;
Labels: database, programming, sqlplus