Anda di halaman 1dari 7

RELASI TABLE (WHERE)

Diberikan sample 3 buah tabel yang saling berelasi satu sama lain beserta sampel datanya.

Relasi Basis Data Bank

Tabel Rekening
Id_nasabah Nomor_rekening Saldo Kode_cabang
AA001 001000123 20.000.000 A123
AB002 002000123 5.000.000 B123
CC003 003000123 75.000.000 C123
CD004 004000123 20.000.000 D123
DD005 005000123 1.500.000 E123

Tabel Nasabah
Id_nasabah Nama_nasabah Alamat_nasabah
AA001 Rudi Jl.Sepat
AB002 Yuni Jl.Baung
CC003 Hani Jl.Gurame
CD004 Kiki Jl.Nila
DD005 Lala Jl.Mujair

Tabel Cabang
Kode_cabang Nama_cabang Kota
A123 JKT01 Jakarta Pusat
B123 JKT02 Jakarta Selatan
C123 BDO01 Bandung
D123 SBY01 Surabaya
E123 DPK01 Depok
------------------------------------------------------------------------------------------------------------

Langkah Kerja

1. Buat Basis Data Bank

Syntax: CREATE DATABASE bank;

2. Buat Table Nasabah


CREATE TABLE nasabah(Id_nasabah VARCHAR(5), Nama_nasabah VARCHAR(25),
Alamat_nasabah VARCHAR(25));

INSERT INTO `bank`.`nasabah` (`Id_nasabah` ,`Nama_nasabah`,`Alamat_nasabah` )VALUES


('AA001', 'Rudi', 'Jl. Sepat'), ('AB002', 'Yuni', 'Jl. Baung'), ('CC003', 'Hani', 'Jl. Gurame'), ('CD004',
Kiki', 'Jl. Nila'), ('DD005', 'Lala', 'Jl. Mujair');

3. Buat Tabel Rekening

CREATE TABLE Rekening(Id_nasabah VARCHAR(5), Nomor_rekening INT(10), Saldo


BIGINT(30), Kode_cabang VARCHAR(4));

INSERT INTO `bank`.`rekening`(`Id_nasabah` ,`Nomor_rekening` ,`Saldo` ,


`Kode_cabang` )VALUES ('AA001', '001000123', '20000000', 'A123'), ('AB002', '002000123',
'5000000', 'B123'), ('CC003', '003000123', '75000000', 'C123'), 'CD004', '004000123',
'20000000', 'D123'), ('DD005', '005000123', '1500000', 'E123');

4. Buat Tabel Cabang

CREATE TABLE Cabang(Kode_cabang VARCHAR(4), Nama_cabang VARCHAR(5), Kota


VARCHAR(25));

INSERT INTO `bank`.`cabang` (`Kode_cabang` ,`Nama_cabang` ,`Kota`


)VALUES ('A123', 'JKT01', 'Jakarta Pusat'), ('B123', 'JKT02', 'Jakarta Selatan'), ('C123', 'BDO01',
'Bandung'), ('D123', 'SBY01', 'Surabaya'
), ('E123', 'DPK01', 'Depok');

Relasi 2 Tabel (Basis Data Bank)

1. Tampilkan Id_nasabah, Nama_nasabah, dan Saldo!


Tentukan tabel mana saja yang dibutuhkan.
Untuk menampilkan Id_nasabah dan Nama_nasabah kita membutuhkan tabel nasabah.
Sedangkan untuk menampilkan saldo kita membutuhkan tabel rekening. Jadi kita akan
menggunakan 2 tabel tersebut.
Perhatikan relasi dari tabel tersebut. Tabel nasabah dan rekening dihubungkan oleh atribut
Id_nasabah.

Query SQL :

Syntax: SELECT `nasabah`.`Id_nasabah`,`nasabah`.`Nama_nasabah`,`rekening`.`Saldo`


FROM `nasabah`,`rekening` WHERE `nasabah`.`Id_nasabah` = `rekening`.`Id_nasabah`;

Output:

2. Tampilkan Nomor rekening dan nama cabang..!


Query SQL :
Syntax: SELECT `rekening`.`Nomor_rekening` , `cabang`.`Nama_cabang`
FROM `rekening` , `cabang` WHERE `rekening`.`Kode_cabang` = `cabang`.`Kode_cabang`;

Output :

3. Tampilkan Nama_nasabah, Alamat_nasabah, dan Nomor_rekening..!

SELECT `nasabah`.`Nama_nasabah` , `nasabah`.`Alamat_nasabah` , `rekening`.`Nomor_rekening`


FROM `nasabah` , `rekening`
WHERE `nasabah`.`Id_nasabah` = `rekening`.`Id_nasabah`;

Output:

4. Tampilkan Nomor_rekening dan Kota..!


SELECT `rekening`.`Nomor_rekening` , `cabang`.`Kota` FROM `rekening` , `cabang` WHERE
`rekening`.`Kode_cabang` = `cabang`.`Kode_cabang`;

Output:

RELASI 3 TABLE

1. Tampilkan nama nasabah yang saldonya diatas 20juta dan rekeningnya tercatat di kota
bandung..!

a. Tentukan tabel yang akan digunakan. (nasabah, rekening, cabang)


b. Cari atribut penghubung antar tabel. (nasabah dengan rekening dihubungkan oleh atribut
Id_nasabah, sedangkan rekening dan cabang dihubungkan oleh atribut Kode_cabang).
c. Buat query SQL
SELECT `nasabah`.`Nama_nasabah`,`rekening`.`Saldo`,`cabang`.`Kota`
FROM `nasabah`,`rekening`,`cabang`
WHERE `nasabah`.`Id_nasabah`=`rekening`.`Id_nasabah`
AND `rekening`.`Kode_cabang`=`cabang`.`Kode_cabang`
AND saldo >20000000 AND Kota=Bandung;

Outputnya:

2. Tampilkan nama_nasabah, Saldo,dan Kota..!


SELECT `nasabah`.`Nama_nasabah`,`rekening`.`Saldo`,`cabang`.`Kota`
FROM `nasabah`,`rekening`,`cabang` WHERE `nasabah`.`Id_nasabah`=`rekening`.`Id_nasabah`
AND `rekening`.`Kode_cabang`=`cabang`.`Kode_cabang`;

Output :

3. Tampilkan Id_nasabah dan Nomor_rekening yang cabangnya berada di Surabaya..!


SELECT `nasabah`.`Id_nasabah` , `rekening`.`Nomor_rekening` , `cabang`.`Kota` FROM `nasabah` ,
`rekening` , `cabang` WHERE `nasabah`.`Id_nasabah` = `rekening`.`Id_nasabah` AND
`rekening`.`Kode_cabang` = `cabang`.`Kode_cabang` AND Kota = 'Surabaya
Output:

4. Tampilkan Nama nasabah yang saldonya diatas 5.000.000 dan berada di cabang Jakarta Pusat..!
SELECT `nasabah`.`Nama_nasabah`,`rekening`.`Saldo`,`cabang`.`Kota`
FROM `nasabah`,`rekening`,`cabang`
WHERE `nasabah`.`Id_nasabah`=`rekening`.`Id_nasabah`
AND `rekening`.`Kode_cabang`=`cabang`.`Kode_cabang`
AND saldo >5000000
AND Kota='Jakarta Pusat';

5. Tampilkan nama nasabah yang tinggal di Jl. Gurame atau yang cabangnya di Bandung..!
SELECT `nasabah`.`Nama_nasabah`,`nasabah`.`Alamat_nasabah`,`cabang`.`Kota`
FROM `nasabah`,`rekening`,`cabang`
WHERE `nasabah`.`Id_nasabah`=`rekening`.`Id_nasabah`
AND `rekening`.`Kode_cabang`=`cabang`.`Kode_cabang`
AND Alamat_nasabah='Jl. Gurame'
AND Kota='Bandung';

Diberikan sampel 3 buah tabel yang saling berelasi satu sama lain beserta sampel datanya.

Relasi Basis Data Akademik

Tabel Mahasiswa
Npm Nama Kelas
2009123001 Abigail 4B
2009123002 Reddi 4C
2009123003 Reva 4A
2009123004 Chyntia 4E
2009123005 Steven 4B

Tabel Nilai
Npm No_mk Mid final
2009123001 110011 78 80
2009123002 120011 80 87
2009123003 130011 69 75
2009123004 140011 80 60
2009123005 150011 85 90

Tabel Matakuliah
No_mk Nama_mk Sks
110011 Basis data 4
120011 Komunikasi 2
130011 Algoritma 3
140011 Jaringan Komputer 3
150011 Logika Matematika 3

Langkah Kerja
1. Buat Basis data Akademik
Syntax: CREATE DATABASE mhs;

2. Buat table Mahasiswa

Syntax : CREATE TABLE mahasiswa(npm INT(12), nama VARCHAR(25), kelas VARCHAR(2));

Syntax : INSERT INTO `mhs`.`mahasiswa` (`npm` ,`nama` ,`kelas` )VALUES (


'2009123001','Abigail','4B'),('2009123002', 'Reddi', '4C'), ('2009123003', 'Reva', '4A'),
('2009123004', 'Chyntia','4E'), ('2009123005', 'Steven', '4B');

3. Buat table Nilai

Syntax : CREATE TABLE nilai(npm INT(12), no_mk INT(6), mid FLOAT(3), final FLOAT(3));
Output:

Syntax: INSERT INTO `mhs`.`nilai` (`npm` ,`no_mk` ,`mid` ,`final` )


VALUES ('2009123001', '110011', '78', '80'), ('2009123002', '120011', '80', '87'),
('2009123003', '130011', '69', '75'), ('2009123004', '140011', '80', '60'), ('2009123005',
'150011', '85', '90');
Output
4. Buat table Matakuliah
Syntax : CREATE TABLE matakuliah(no_mk INT(6), nama_mk VARCHAR(25), sks INT(1));
Output:

Relasi 2 Table
1. Tampilkan npm dan no_mk
SELECT `mahasiswa`.`npm` , `nilai`.`no_mk`
FROM `mahasiswa` , `nilai` WHERE `mahasiswa`.`npm` = `nilai`.`npm`;
Output:

2. Tampilkan npm, nama dan mid..!


SELECT `mahasiswa`.`npm` , `mahasiswa`.`nama` , `nilai`.`mid`
FROM `mahasiswa` , `nilai` WHERE `mahasiswa`.`npm` = `nilai`.`npm`;

Ouput:

3. Tampilkan nama mahasiswa yang nilai midnya diatas 80..!


SELECT `mahasiswa`.`nama` , `nilai`.`mid`
FROM `mahasiswa` , `nilai` WHERE `mahasiswa`.`npm` = `nilai`.`npm` AND mid>80;
4. Tampilkan nama, kelas yang nila mid dibawah 80 atau nilai final diatas 80..!
SELECT `mahasiswa`.`nama` , `mahasiswa`.`kelas` , `nilai`.`mid` , `nilai`.`final`FROM `mahasiswa` ,
`nilai` WHERE `mahasiswa`.`npm` =` nilai`.`npm` AND mid <80 AND final >80;

Output: tidak ada hasil:

5. Tampilkan nama matakuliah yang nilai mid diatas 80..!


SELECT `matakuliah`.`nama_mk` , `nilai`.`mid`FROM `matakuliah` , `nilai` WHERE
`matakuliah`.`no_mk` = `nilai`.`no_mk` AND mid >80;

Output :

Relasi 3 Table

1. Tampilkan nama mahasiswa dan nama matakuliah yang nilai mid nya antara 70 sampai 80..!
SELECT `mahasiswa`.`nama`, `matakuliah`.`nama_mk`, `nilai`.`mid`
FROM `mahasiswa` , `nilai` , `matakuliah` WHERE `mahasiswa`.`npm` = `nilai`.`npm` AND
`nilai`.`no_mk` = `matakuliah`.`no_mk` AND mid BETWEEN '70'
AND '80';

Output :

2. Tampilkan nama mahasiswa yang mengambil matakuliah komunikasi data..!


Syntax: SELECT `mahasiswa`.`nama` , `matakuliah`.`nama_mk` FROM `mahasiswa` , `matakuliah`
, `nilai` WHERE `mahasiswa`.`npm` = `nilai`.`npm` AND `nilai`.`no_mk` = `matakuliah`.`no_mk`
AND nama_mk = 'komunikasi data';

Output:

3. Tampilkan nama mahasiswa, nilai final, dan mata kuliahnya..!


Syntax : SELECT `mahasiswa`.`nama`,`nilai`.`final`, `matakuliah`.`nama_mk` FROM `mahasiswa` ,
`matakuliah` ,`nilai`WHERE `mahasiswa`.`npm` = `nilai`.`npm`
AND `nilai`.`no_mk` = `matakuliah`.`no_mk`;

Output :

4. Tampilkan nama mahasiswa yang nilainya kurang dari 80 dan mengambil matakuliah
Algoritma..!
Syntax : SELECT `mahasiswa`.`nama` , `nilai`.`final` , `matakuliah`.`nama_mk`
FROM `mahasiswa` , `matakuliah` , `nilai` WHERE `mahasiswa`.`npm` = `nilai`.`npm` AND
`nilai`.`no_mk` = `matakuliah`.`no_mk` AND final <80 AND nama_mk = 'Algoritma';

Output :
5. Tampilkan kelas yang nilai finalnya diatas 80 atau yang jumlah sksnya 3..!
Syntax : SELECT `mahasiswa`.`kelas` , `nilai`.`final`
FROM `mahasiswa` , `matakuliah` , `nilai`
WHERE `mahasiswa`.`npm` = `nilai`.`npm`
AND `nilai`.`no_mk` = `matakuliah`.`no_mk`
AND final >80

Output :

Anda mungkin juga menyukai