· 6 years ago · Nov 07, 2019, 06:22 AM
1drop database if exists dbLatihan;
2create database dbLatihan;
3use dbLatihan;
4
5create table tblPeserta
6(
7idpeserta int primary key,
8peserta varchar(20) NOT NULL
9) engine = Innodb;
10
11create table tblMataPelajaran
12(
13kodemapel varchar(6) primary key,
14mapel varchar(100) not null
15) engine = Innodb;
16
17create table tblUjian
18(
19idpeserta int,
20kodemapel varchar(6),
21keterangan varchar(3),
22nilai decimal(8,2), /*panjang karakter 8 dengan 2 angka di belakang koma*/
23foreign key(idpeserta) references tblPeserta(idpeserta) ON DELETE CASCADE ON UPDATE CASCADE, /*kalau di PK di DELETE, berarti FK OTOMATIS dihapus, demikian juga yang di UPDATE*/
24foreign key(kodemapel) references tblMataPelajaran(kodemapel) ON DELETE CASCADE ON UPDATE CASCADE
25) engine = Innodb;
26
27/*ON DELETE dan ON UPDATE hanya berlaku untuk mesin database tipe InnoDB dan biasanya digunakan hanya untuk aplikasi lokal/desktop
28kalau IP, yang dipakai mesinnya myisam
29*/
30
31desc tblPeserta;
32desc tblMataPelajaran;
33desc tblUjian;
34
35
36/*memasukan data ke dalam tabel
37INSERT SINGLE VALUE: semua kolom harus disebutkan walaupun tidak berurutan
38SATU PERINTAH SATU DATA
39*/
40
41INSERT INTO tblMataPelajaran(kodemapel, mapel)
42VALUES ('CS-001', 'RDBMS');
43
44INSERT INTO tblMataPelajaran VALUES
45('CS-002', 'DATABASE PROGRAMMING'),
46('CS-003', 'DATA MINING'),
47('CS-004', 'BIG DATA');
48/*
49MULTIPLE VALUES: 1 perintah bisa banyak data
50*/
51INSERT INTO tblPeserta VALUES
52(1, 'Stevanus Mulyono'),
53(2, 'Meliana Saraswati'),
54(3, 'Vinsensia Ananda'),
55(4, 'Rudi Paskalis');
56
57
58/*proses import
59syarat nya jika sudah punya data terlebih dahulu
60datanya format CSV (comma seperated values)
61alasan csv adalah standar penyimpanan flatfile di seluruh platform
62
63yang harus diperhatikan:
641. format csv
652. pembatas antar kolom (;)
663. pengapit values ('----')
67
681;'CS-001';'UTS';48.00
692;'CS-001';'UTS';63.00
703;'CS-001';'UTS';70.00
714;'CS-001';'UTS';64.00
721;'CS-002';'UTS';67.00
732;'CS-002';'UTS';42.00
743;'CS-002';'UTS';91.00
754;'CS-002';'UTS';49.00
76-------------------------------dst
77*/
78
79load data local infile 'sqlrdbms.csv'
80into table tblUjian
81fields terminated by ';'
82enclosed by ''''
83ignore 1 lines; /*diabaikan karena baris 1 adalah judul*/
84-- nomor 6 --
85/*EQUAL JOIN*/
86SELECT tblMataPelajaran.mapel AS MATA_PELAJARAN,
87tblPeserta.peserta AS PESERTA,
88tblUjian.nilai AS NILAI_UAS
89FROM tblMataPelajaran, tblPeserta, tblUjian
90WHERE tblMataPelajaran.kodemapel = tblUjian.kodemapel
91AND tblPeserta.idpeserta = tblUjian.idpeserta
92AND tblMataPelajaran.mapel = 'RDBMS'
93AND tblUjian.keterangan = 'UAS';
94
95/*NATURAL JOIN: diberikan kepada mesin SQL untuk mencari join/pasangannya sendiri >> efeknya sangat lambat untuk data berukuran besar*/
96SELECT tblMataPelajaran.mapel AS MATA_PELAJARAN,
97tblPeserta.peserta AS PESERTA,
98tblUjian.nilai AS NILAI_UAS
99FROM tblMataPelajaran
100NATURAL JOIN tblPeserta
101NATURAL JOIN tblUjian
102WHERE tblUjian.keterangan = 'UAS'
103AND tblMataPelajaran.mapel = 'RDBMS';
104
105/*INNER JOIN*/
106SELECT tblMataPelajaran.mapel AS MATA_PELAJARAN,
107tblPeserta.peserta AS PESERTA,
108tblUjian.nilai AS NILAI_UAS
109FROM tblMataPelajaran
110INNER JOIN tblUjian ON(tblMataPelajaran.kodemapel = tblUjian.kodemapel)
111INNER JOIN tblPeserta ON(tblPeserta.idpeserta = tblUjian.idpeserta)
112WHERE tblUjian.keterangan = 'UAS'
113AND tblMataPelajaran.mapel = 'RDBMS';
114
115/*CROSS JOIN*/
116SELECT tblMataPelajaran.mapel AS MATA_PELAJARAN,
117tblPeserta.peserta AS PESERTA,
118tblUjian.nilai AS NILAI_UAS
119FROM tblMataPelajaran
120CROSS JOIN tblUjian USING(kodemapel)
121CROSS JOIN tblPeserta USING(idpeserta)
122WHERE tblUjian.keterangan = 'UAS'
123AND tblMataPelajaran.mapel = 'RDBMS';
124
125
126-- nomor 7--
127/*EQUAL JOIN*/
128SELECT tblMataPelajaran.mapel AS MATA_PELAJARAN_BIG_DATA,
129tblPeserta.peserta AS PESERTA_MELIANA_SARASWATI,
130tblUjian.nilai AS NILAI_UAS
131FROM tblMataPelajaran, tblPeserta, tblUjian
132WHERE tblMataPelajaran.kodemapel = tblUjian.kodemapel
133AND tblPeserta.idpeserta = tblUjian.idpeserta
134AND tblMataPelajaran.mapel = 'BIG DATA'
135AND tblUjian.keterangan = 'UAS'
136AND tblPeserta.peserta = 'Meliana Saraswati';
137
138/*NATURAL JOIN: diberikan kepada mesin SQL untuk mencari join/pasangannya sendiri >> efeknya sangat lambat untuk data berukuran besar*/
139SELECT tblMataPelajaran.mapel AS MATA_PELAJARAN_BIG_DATA,
140tblPeserta.peserta AS PESERTA_MELIANA_SARASWATI,
141tblUjian.nilai AS NILAI_UAS
142FROM tblMataPelajaran
143NATURAL JOIN tblPeserta
144NATURAL JOIN tblUjian
145WHERE tblUjian.keterangan = 'UAS'
146AND tblMataPelajaran.mapel = 'BIG DATA'
147AND tblPeserta.peserta = 'Meliana Saraswati';
148
149/*INNER JOIN*/
150SELECT tblMataPelajaran.mapel AS MATA_PELAJARAN_BIG_DATA,
151tblPeserta.peserta AS PESERTA_MELIANA_SARASWATI,
152tblUjian.nilai AS NILAI_UAS
153FROM tblMataPelajaran
154INNER JOIN tblUjian ON(tblMataPelajaran.kodemapel = tblUjian.kodemapel)
155INNER JOIN tblPeserta ON(tblPeserta.idpeserta = tblUjian.idpeserta)
156WHERE tblUjian.keterangan = 'UAS'
157AND tblMataPelajaran.mapel = 'BIG DATA'
158AND tblPeserta.peserta = 'Meliana Saraswati';
159
160/*CROSS JOIN*/
161SELECT tblMataPelajaran.mapel AS MATA_PELAJARAN_BIG_DATA,
162tblPeserta.peserta AS PESERTA_MELIANA_SARASWATI,
163tblUjian.nilai AS NILAI_UAS
164FROM tblMataPelajaran
165CROSS JOIN tblUjian USING(kodemapel)
166CROSS JOIN tblPeserta USING(idpeserta)
167WHERE tblUjian.keterangan = 'UAS'
168AND tblMataPelajaran.mapel = 'BIG DATA'
169AND tblPeserta.peserta = 'Meliana Saraswati';