SBD Perintah Query

12
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

Transcript of SBD Perintah Query

Page 1: 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

Page 2: SBD Perintah Query

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’

Page 3: SBD Perintah Query

)

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 :

Page 4: SBD Perintah Query

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)

Page 5: SBD Perintah Query

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 :

Page 6: SBD Perintah Query

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 :

Page 7: SBD Perintah Query

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

Page 8: SBD Perintah Query

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

Page 9: SBD Perintah Query

SELECT S.SNO, S.SNAME, S.CITY FROM SUPPLIER S WHERE

S.SNO>3;

Hasil :

SNO | SNAME | CITY

-----+-------+--------

2 | Jones | Paris

3 | Adams | Vienna