SBD Perintah Query
Transcript of SBD Perintah Query
SISTEM BASIS DATA
Perintah - Perintah Query dalam SQL
Oleh
Desty Rodiah ( 09071002034 )
IF-6B
PROGRAM STUDY TEKNIK INFORMATIKA
FAKULTAS ILMU KOMPUTER
UNIVERSITAS SRIWIJAYA
2010 - 2011
Perintah - Perintah Query dalam SQL
1. IN
Untuk melakukan pengecekan apakah suatu nilai terdapat dalam suatu
himpunan
Syntax : IN(…)
IN SELECT…..
Contoh 1 :
Select * FROM Pelajar a
WHERE a.No_Induk IN (SELECT b.No_INduk FROM Nilai b);
Contoh 2:
Perintah untuk menampilkan data pada tabel jenisfilm yang mana data
pada kolom jenis-nya tercantum pada tabel film menggunakan IN :
Contoh 3:
SELECT Distinct Pnumber
FROM Project
WHERE Pnumber In ( Select Pnumber
From Project, Department, employee
Where Dnum = Dnumber and
MgrSSN = SSN and
Lname = ‘Smith’
)
OR
Pnumber In ( Select PNo
From Works-On, employee
Where ESSN = SSN and Lname = ‘Smith’
)
Dalam contoh diatas, operator perbandingan ‘In’ digunakan untuk
membandingkan satu nilai v dengan satu set (atau multiset) nilai V dan
menghasilkan evaluasi True jika v V.
Operator In juga dapat membandingkan suatu tuple dari nilai-nilai yang
dituliskan dalam tanda kurung dengan satu set tuple yang union compatible
2. NOT IN
Selain perintah In terdapat juga perintah not in. Perintah NOT IN ini
digunakan untuk melakukan pengecekan apakah suatu nilai tidak terdapat
dalam suatu himpunan
Syntax : NOT IN(…)
NOT IN SELECT…..
Contoh :
Perintah untuk menampilkan data pada tabel jenisfilm yang mana data
pada kolom jenis-nya tidak tercantum pada tabel film menggunakan NOT IN :
3. EXIST
Untuk pengecekan apakah suatu query memiliki hasil atau tidak.
Dengan kata lain untuk melakukan pengecekan apakah hasil dari suatu
’correlated nested query’ berisi tuple atau tidak.
Syntax : … WHERE EXIST (SELECT …)
Contoh 1:
SELECT * FROM Pelajar a
WHERE EXIST( SELECT b.No_Induk FROM Nilai b
WHERE a.No_Induk=b.No.Induk);
Contoh 2 :
Perintah untuk menampilkan data pada tabel jenisfilm yang mana data
pada kolom jenis-nya tercantum pada tabel film menggunakan exists :
4. NOT EXISTS
Not Exists ini setara dengan not in. Jadi untuk menampilkan data pada
table tertentu dimana data pada kolom jenis nya tidak tercantum pada tabel
tersebut
Syntax : … WHERE NOT EXIST (SELECT …)
Contoh :
Perintah untuk menampilkan data pada tabel jenisfilm yang mana data
pada kolom jenis-nya tidak tercantum pada tabel film menggunakan NOT IN :
5. SOME/ANY
Operator ini menghasilkan TRUE (benar) jika paling tidak salah satu
perbandingan dengan hasil subquery menghasilkan nilai TRUE. Ilustrasinya :
Gaji > ANY (S) atau Gaji > SOME (S)
Jika subquery S menghasilkan G1, G2, ..., Gn, maka kondisi di atas identik
dengan :
(gaji > G1) OR (gaji > G2) OR ... OR (gaji > Gn)
ANY atau SOME dipakai dalam subquery bila hasil yang dikembalikan lebih
dari satu Jika nilai ANY ,atau SOME diabaikan dan subquery menghasilkan
lebih dari satu nilai ,maka pesan kesalahan akan muncul.
Operator = Any (atau = Some) ekivalen dengan operator In, yang
memberikan nilai true jika nilai v sama dengan beberapa nilai dalam set
V.Operator-operator lain yang dapat dikombinasikan dengan Any (atau Some)
adalah : >, >=, <, <= dan <>. Keyword ALL juga dapat dikombinasikan
dengan salah satu operator-operator ini, misalnya :
Kondisi perbandingan (v > all V) akan memberikan nilai True jika nilai v
lebih besar dari semua nilai dalam set V.
Syntax : operand comparison_operator SOME (subquery
Contoh :
Perintah untuk menampilkan semua data jenisfilm yang harganya
bukan yang terkecil :
6. ALL
Operator ALL digunakan untuk melakukan perbandingan dengan
subquery. Kondisi dengan ALL menghasilkan nilai TRUE (benar) jika
subquery tidak menghasilkan apapun atau jika perbandingan menghasilkan
TRUE untuk setiap nilai query terhadap hasil subquery.
Syntax: operand comparison_operator ALL (subquery)
Contoh 1:
Mencari nomor orders dari semua orders yang berisi item dengan harga total
lebih besar dari total harga dari setiap items dengan nomor orders 1023.
SELECT DISTINCT orders_num FROM items
WHERE total_price > ALL ( SELECT total_price
FROM items WHERE orders_num = 1023)
Contoh 2 :
Perintah untuk menampilkan data jenisfilm yang harganya paling tinggi :
7. UNION
UNION merupakan operator yang digunakan untuk menggabungkan
hasil query, dengan ketentuan jumlah, nama dan tipe kolom dari masing-
masing tabel yang akan ditampilkan datanya harus sama. Union digunakan
untuk menggabungkan lebih dari satu query dan hasil dari setiap query harus
memiliki kolom yang sama
Notasi : r U s, dimana r U s = {t|t€r atau t €s}, yaitu berupa relasi yang
anggota-anggotanya adalah tuple-tuple yang berasal dari r atau s. Bila ada
yang terduplikasi, cukup satu saja yang Dipertahankan
Syarat operasi dapat dilangsungkan
r dan s harus memiliki cacah kolom (arity) yang sama
2masing-masing kolom dari kedua relasi harus kompatibel, artinya
nilai-nilai di dalamnya harus berasal dari domain yang sama.
Syntax : (SELECT * FROM r) UNION (SELECT * FROM s)
Contoh 1:
Menggabungkan semua hasil dari pegawai yang bekerja pada departemen 20
dan departemen 30.
Hasilnya sama dengan perintah :
select * from emp where deptno in(20,30) order by deptno
SELECT * FROM emp WHERE depno=20 union all SELECT *
FROM emp WHERE deptno=30;
Contoh 2 :
Berikut ini perintah untuk memperoleh data pada tabel film dimana jenisnya
action dan horor :
Perintah di atas identik dengan :
Namun tidak semua penggabungan dapat dilakukan dengan OR, yaitu jika bekerja
pada dua tabel atau lebih.
8. SET INTERSECTION
INTERSECT merupakan operator yang digunakan untuk memperoleh
data dari dua buah query dimana data yang ditampilkan adalah yang
memenuhi kedua query tersebut dengan ketentuan jumlah, nama dan tipe
kolom dari masing-masing tabel yang akan ditampilkan datanya harus sama.
Notasi : r ∩ s, dimana r ∩ s = {t|t€r dan t ∩ s }, yaitu berupa relasi yang
anggota-anggotanya adalah tuple-tuple yang ada dalam r dan ada dalam s.
Syarat operasi dapat dilangsungkan
r dan s harus memiliki cacah kolom (arity) yang sama
masing-masing kolom dari kedua relasi harus kompatibel, artinya nilai-
nilai di dalamnya harus berasal dari domain yangsama.
Syntax : SELECT * FROM namatabel1 INTERSECT SELECT * FROM
namatabel2
Contoh :
Cities in table1 intersect [distinct] cities in table2.
SELECT city FROM table1
INTERSECT
SELECT city FROM table2;
Hasil :
CITY
----------
HELSINKI
RIGA
VILNIUS
Contoh 2 :
Cities in table2 intersect [distinct] empty set (cities in table3). Every
intersection with empty set is empty set.
SELECT city FROM table1
INTERSECT
SELECT city FROM table3;
Hasil :
no rows selected
9. SET DIFFERENCE/ EXCEPT
EXCEPT merupakan operator yang digunakan untuk memperoleh data
dari dua buah query dimana data yang ditampilkan adalah data yang ada pada
hasil query 1 dan tidak terdapat pada data dari hasil query 2 dengan ketentuan
jumlah, nama dan tipe kolom dari masing-masing tabel yang akan ditampilkan
datanya harus sama.
Notasi : r − s, dimana r − s = {t|t€r dan t € s } yaitu berupa relasi yang
anggota-anggotanya adalah tuple-tuple yang berasal dari r tetapi tidak di
dalam s.
Syarat operasi dapat dilangsungkan
r dan s harus memiliki cacah kolom (arity) yang sama
masing-masing kolom dari kedua relasi harus kompatibel, artinya nilai-
nilai di dalamnya harus berasal dari domain yang sama.
Syntax : SELECT * FROM namatabel1 EXCEPT SELECT * FROM
namatabel2
Contoh :
SELECT S.SNO, S.SNAME, S.CITY FROM SUPPLIER S WHERE S.SNO
>1
EXCEPT
SELECT S.SNO, S.SNAME, S.CITY FROM SUPPLIER S WHERE
S.SNO>3;
Hasil :
SNO | SNAME | CITY
-----+-------+--------
2 | Jones | Paris
3 | Adams | Vienna