SQL untuk
Mengakses Multitable
Pertemuan 1
Guru Mapel : Rila Riliana, S.P
SMK BAKTI KUSUMAH
rilariliana00@gmail.com
Agenda Pertemuan
01
02
03
04
Mengenal SQL Multitable
Relasi Multitable pada sebuah
Database
Merancang Aplikasi Database Toko
Buku
Penerapan Select Multitable
05 Evaluasi
SQL Mutlitable
Misalnya, ketika selesai berbelanja di supermarket, pernahkah
kamu memperhatikan informasi bukti pembayaran yang kam
u terima?
Seperti halnya kasir yang melayani kita, barang-barang yang
di beli, harga satuan barang, tanggal dan waktu serta jumlah
uang yang harus di bayar?
Dari contoh tersebut, kita harus dapat menggabungkan mini
mal dua tabel, yaitu tabel barang dan tabel trasnsaksi. Atau m
enampilkan data karyawan lengkap dengan gajinya, sehingga
harus menggabungkan tabel data karyawan dan data gaji.
Data yang tersimpan dalam data base dapat bervariasi dalam
hal jumlah dan tingkat kompleksitasnya.
SQL Mutlitable
Merancang Aplikasi Database
TOKO BUKU
1. Pembuatan Tabel
a. Tabel Kasir
CREATE TABLE kasir(
id_kasir int(11) NOT NULL PRIMARY KEY, nama varchar(100) DEFAULT NULL,
alamat varchar(200), telepon varchar(13), status_kasir enum(“aktif”,”tidak_aktif”),
username varchar(50), passwrd varchar(20), akses enum(“admin”,”kasir”));
b. Tabel Distributor
CREATE TABLE distributor (
Id_distributor int(11) NOT NULL PRIMARY KEY,
nama_distributor varchar(255) DEFAULT NULL, alamat varchar(255),
telepon varchar(13));
c. Tabel Pasok
CREATE TABLE pasok(
Id_pasok int(11) NOT NULL PRIMARY KEY, id_distributor int(11) DEFAULT NULL, id_buku
int(11), jumlah int(5), tanggal DATE);
d. Tabel Buku
CREATE TABLE buku(
Id_buku int(11) NOT NULL PRIMARY KEY, judul varchar(200) DEFAULT NULL,
noisbn varchar(13), penulis varchar(100), penerbit varchar(50), tahun varchar(4),
stok int(7), harga_pokok int(20), harga_jual int(20), diskon int(3));
d. Tabel Penjualan
CREATE TABLE penjualan(
Id_penjualan int(11) NOT NULL PRIMARY KEY,
id_kasir int(11) DEFAULT NULL,
tanggal DATE );
d. Tabel det_penjualan
CREATE TABLE det_penjualan(
Id_detpenjualan int(11) AUTO_INCREMENT PRIMARY KEY,
id_penjualan int(11), id_buku int(11), jumlah int(7));
2. Membuat sebuah relasi antar tabel
Caranya sebagai berikut :
1) Penerapan constrain forigen key pada tabel pasok, penjualan, dan det_penjualan:
ALTER TABLE pasok ADD FOREIGN KEY (id_distributor) REFERENCES
distributor(id_distributor);
ALTER TABLE pasok ADD FOREIGN KEY (id_buku) REFERENCES
buku(id_buku);
ALTER TABLE penjualan ADD FOREIGN KEY (id_kasir) REFERENCES
kasir(id_kasir);
ALTER TABLE det_penjualan ADD CONSTRAINT fk_bukujual FOREIGN KEY (id_buku)
REFERENCES buku(id_buku);
ALTER TABLE det_penjualan ADD CONSTRAINT fk_bukujualandet FOREIGN KEY
(id_penjualan) REFERENCES penjualan(id_penjualan);
Relasi antara
Tabel pasok dengan
tabel distibutor
Relasi antara
Tabel penjualan dgn
tabel kasir
Relasi antara
Tabel det_penjualan
dengan tabel buku
Relasi antara
Tabel det_penjualan
dgn tabel penjualan
Relasi antara
Tabel pasok dengan
tabel buku
Tampilan relasi antar tabel
Gambar kunci pada setiap
tabel, menandakan bahwa
kolom tersebut merupakan
kunci utama (Primary Key)
3. Pengisian data pada setiap tabel
Contoh :
a. Tabel Kasir
INSERT INTO kasir(id_kasir, nama, alamat, telepon, statu
s_terakhir, username, passwrd, akses) VALUES
(1, “Reno”, “Jl. Pelajar Pejuang Bandung”,”0813900800”,”
aktif”,”renopp”,password(“adminutama”),”admin”),
(2, “Rano”, “Jl. Palasari Bandung”,”0857100200”,”aktif”,
”ranopalasari”,password(“kasir1”),”kasir”),
(3, “Rona”, “Jl. Burangrang Bandung”,”0878200300”,”aktif
”,”ronarang”,password(“kasir2”),”kasir”),
(4, “Reni”, “Jl. Belitung Bandung”,”0815400500”,”aktif”,
”renibelitung”,password(“kasir3”),”kasir”),
(5, “Runa”, “Jl. Merdeka Bandung”,”0856600700”,”aktif”,”
runamerdeka”,password(“kasir4”),”kasir”);
Untuk pengisian pada
tabel selanjutnya,bisa
dilihat di buku paket
berkaitan dengan sint
ax penulisan query
Tampilan Layout dari masing-masing tabel
Tabel Buku
Tabel Pasok
Tabel Penjualan
Tabel det_penjualan
Tabel Kasir
Tabel Distributor
SECTION
BREAK
Insert the title of
your subtitle Here
PLAY TO VIDEO
https://bit.ly/SQLs
electmutlitable
Penerapan Select MultiTable
DML
Data
Manipulation
Language
INSERT
SELECT
UPDATE
DELETE
DDL
Data
Definition
Language
CREATE
ALTER
DROP
DCL
Data Control
Language
GRANT
REVOKE
LOCK
TABLE
TCL
Transactio
n Control
Language
COMMITE
ROLLBACK
Penerapan Select MultiTable
MULTITABLE  menampilkan data dari beberapa tabel
SELECT MULTITABLE  menggabungkan data dari
beberapa tabel (join).
Dalam SQL, join yang kita kenal diantaranya INNER JOIN,
LEFT JOIN, RIGHT JOIN, & NATURAL JOIN.
Select MultiTable menggunakan penggabungan antar tabel yang
ditulis pada klausa WHERE
KLIK
Syarat penerapan select multitable
Your Text Here 1. Field yang menjadi relasi memiliki tipe data dan field size
yang sama (beda sedikit penulisan field tidak masalah)
2. Data yang dimasukan dari kedua tabel yang direlasikan
harus memiliki nilai yang sama. Apabila memasukan nilai
yang berbeda (pada field foreign key) dari tabel induknya
(field primary key), maka ketika data direlasikan tidak
akan muncul atau tampil.
3. Sebelum menyebutkan nama field harus menyebutkan
nama tabel terlebih dahulu
Contoh :
SELECT distributor.id_distributor, distributor.nama_distributor,
Pasok.id_buku from distributor, pasok
WHERE distributor.id_distributor=pasok.id_distributor;
Jika kita lupa menuliskan nama tabel terlebih dahulu, maka akan
muncul pesan eror berikut :
Error Code:1052
Column ‘id_distributor’ in field list is ambigous
1. Equi Join
Equi Join  akan menghasilkan sejumlah baris data yang berelasi antartabel saja.
Jadi, apabila ada data yang tidak berelasi di satu sisi dengan join ini tidak akan muncul
datanya.
VS X
Untuk tabel kasir dengan tabel distributor
tidak dapat di Join kan, karena tidak ada
relasi dalam tabel tersebut
VS 
Untuk tabel pasok dengan tabel distributo
r dapat di Join kan, karena ada relasi dala
m tabel tersebut.
Yaitu ada Primary Key (PK) / kunci induk
dan Forign Key (FK) / kunci anak
PK
FK
Sintax penulisan QUERY menggunakan Equi Join
SELECT distributor.nama_distributor, buku.judul, buku.noisbn, buku.penerbit,Pasok.ju
mlah, pasok.tanggal
FROM distributor, buku, pasok
WHERE buku.id_buku=pasok.id_buku AND pasok.id_distributor=distributor.id_distributor
SELECT tabel1.nama column, tabel2.nama column
FROM tabel1,tabel2
WHERE tabel1.PK=tabel2.FK;
Contoh lain :
SELECT buku.id_buku, buku.judul, buku.harga_jual,
penjualan.tanggal, det_penjualan.jumlah
FROM buku, penjualan, det_penjualan
WHERE buku.id_buku=det_penjualan.id_buku
AND penjualan.id_penjualan=det_penjualan.id_penjualan;
2. Penambahan Fungsi Agregasi dalam Select Multitable
Fungsi Agregasi  Fungsi ya
ng bekerja untuk mendapatkan
nilai dari sekumpulan data yang
telah di kelompokan. Dalam hal
tersebut, basis data pengelomp
okan data dilakukan berdasarka
n sebuah kolom atau gabungan
kolom. Sehingga data dan infor
masi yang di tampilkan berdasa
rkan dari hasil perhitungan mate
matis.
COUNT, untuk menghitung jumlah record yang mempunyai
nilai (bukan NULL) dari kolom tertentu.
SUM, untuk menghitung jumlah dari data yang terdapat di kolom
tertentu. Fungsi SUM hanya dapat digunakan pada kolom yang
mempunyai data dan tipe data numerik.
AVG, untuk menghitung rata-rata dari data yang terdapat di kolo
m tertentu. Fungsi AVG juga hanya dapat digunakan pada kolom
bertipe data numerik.
MIN, menghitung jumlah minimum dari data yang terdapat di kol
om tertentu.
MAX, untuk menghitung nilai maksimum dari data yang terdapat
di kolom tertentu.
Contoh : 1
SELECT buku.id_buku, buku.judul, buku.harga_jual, penju
alan.tanggal,
SUM (det_penjualan.jumlah)
FROM buku, penjualan, det_penjualan
WHERE buku.id_buku=det_penjualan.id_buku AND penjualan.
id_penjualan=det_penjualan.id_penjualan
GROUP BY buku.id_buku;
Selain klausa WHERE,
ada juga klausa
BETWEEN dan LIMIT.
BETWEEN digunakan
untuk menampilkan data
spesifikasi tertentu,
misalnya harga buku
antara 50000 dan 90000
LIMIT untuk membatasi
jumlah data yang akan
ditampilkan.
SELECT buku.id_buku, buku.
judul, buku.harga_jual
FROM buku
WHERE harga_jual
BETWEEN 50000 AND 90000;
SELECT distributor.nama_distr
ibutor, buku.judul, buku.pene
rbit, pasok.jumlah
FROM distributor, buku, pasok
WHERE jumlah > 4
LIMIT 3;
Thank you
Tetap Semangat dan Jaga Kesehatan
Kembali ke
slide 15
Materi Tambahan
JOIN  kita dapat menampilkan data dari beberapa tabel yang berbeda dengan
menggunakan 1 perintah.
INNER JOIN, mengambil semua baris dari
tabel asal dan tabel tujuan dengan kondisi
nilai key yang terkait saja, dan jika tidak
baris tsb tidak akan muncul. Dengan kata
lain, tabel akan digabungkan dua arah seh
ingga tidak ada data yang NULL di satu
sisi.
Kembali ke
slide 15
a. LEFT JOIN, menghubungkan tabel dan
menampilkan semua data (kiri) pada
tabel yang tidak berhubungan, sedangka
n data yang kosong akan bernilai NULL.
b. RIGHT JOIN, kebalikan dari LEFT JOIN, RIGHT
JOIN hampir sama dengan INNER JOIN, namun
pada RIGHT JOIN akan membuat sebuah parame
ter pada sebelah kanan jika data dalam tabel terd
apat record yang kosong atau tidak berelasi maka
akan berisi NULL.
OUTER JOIN Kembali ke
slide 15

Basis Data SQL untuk mengakses multitable.pptx

  • 1.
    SQL untuk Mengakses Multitable Pertemuan1 Guru Mapel : Rila Riliana, S.P SMK BAKTI KUSUMAH rilariliana00@gmail.com
  • 2.
    Agenda Pertemuan 01 02 03 04 Mengenal SQLMultitable Relasi Multitable pada sebuah Database Merancang Aplikasi Database Toko Buku Penerapan Select Multitable 05 Evaluasi
  • 3.
    SQL Mutlitable Misalnya, ketikaselesai berbelanja di supermarket, pernahkah kamu memperhatikan informasi bukti pembayaran yang kam u terima? Seperti halnya kasir yang melayani kita, barang-barang yang di beli, harga satuan barang, tanggal dan waktu serta jumlah uang yang harus di bayar? Dari contoh tersebut, kita harus dapat menggabungkan mini mal dua tabel, yaitu tabel barang dan tabel trasnsaksi. Atau m enampilkan data karyawan lengkap dengan gajinya, sehingga harus menggabungkan tabel data karyawan dan data gaji. Data yang tersimpan dalam data base dapat bervariasi dalam hal jumlah dan tingkat kompleksitasnya.
  • 4.
  • 6.
  • 7.
    1. Pembuatan Tabel a.Tabel Kasir CREATE TABLE kasir( id_kasir int(11) NOT NULL PRIMARY KEY, nama varchar(100) DEFAULT NULL, alamat varchar(200), telepon varchar(13), status_kasir enum(“aktif”,”tidak_aktif”), username varchar(50), passwrd varchar(20), akses enum(“admin”,”kasir”)); b. Tabel Distributor CREATE TABLE distributor ( Id_distributor int(11) NOT NULL PRIMARY KEY, nama_distributor varchar(255) DEFAULT NULL, alamat varchar(255), telepon varchar(13)); c. Tabel Pasok CREATE TABLE pasok( Id_pasok int(11) NOT NULL PRIMARY KEY, id_distributor int(11) DEFAULT NULL, id_buku int(11), jumlah int(5), tanggal DATE);
  • 8.
    d. Tabel Buku CREATETABLE buku( Id_buku int(11) NOT NULL PRIMARY KEY, judul varchar(200) DEFAULT NULL, noisbn varchar(13), penulis varchar(100), penerbit varchar(50), tahun varchar(4), stok int(7), harga_pokok int(20), harga_jual int(20), diskon int(3)); d. Tabel Penjualan CREATE TABLE penjualan( Id_penjualan int(11) NOT NULL PRIMARY KEY, id_kasir int(11) DEFAULT NULL, tanggal DATE ); d. Tabel det_penjualan CREATE TABLE det_penjualan( Id_detpenjualan int(11) AUTO_INCREMENT PRIMARY KEY, id_penjualan int(11), id_buku int(11), jumlah int(7));
  • 9.
    2. Membuat sebuahrelasi antar tabel Caranya sebagai berikut : 1) Penerapan constrain forigen key pada tabel pasok, penjualan, dan det_penjualan: ALTER TABLE pasok ADD FOREIGN KEY (id_distributor) REFERENCES distributor(id_distributor); ALTER TABLE pasok ADD FOREIGN KEY (id_buku) REFERENCES buku(id_buku); ALTER TABLE penjualan ADD FOREIGN KEY (id_kasir) REFERENCES kasir(id_kasir); ALTER TABLE det_penjualan ADD CONSTRAINT fk_bukujual FOREIGN KEY (id_buku) REFERENCES buku(id_buku); ALTER TABLE det_penjualan ADD CONSTRAINT fk_bukujualandet FOREIGN KEY (id_penjualan) REFERENCES penjualan(id_penjualan); Relasi antara Tabel pasok dengan tabel distibutor Relasi antara Tabel penjualan dgn tabel kasir Relasi antara Tabel det_penjualan dengan tabel buku Relasi antara Tabel det_penjualan dgn tabel penjualan Relasi antara Tabel pasok dengan tabel buku
  • 10.
    Tampilan relasi antartabel Gambar kunci pada setiap tabel, menandakan bahwa kolom tersebut merupakan kunci utama (Primary Key)
  • 11.
    3. Pengisian datapada setiap tabel Contoh : a. Tabel Kasir INSERT INTO kasir(id_kasir, nama, alamat, telepon, statu s_terakhir, username, passwrd, akses) VALUES (1, “Reno”, “Jl. Pelajar Pejuang Bandung”,”0813900800”,” aktif”,”renopp”,password(“adminutama”),”admin”), (2, “Rano”, “Jl. Palasari Bandung”,”0857100200”,”aktif”, ”ranopalasari”,password(“kasir1”),”kasir”), (3, “Rona”, “Jl. Burangrang Bandung”,”0878200300”,”aktif ”,”ronarang”,password(“kasir2”),”kasir”), (4, “Reni”, “Jl. Belitung Bandung”,”0815400500”,”aktif”, ”renibelitung”,password(“kasir3”),”kasir”), (5, “Runa”, “Jl. Merdeka Bandung”,”0856600700”,”aktif”,” runamerdeka”,password(“kasir4”),”kasir”); Untuk pengisian pada tabel selanjutnya,bisa dilihat di buku paket berkaitan dengan sint ax penulisan query
  • 12.
    Tampilan Layout darimasing-masing tabel Tabel Buku Tabel Pasok Tabel Penjualan Tabel det_penjualan Tabel Kasir Tabel Distributor
  • 13.
    SECTION BREAK Insert the titleof your subtitle Here
  • 14.
  • 15.
  • 16.
    Penerapan Select MultiTable MULTITABLE menampilkan data dari beberapa tabel SELECT MULTITABLE  menggabungkan data dari beberapa tabel (join). Dalam SQL, join yang kita kenal diantaranya INNER JOIN, LEFT JOIN, RIGHT JOIN, & NATURAL JOIN. Select MultiTable menggunakan penggabungan antar tabel yang ditulis pada klausa WHERE KLIK
  • 17.
    Syarat penerapan selectmultitable Your Text Here 1. Field yang menjadi relasi memiliki tipe data dan field size yang sama (beda sedikit penulisan field tidak masalah) 2. Data yang dimasukan dari kedua tabel yang direlasikan harus memiliki nilai yang sama. Apabila memasukan nilai yang berbeda (pada field foreign key) dari tabel induknya (field primary key), maka ketika data direlasikan tidak akan muncul atau tampil. 3. Sebelum menyebutkan nama field harus menyebutkan nama tabel terlebih dahulu Contoh : SELECT distributor.id_distributor, distributor.nama_distributor, Pasok.id_buku from distributor, pasok WHERE distributor.id_distributor=pasok.id_distributor; Jika kita lupa menuliskan nama tabel terlebih dahulu, maka akan muncul pesan eror berikut : Error Code:1052 Column ‘id_distributor’ in field list is ambigous
  • 18.
    1. Equi Join EquiJoin  akan menghasilkan sejumlah baris data yang berelasi antartabel saja. Jadi, apabila ada data yang tidak berelasi di satu sisi dengan join ini tidak akan muncul datanya. VS X Untuk tabel kasir dengan tabel distributor tidak dapat di Join kan, karena tidak ada relasi dalam tabel tersebut VS  Untuk tabel pasok dengan tabel distributo r dapat di Join kan, karena ada relasi dala m tabel tersebut. Yaitu ada Primary Key (PK) / kunci induk dan Forign Key (FK) / kunci anak PK FK
  • 19.
    Sintax penulisan QUERYmenggunakan Equi Join SELECT distributor.nama_distributor, buku.judul, buku.noisbn, buku.penerbit,Pasok.ju mlah, pasok.tanggal FROM distributor, buku, pasok WHERE buku.id_buku=pasok.id_buku AND pasok.id_distributor=distributor.id_distributor SELECT tabel1.nama column, tabel2.nama column FROM tabel1,tabel2 WHERE tabel1.PK=tabel2.FK;
  • 20.
    Contoh lain : SELECTbuku.id_buku, buku.judul, buku.harga_jual, penjualan.tanggal, det_penjualan.jumlah FROM buku, penjualan, det_penjualan WHERE buku.id_buku=det_penjualan.id_buku AND penjualan.id_penjualan=det_penjualan.id_penjualan;
  • 21.
    2. Penambahan FungsiAgregasi dalam Select Multitable Fungsi Agregasi  Fungsi ya ng bekerja untuk mendapatkan nilai dari sekumpulan data yang telah di kelompokan. Dalam hal tersebut, basis data pengelomp okan data dilakukan berdasarka n sebuah kolom atau gabungan kolom. Sehingga data dan infor masi yang di tampilkan berdasa rkan dari hasil perhitungan mate matis. COUNT, untuk menghitung jumlah record yang mempunyai nilai (bukan NULL) dari kolom tertentu. SUM, untuk menghitung jumlah dari data yang terdapat di kolom tertentu. Fungsi SUM hanya dapat digunakan pada kolom yang mempunyai data dan tipe data numerik. AVG, untuk menghitung rata-rata dari data yang terdapat di kolo m tertentu. Fungsi AVG juga hanya dapat digunakan pada kolom bertipe data numerik. MIN, menghitung jumlah minimum dari data yang terdapat di kol om tertentu. MAX, untuk menghitung nilai maksimum dari data yang terdapat di kolom tertentu.
  • 22.
    Contoh : 1 SELECTbuku.id_buku, buku.judul, buku.harga_jual, penju alan.tanggal, SUM (det_penjualan.jumlah) FROM buku, penjualan, det_penjualan WHERE buku.id_buku=det_penjualan.id_buku AND penjualan. id_penjualan=det_penjualan.id_penjualan GROUP BY buku.id_buku; Selain klausa WHERE, ada juga klausa BETWEEN dan LIMIT. BETWEEN digunakan untuk menampilkan data spesifikasi tertentu, misalnya harga buku antara 50000 dan 90000 LIMIT untuk membatasi jumlah data yang akan ditampilkan.
  • 23.
    SELECT buku.id_buku, buku. judul,buku.harga_jual FROM buku WHERE harga_jual BETWEEN 50000 AND 90000; SELECT distributor.nama_distr ibutor, buku.judul, buku.pene rbit, pasok.jumlah FROM distributor, buku, pasok WHERE jumlah > 4 LIMIT 3;
  • 24.
    Thank you Tetap Semangatdan Jaga Kesehatan
  • 25.
  • 26.
    Materi Tambahan JOIN kita dapat menampilkan data dari beberapa tabel yang berbeda dengan menggunakan 1 perintah. INNER JOIN, mengambil semua baris dari tabel asal dan tabel tujuan dengan kondisi nilai key yang terkait saja, dan jika tidak baris tsb tidak akan muncul. Dengan kata lain, tabel akan digabungkan dua arah seh ingga tidak ada data yang NULL di satu sisi. Kembali ke slide 15
  • 27.
    a. LEFT JOIN,menghubungkan tabel dan menampilkan semua data (kiri) pada tabel yang tidak berhubungan, sedangka n data yang kosong akan bernilai NULL. b. RIGHT JOIN, kebalikan dari LEFT JOIN, RIGHT JOIN hampir sama dengan INNER JOIN, namun pada RIGHT JOIN akan membuat sebuah parame ter pada sebelah kanan jika data dalam tabel terd apat record yang kosong atau tidak berelasi maka akan berisi NULL. OUTER JOIN Kembali ke slide 15