Buat tabel mahasiswa, matakuliah dan krs dengan ketentuan. Tuliskan perintah SQL pada tabel krs :
a. Tampilkan no_krs, NIM, nama mahasiswa, kode matakuliah dan nama mata kuliah dari
tabel KRS, MAHASISWA dan MATAKULIAH.
SELECT KRS.NO_KRS,
MAHASISWA.NIM,
MAHASISWA.NAMA_MHS,
MATAKULIAH.KODE_MK,
MATAKULIAH.NAMA_MK
FROM KRS, MAHASISWA, MATAKULIAH
WHERE MAHASISWA.NIM=KRS.NIM AND
MATAKULIAH.KODE_MK=KRS.KODE_MK;
FOREIGN KEY
Contoh:
tbl_kota
id_kota nama_kota id_propinsi
101 surabaya 1
102 gresik 1
103 kebumen 2
104 semarang 2
105 jogjakarta 3
106 bogor 4
107 banten 5
tbl_propinsi
id_prop nama_prop
1 jawa timur
2 jawa tengah
4 jawa barat
7 jakarta
8 sumatera utara
Disini kita mendefinisikan bagaimana mencari data yg ada pada tabel tersebut yang bisa
dihubungkan antara tabel "tbl_kota" & tabel "tbl_propinsi". pada tabel tersebut yang bisa
di relasikan adalah field "id_propinsi" dari tbl_kota & field "id_prop" pada tbl_propinsi.
INNER JOIN
SELECT *
FROM tbl_kota INNER JOIN tbl_propinsi
ON tbl_kota.id_propinsi = tbl_propinsi.id_prop
hasilnya :
id_kota nama_kota id_propinsi id_prop nama_prop
101 surabaya 1 1 jawa timur
102 gresik 1 1 jawa timur
103 kebumen 2 2 jawa tengah
104 semarang 2 2 jawa tengah
106 bogor 4 4 jawa barat
CROSS JOIN
SELECT *
FROM tbl_kota CROSS JOIN tbl_propinsi
ON tbl_kota.id_propinsi = tbl_propinsi.id_prop
hasilnya :
id_kota nama_kota id_propinsi id_prop nama_prop
106 bogor 4 4 jawa barat
102 gresik 1 1 jawa timur
103 kebumen 2 2 jawa tengah
104 semarang 2 2 jawa tengah
101 surabaya 1 1 jawa timur
LEFT JOIN :
SELECT *
FROM tbl_kota LEFT JOIN tbl_propinsi
ON tbl_kota.id_propinsi = tbl_propinsi.id_prop
hasilnya :
id_kota nama_kota id_propinsi id_prop nama_prop
101 surabaya 1 1 jawa timur
102 gresik 1 1 jawa timur
103 kebumen 2 2 jawa tengah
104 semarang 2 2 jawa tengah
105 jogjakarta 3 Null Null
106 bogor 4 4 jawa barat
107 banten 5 Null Null
disini anda lihat bahwa data tbl_kota akan ditampilkan yg tidak berelasi tetap ditampilkan,
dgn pertimbangan data yg di tbl_propinsi tidak ada maka bernilai NULL.
RIGHT JOIN
SELECT *
FROM tbl_kota RIGHT JOIN tbl_propinsi
ON tbl_kota.id_propinsi = tbl_propinsi.id_prop
hasilnya :
id_kota nama_kota id_propinsi id_prop nama_prop
101 surabaya 1 1 jawa timur
102 gresik 1 1 jawa timur
103 kebumen 2 2 jawa tengah
104 semarang 2 2 jawa tengah
106 bogor 4 4 jawa barat
Null Null Null 7 jakarta
Null Null Null 8 sumatera utara
Hasil diatas kebalikan dari LEFT JOIN, bahwa data yg di tbl_kota tidak ada maka bernilai
NULL.
FULL JOIN
SELECT *
FROM tbl_kota FULL JOIN tbl_propinsi
ON tbl_kota.id_propinsi = tbl_propinsi.id_prop
ORDER BY tbl_kota.id_kota
hasilnya :
id_kota nama_kota id_propinsi id_prop nama_prop
101 surabaya 1 1 jawa timur
102 gresik 1 1 jawa timur
103 kebumen 2 2 jawa tengah
104 semarang 2 2 jawa tengah
106 bogor 4 4 jawa barat
105 jogjakarta 3 Null Null
107 banten 5 Null Null
Null Null Null 7 jakarta
Null Null Null 8 sumatera utara