1. Membuat database
mysql> create database
universitas;
Query OK, 1 row affected (0.06
sec)
a. Membuat
tabel instruktur
mysql> create table
instruktur(nip varchar(5) primary key, namains varchar(30),
jurusan varchar(20), asalkota
varchar(20));
Query OK, 0 rows affected (0.18 sec)
-
Mengisi
tabel instruktur
mysql> insert into instruktur values('1', 'Steve Wozniak', 'Ilmu
Komputer', 'Ba
ntul');
Query OK, 1 row affected (0.10
sec)
mysql> insert into instruktur values('2', 'Steve Jobs', 'Seni
Rupa', 'Solo');
Query OK, 1 row affected (0.07
sec)
mysql> insert into instruktur values('3', 'James Gosling', 'Ilmu
Komputer', 'Kl
aten');
Query OK, 1 row affected (0.06
sec)
mysql> insert into instruktur values('4', 'Bill Gates', 'Ilmu
Komputer', 'Magel
ang');
Query OK, 1 row affected (0.07
sec)
mysql> select*from
instruktur;
+-----+---------------+---------------+----------+
| nip | namains | jurusan | asalkota |
+-----+---------------+---------------+----------+
| 1 | Steve Wozniak | Ilmu Komputer |
Bantul |
| 2 | Steve Jobs | Seni Rupa | Solo
|
| 3 | James Gosling | Ilmu Komputer |
Klaten |
| 4 | Bill Gates | Ilmu Komputer | Magelang |
+-----+---------------+---------------+----------+
4 rows in set (0.10 sec)
a. Membuat tabel matakuliah
-
Membuat
tabel matakuliah
mysql> create table
matakuliah(nomk varchar(10) primary key, namamk varchar(30),
sks
varchar(5));
a. Membuat tabel kuliah
mysql>
create table kuliah(nip varchar(5), nomk varchar(10), ruangan varchar(5),
jmlmhs varchar(5), foreign key(nip) references
instruktur(nip), foreign key(nom
k)
references matakuliah(nomk));
Query
OK, 0 rows affected (0.19 sec)
1. Tuliskan Query untuk mendapatkan data-data
di bawah ini :
-
Membuat
tabel join yaitu tabel kuliah_join1
mysql> alter table
kuliah_join1 add instruktur varchar(20) after nomk;
Query OK, 4 rows affected
(0.36 sec)
Records: 4 Duplicates: 0
Warnings: 0
mysql> update kuliah_join1,
instruktur set kuliah_join1.instruktur=instruktur.namains where kul
iah_join1.nip=instruktur.nip;
Query OK, 2 rows affected
(0.06 sec)
Rows matched: 4 Changed: 2
Warnings: 0
-
mysql>
alter table kuliah_join1 add jurusan varchar(20) after instruktur;
Query OK, 4 rows affected
(0.54 sec)
Records: 4 Duplicates: 0
Warnings: 0
mysql> update kuliah_join1,
instruktur set kuliah_join1.jurusan=instruktur.jurusan where kuliah
_join1.nip=instruktur.nip;
Query OK, 4 rows affected
(0.06 sec)
Rows matched: 4 Changed: 4
Warnings: 0
a. Instruktur-instruktur jurusan ‘Ilmu
Komputer’
mysql> select*from
instruktur where jurusan='Ilmu Komputer';
+-----+---------------+---------------+----------+
| nip | namains | jurusan | asalkota |
+-----+---------------+---------------+----------+
| 1 | Steve Wozniak | Ilmu Komputer |
Bantul |
| 3 | James Gosling | Ilmu Komputer |
Klaten |
| 4 | Bill Gates | Ilmu Komputer | Magelang |
+-----+---------------+---------------+----------+
3 rows in set (0.05 sec)
b. Nomor matakuliah yang pesertanya lebih
dari 40 orang
mysql> select nomk, jmlmhs
from kuliah_join1 where jmlmhs > 40;
+--------+--------+
| nomk | jmlmhs |
+--------+--------+
| KOM101 | 50 |
| SR101 | 45
|
| KOM201 | 55 |
+--------+--------+
3 rows in set (0.00 sec)
c. Nomor dan matakuliah yang pesertanya lebih
dari 40 orang
mysql> select nomk,
matakuliah from kuliah_join1 where jmlmhs > 40;
+--------+----------------------------+
| nomk | matakuliah |
+--------+----------------------------+
| KOM101 | Algoritma dan
Pemrograman |
| SR101 | Desain Elementer |
| KOM201 | Pemrograman
Besbasis Objek |
+--------+----------------------------+
3 rows in set (0.00 sec)
d. Nip instruktur yang mengampu matakuliah
dengan nomor ‘KOM102’
mysql> select nip from
kuliah_join1 where nomk='KOM102';
+------+
| nip |
+------+
| 1 |
+------+
1
row in set (0.00 sec)
e. Nip instruktur yang mengampu matakuliah
‘basis data’
mysql> select nip from
kuliah_join1 where matakuliah='Basis Data';
+------+
| nip |
+------+
| 1 |
+------+
1
row in set (0.00 sec)
f. Nama matakuliah dan ruangan yang diampu
oleh ‘Steve Jobs’
mysql> select matakuliah,
ruangan from kuliah_join1 where instruktur='Steve Jobs';
+------------------+---------+
| matakuliah | ruangan |
+------------------+---------+
| Desain Elementer | 101 |
+------------------+---------+
1 row in set (0.00 sec)
g. Jumlah total mahasiswa yang diampu oleh ‘Steve
Wozniak’
mysql> select sum(jmlmhs)
from kuliah_join1 where instruktur='Steve Wozniak';
+-------------+
| sum(jmlmhs) |
+-------------+
| 85 |
+-------------+
1 row in set (0.07 sec)
h. Nomor dan nama instruktur yang mengampu
mahasiswa terbanyak
mysql> select nip,
instruktur from kuliah_join1 where jmlmhs='55';
+------+---------------+
| nip | instruktur |
+------+---------------+
| 3 | James Gosling |
+------+---------------+
1
row in set (0.00 sec)
1 3. Buatlah view untuk mendapatkan data :
a. Nomor dan nama instruktur yang belum
mengampu matakuliah apapun
mysql> create view vi_5 as
select nip, namains from instruktur where nip='4';
Query OK, 0 rows affected (0.03 sec)
a. Jumlah matakuliah yang diampu oleh setiap
instruktur
-
Matakuliah
yang diampu Steve Wozniak
mysql> create view vi_1 as
select nip, instruktur, nomk, matakuliah from kuliah_join1 where nip
='1';
Query OK, 0 rows affected
(0.09 sec)
-
Matakuliah
yang diampu Steve Jobs
mysql> create view vi_2 as
select nip, instruktur, nomk, matakuliah from kuliah_join1 where nip
='2';
Query OK, 0 rows affected
(0.06 sec)
-
Matakuliah
yang diampu James Gosling
mysql> create view vi_3 as select
nip, instruktur, nomk, matakuliah from kuliah_join1 where nip
='3';
Query OK, 0 rows affected
(0.04 sec
-
Matakuliah
yang diampu Bill Gates
mysql> create view vi_4 as
select nip, instruktur, nomk, matakuliah from kuliah_join1 where nip
='4';
Query OK, 0 rows affected (0.06 sec)
1 4. Buat trigger untuk pencatat perubahan
ruangan untuk sebuah matakuliah.
-
Membuat
tabel pencatat
mysql> create table
roomchanges (user_id varchar(15), deskripsi varchar(100));
Query OK, 0 rows affected
(0.23 sec)
-
Membuat
trigger untuk mengupdate
mysql> create trigger
akprind after update on kuliah for each row
-> begin
-> insert into roomchanges
values(user(), concat('merubah ruangan ', old.nomk,' dari ruan
g', old.ruangan,' ke ruang ',
new.ruangan));
-> end 3
Query OK, 0 rows affected
(0.08 sec)
-
Mengupdate
mysql> update kuliah set
ruangan='102' where nomk='KOM101'3
Query OK, 1 row affected (0.08
sec)
Rows matched: 1 Changed: 1
Warnings: 0
mysql> select*from
roomchanges3
+----------------+-----------------------------------------------------+
| user_id | deskripsi |
+----------------+-----------------------------------------------------+
| root@localhost | merubah
ruangan KOM101 dari ruang101 ke ruang
102 |
+----------------+-----------------------------------------------------+
1 row in set (0.00 sec)