Labsheet 7 – SQL Lengkap
1. CREATE DATABASE
CREATE DATABASE roaster_rs;
USE roaster_rs;
2. CREATE TABLE
Tabel spesialis
CREATE TABLE spesialis (
kode_spesialis VARCHAR(5) PRIMARY KEY,
jns_spesialis VARCHAR(50)
);
Tabel dokter
CREATE TABLE dokter (
kode_dokter VARCHAR(5) PRIMARY KEY,
nm_dokter VARCHAR(100),
kode_spesialis VARCHAR(5),
jk CHAR(1),
alamat VARCHAR(100),
telp VARCHAR(15),
FOREIGN KEY (kode_spesialis) REFERENCES spesialis(kode_spesialis)
);
Tabel roaster
CREATE TABLE roaster (
kode_dokter VARCHAR(5),
hari VARCHAR(20),
jam_awal TIME,
jam_akhir TIME,
FOREIGN KEY (kode_dokter) REFERENCES dokter(kode_dokter)
);
3. INSERT DATA
Insert tabel spesialis
INSERT INTO spesialis VALUES
('du', 'Dokter Umum'),
('jtg', 'Spesialis Jantung'),
('paru', 'Spesialis Paru'),
('ank', 'Spesialis Anak'),
('tht', 'Spesialis Telinga Hidung Tenggorokan');
Insert tabel dokter
INSERT INTO dokter VALUES
('D001','dr. Nuriana','du','P','Jl. M.Yamin No.12','08725667575'),
('D002','dr. Sapto Mulyadi, Sp.J','jtg','L','Jl. Wahid Hasyim RT.8','08872657656'),
('D003','dr. Deni Rianto','du','L','Jl. DR. Sutomo Gg.1','08276476565'),
('D004','dr. Henry Cahyadi, Sp.P','paru','L','Jl.A.Yani N0.98','08117675656'),
('D005','dr. Nanan Wijaya, Sp.A','ank','L','Jl. Kusuma Bangsa No.7','08116756545'),
('D006','dr. Sarah Yasmina, Sp.A','ank','P','Jl.M.Yamin No.34','08128766544'),
('D007','dr. Erick Jaya, Sp.THT','tht','L','Jl. DR.Sutomo Gg.5','08138767665'),
('D008','dr. Wayan Bhakti','du','L','Jl.Suryanata Gg.2','08259878767'),
('D009','dr. Ahmad H, Sp.P','paru','L','Jl. Kadrie Oening No76','08123665467'),
('D010','dr. Andini Anastasia','du','P','Jl.Wahid Hasyim No.145','08652454373');
Insert tabel roaster
INSERT INTO roaster VALUES
('D001','Senin','07:00','15:00'),
('D002','Senin','07:00','15:00'),
('D003','Senin','14:00','22:00'),
('D004','Selasa','07:00','15:00'),
('D005','Selasa','14:00','22:00'),
('D006','Selasa','07:00','15:00'),
('D007','Selasa','14:00','22:00'),
('D008','Rabu','07:00','15:00'),
('D009','Rabu','14:00','22:00'),
('D010','Kamis','07:00','15:00'),
('D001','Kamis','14:00','22:00'),
('D010','Kamis','07:00','15:00'),
('D004','Jumat','07:00','15:00'),
('D005','Jumat','14:00','22:00'),
('D003','Jumat','07:00','15:00'),
('D002','Jumat','14:00','22:00');
PENGGUNAAN VIEW
Membuat view vw_dokter
CREATE VIEW vw_dokter AS
SELECT kode_dokter, nm_dokter FROM dokter;
Menampilkan view
SELECT * FROM vw_dokter;
Membuat view dengan nama field berbeda
DROP VIEW vw_dokter;
CREATE VIEW vw_dokter(kd_dok, nm_dok) AS
SELECT kode_dokter, nm_dokter FROM dokter;
View lebih dari satu tabel
SELECT kode_dokter, nm_dokter, jns_spesialis
FROM dokter, spesialis
WHERE dokter.kode_spesialis = spesialis.kode_spesialis;
JAWABAN TUGAS VIEW
1. View vw_jk
CREATE VIEW vw_jk AS
SELECT
jk AS jenis_kelamin,
COUNT(*) AS jumlah
FROM dokter
GROUP BY jk;
2. View jadwal_dokter
CREATE VIEW jadwal_dokter AS
SELECT
d.nm_dokter AS nama_dokter,
r.hari,
r.jam_awal
FROM dokter d
JOIN roaster r ON d.kode_dokter = r.kode_dokter;
3. View jumlah dokter jaga per hari
CREATE VIEW vw_jumlah_dokter_hari AS
SELECT
hari,
COUNT(kode_dokter) AS jumlah_dokter
FROM roaster
GROUP BY hari;