Anda di halaman 1dari 38

PROGRAM STUDI

SISTEM INFORMASI MATA KULIAH


BASIS DATA LANJUTAN

Fungsi SQL Lanjutan


QUERY ANTAR TABEL
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

Capaian Pembelajaran

• Mahasiswa mampu menjelaskan fungsi SQL

Kemampuan Akhir yang Diharapkan

• Mahasiswa mampu menerapkan fungsi-fungsi SQL antar tabel


PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

PENGERTIAN
Hubungan yang terjadi pada suatu table dengan table lainnya yang saling berinteraksi
dan bersinergi satu sama lainnya

Macam-macam Hubungan
- One to One
- One to Many
- Many to Many
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

RELASI TABEL
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

2. Menggabungkan Tabel

Salah satu kelebihan dari SQL adalah Kemampuan untuk menggabungkan dua table atau lebih
untuk menyediakan informasi, prosesnya disebut dengan JOIN.

Sebagai gambaran untuk menghasilkan informasi KHS (Kartu Hasil Studi) diperlukan setidaknya
table mata kuliah, mahasiswa, KRS, dan dosen.
Berdasarkan tabel2 tersebut dapat diperoleh informasi KHS melalui JOIN.
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

3. Query dua Tabel


Contoh : menampilkan identitas pemeran, judul dan peran yang dimainkan
select mainsbg.kode_pem, film.judul, mainsbg.peran from mainsbg, film WHERE mainsbg.kode_film =
film.kode_film;
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

select mainsbg.kode_pem, film.judul, mainsbg.peran from mainsbg, film WHERE mainsbg.kode_film =


film.kode_film order by mainsbg.kode_pem;
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

4. MENGUNAKAN ALIAS
Nama table yang digunakan dalam query antar table dapat diberi nama alias
Bentuk Umum
SELECT alias1.kolom, alias2.kolom FROM tabel1 alias1, tabel2 alias2 WHERE kondisi;
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

CONTOH : Dapat ditulis menjadi :


SELECT main.kode_pem, SELECT m.kode_pem,
film.judul, f.judul,
main.peran m.peran
FROM MAIN, FILM FROM MAIN m, FILM f
WHERE main.kode_film=film.kode_film WHERE m.kode_film=f.kode_film
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

5. PERKALIAN KARTESIAN
Bentuk paling sederhana dari penggabungan dua buah table akan membentuk
perkalian kartesian (Cartesian Product) atau biasa disebut cross join atau full
join
Hal ini diperoleh kalau klausa WHERE tidak disebutkan.
Contoh :

Jika diberikan operasi :


SELECT * FROM tabel1, tabel2;

hasilnya :
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

6. EQUIJOIN DAN NON-EQUIJOIN


Equijoin adalah penggabungan antar table yang menggunakan operator =,
pada klausa where.
Hasil dari operasi ini akan menampilkan baris-baris yang ada dikedua tabel

CONTOH :
SELECT p.nama,
f.judul,
m.peran
FROM pemeran p, film F, main m
WHERE m.kode_film=f.kode_film AND m.kode_pem=p.kode_pem;
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

Hasil query :

Jika operator yang digunakan untuk menghubungkan satu table dengan table lainnya tidak berupa sama
dengan (=), tetapi berupa operator <> atau >= maka disebut non-equijoin.
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

7. SELF-JOIN
Self-Join merupakan upaya
penggabungan dari table yang sama
CONTOH :
Untuk memperoleh pasangan bintang
film pria dan wanita yang terdapat pada
table PEMERAN

SELECT x.nama, y.nama


FROM pemeran x, pemeran y
WHERE x.sex=‘P’ AND y.sex=‘W’;
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

8. INNER-JOIN
Inner-Join hanya menghasilkan kombinasi semua baris yang memiliki pasangan saja. Baris yang tidak memiliki
pasangan tidak akan ditampilkan

CONTOH :
SELECT p.nama, SELECT p.nama,
m.kode_film, m.kode_film,
m.peran m.peran
FROM pemeran p, main m FROM pemeran p INNER JOIN main m
WHERE p.kode_pem=m.kode_pem WHERE p.kode_pem=m.kode_pem
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

9. OPERATOR NATURAL JOIN


Akan melakukan operasi equijoin dengan memperlakukan nama-nama kolom yang sama sebagai
penghubung (relasi) antar tabel

Contoh :
SELECT p.kode_pem,
p.nama,
m.kode_pem,
m.kode_film
FROM pemeran p NATURAL JOIN main m;
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

SELECT p.kode_pem, p.nama,


m.kode_pem, m.kode_film
FROM pemeran p NATURAL JOIN main m;

Identik dengan :

SELECT p.kode_pem, p.nama,


m.kode_pem, m.kode_film
FROM pemeran p, main m
WHERE p.kode_pem=m.kode_pem;

Catatan : pada penggunaan operator NATURAL JOIN, tidak


memerlukan kondisi p.kode_pem=m.kode_pem;
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

2. OPERATOR LEFT OUTER JOIN


- Menampilkan relasi dengan menjadikan tabel pertama sebagai acuan

- Akan menampiltan table disebelah kanan dengan null, jika tidak


terdapat hubungan dengan table disebelah kiri

- Baris – baris yang tidak memiliki pasangan pada tabel yang ada
isebelah kiri kata “JOIN” akan tetap ditampilkan
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

Tabel1 tabel2

Jika diberikan operasi :


SELECT * FROM tabel1 LEFT OUTER JOIN tabel2 on tabel1.a=tabel2.x ;
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

2. OPERATOR RIGHT OUTER JOIN


- Menampilkan relasi dengan menjadikan tabel kedua sebagai acuan

- Akan menampiltan table disebelah kiri dengan null, jika tidak


terdapat hubungan dengan table disebelah kanan

- Baris – baris yang tidak memiliki pasangan pada tabel yang ada
disebelah kanan kata “JOIN” akan tetap ditampilkan.
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

Tabel1 tabel2

Jika diberikan operasi :


SELECT * FROM tabel1 RIGHT OUTER JOIN tabel2 on tabel1.a=tabel2.x ;
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

Tabel1 tabel2
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

SUB QUERY
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

Merupakan query yang terletak dalam query yang lain.


Untuk memahami sub query diberikan table gaji, dengan struktur berikut :
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

Contoh : Tabel gaji diisi data sebagai berikut :


PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

Berdasarkan table tersebut diatas, akan ditampilkan data karyawan yang


mempunyai gaji tertinggi :

SELECT * FROM gaji WHERE gaji = (SELECT MAX(gaji) FROM gaji);

Hasil dari perintah ini adalah :


PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

OPERATOR EXISTS
Merupakan jenis operator boolean, yang menghasilkan nilai benar (true) atau salah (false).
Operator Exists akan memberikan nilai benar (true) kalau sub query menghasilkan paling tidak
sebuah baris / record.

Contoh 1 :
Akan ditampilkan daftar nama mahasiswa yang sudah melakukan krs.

MySQL>SELECT nama FROM mhs


 WHERE EXISTS
 (SELECT * FROM krs WHERE krs.nim = mhs.nim);
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

Contoh 2 :
Akan ditampilkan daftar nama mahasiswa yang tidak melakukan krs.

MySQL>SELECT nama FROM mhs


 WHERE NOT EXISTS
 (SELECT * FROM krs WHERE krs.nim = mhs.nim);
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

Operator Any (Some)


Operator Any (some) hampir sama penggunaannya seperti Exists, tetapi
operator relasi yang digunakan biasanya selain = (sama dengan)

Contoh :
Akan menampilkan daftar nama pegawai dan gaji yang gajinya tidak
paling sedikit.

MySQL> SELECT nama_peg, gaji


 FROM pegawai
 WHERE gaji > ANY (SELECT gaji FROM pegawai);
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

Operator All
Operator all digunakan untuk melakukan pembandingan dengan sub query. Kondisi
dengan all menghasilkan nilai benar jika pembandingan menghasilkan benar untuk
setiap nilai dalam sub query.
Contoh :
Akan menampilkan nama dan gaji pegawai yang gajinya lebih rendah
daripada semua pegawai di departemen ‘Akunting’.

SELECT nama_peg, gaji FROM pegawai


WHERE gaji < All (SELECT gaji FROM Pegawai WHERE depart = ‘Akunting’);
PROGRAM STUDI MATA KULIAH
SISTEM INFORMASI BASIS DATA LANJUTAN

SELESAI

Anda mungkin juga menyukai