RELATIONSHIP
Relationship adalah suatu hubungan antara beberapa entitas. Konsep ini sangat penting sekali di dalam basis data, di mana memungkinkan entitas- entitas untuk saling berhubungan satu sama lain. Di dalam sebuah relationship, primary key memiliki peran penting untuk mengaitkan entitas. Selain itu, primary key juga digunakan untuk mendefinisikan batasan keterhubungan.
JOIN
Join merupakan salah satu konstruksi dasar dari SQL dan basis data. Join dapat didefinisikan sebagai kombinasi record dari dua atau lebih tabel di dalam basis data relasional dan menghasilkan sebuah tabel (temporary) baru yang disebut sebagai joined table.
Join dapat diklasifikasikan ke dalam dua jenis, yaitu inner join dan outer join.
a. inner join inner join pada dasarnya adalah menemukan persimpangan (intersection) antara dua buah tabel
B outer join dibagi ke dalam tiga jenis, yaitu left outer join, right outer join, dan full outer join. Left outer join (atau left join) mengembalikan semua nilai dari tabel kiri ditambah dengan nilai dari tabel kanan yang sesuai (atau NULL jika tidak ada nilai yang sesuai). Right outer join (atau right join) pada dasarnya sama seperti left join, namun dalam bentuk terbalik—kanan dan kiri. Full outer join (atau full join) pada hakekatnya merupakan kombinasi dari left dan right join.
UNION
MySQL Union adalah statemen yang mengkombinasikan dua buah atau lebih resultset dari beberapa table dengan statemen SELECT sehingga menjadi satu buah resulset. Union Statemen memiliki beberapa ketentuan sebagai berikut. a. Jumlah kolom/field dari setiap statemen SELECT harus sama. b. Tipe data kolom/field dari setiap statemen SELECT harus kompatibel. Secara default Statemen UNION akan menghapus semua record duplikat dari resultset. Apabila Anda ingin record duplikat tetap di tampilkan maka pada resultset tuliskan secara explisit UNION ALL
PENERAPAN BASDAT JOIN
KEGIATAN PEMBELAJARAN 1 😀
CREATE TABLE karyawan( nama varchar(30) NOT NULL, id_dep int(5) NOT NULL )ENGINE = MyISAM;
CREATE TABLE departemen( id_dep int(5) NOT NULL, nama_dep varchar(30) NOT NULL, PRIMARY KEY(id_dep) )ENGINE = MyISAM;
SELECT * FROM karyawan INNER JOIN departemen ON karyawan.id_dep = departemen.id_dep;
SELECT karyawan.nama, departemen.nama_dep FROM karyawan INNER JOIN departemen ON karyawan.id_dep = departemen.id_dep;
KEGIATAN PEMBELAJARAN 2
SELECT * FROM karyawan k LEFT OUTER JOIN departemen d ON k.id_dep = d.id_dep;
SELECT * FROM karyawan k LEFT OUTER JOIN departemen d ON k.id_dep = d.id_dep WHERE d.id_dep IS NULL;
SELECT * FROM karyawan k RIGHT OUTER JOIN departemen d ON k.id_dep = d.id_dep;
SELECT * FROM karyawan k LEFT OUTER JOIN departemen d ON k.id_dep = d.id_dep UNION SELECT * FROM karyawan k RIGHT OUTER JOIN departemen d ON k.id_dep = d.id_dep;
SELECT * FROM karyawan, departemen;
KEGIATAN PEMBELAJARAN 3
create table karyawann (
-> nama varchar(30) not null,
-> id_dep int(5) not null
-> ) ENGINE = MyISAM;
lalu isi data data yang sudah diperintahkan
SELECT nama, id_dep FROM karyawan UNION SELECT nama, id_dep FROM karyawan2;
select nama, id_dep from karyawan4 union all select nama, id_dep from karyawann;
KEGIATAN PEMBELAJARAN 4 STUDY KASUS
Disini kita diperintahkan untuk membuat database baru dengan nama Universitas. dan terdapat 3 tabel di dalamnya yaitu tabel guru, tabel matapelajaran, dan tabel kelas.
create table guruku (
-> nip int(5) not null,
-> nama varchar(30) not null,
-> pengajar varchar(30) not null,
-> asalkota varchar(30) not null
-> ) ENGINE = MyISAM;
LALU ISI DATA DATA SESUAI DENGAN YANG DIPERINTAHKAN
create table matapelajaran (
-> nomp varchar(30) not null,
-> namamp varchar(30) not null,
-> jp int(3) not null
-> ) ENGINE = MyISAM;
LALU ISI DATA SESUAI DENGAN YANG DIPERINTAHKAN
create table kelas (
-> nip int(5) not null,
-> nomp varchar(30) not null,
-> ruangan int(10) not null,
-> jmlsiswa1 int(10) not null
-> ) ENGINE = MyISAM;
LALU ISI DATA SESUAI DENGAN YANG DIPERINTAHKAN
Ketiga tabel sudah dibuat. Maka mari selesaikan 3 soal berikut ini
- Tampilkan Nomor dan matapelajaran yang pesertanya lebih dari 40 orang.
select m.nomp, m.namamp from matapelajaran m inner join kelas k on m.nomp = k.nomp where k.jmlsiswa1>40;
2. Tampilkan nip dan nama guru yang mengajar mata kuliah ‘Basis Data’
select g.nip, g.nama from guruku g inner join kelas k inner join matapelajaran m on g.nip = k.nip and m.nomp = k.nomp where namamp = “Basis Data”;
3. Tampilkan Total jumlah total siswa yang Diajar oleh ‘Steve Budi menggunakan JOIN.
MariaDB [universitas]> select sum(k.jmlsiswa1) as jumlah_siswa1_Steve_Budi from guruku g inner join kelas k on g.nip = k.nip where k.nip = 1;
EVALUASI
1. Jelaskan apa yang dimaksud dengan Relational database adalah kumpulan program dan kemampuan yang memungkinkan tim IT dan lainnya untuk membuat, memperbarui, mengelola, dan berinteraksi dengan database relasional. 2. Sebut dan jelaskan macam macam join Join dapat diklasifikasikan ke dalam dua jenis, yaitu inner join dan outer join. a. inner join inner join pada dasarnya adalah menemukan persimpangan (intersection) antara dua buah tabel b. outer join dibagi ke dalam tiga jenis, yaitu left outer join, right outer join, dan full outer join. Left outer join (atau left join) mengembalikan semua nilai dari tabel kiri ditambah dengan nilai dari tabel kanan yang sesuai (atau NULL jika tidak ada nilai yang sesuai). Right outer join (atau right join) pada dasarnya sama seperti left join, namun dalam bentuk terbalik—kanan dan kiri. Full outer join (atau full join) pada hakekatnya merupakan kombinasi dari left dan right join. 3. Jelaskan apa yang dimaksud union MySQL Union adalah statemen yang mengkombinasikan dua buah atau lebih resultset dari beberapa table dengan statemen SELECT sehingga menjadi satu buah resulset.