MODUL 2 Select Dan Join
MODUL 2 Select Dan Join
Kode Sub
Topik Sub KUK
KUK
6 DML SELECT
7 DML SELECT dengan WHERE
8 Pengurutan baris dengan ORDER BY
9 DML SELECT INNER JOIN
10 DML SELECT RIGHT JOIN
11 DML SELECT LEFT JOIN
2. DASAR TEORI
2.1. Statement Select
Sintaks dasar dari Statement Select:
SELECT { * | kolom [alias] , . . . }
FROM namatabel
Sintaks Select dengan ALIAS untuk ALIAS berupa lebih dari satu kata:
SELECT kolom1 AS “Alias 1” | kolom2 “Alias 2”
FROM namatabel
Contoh:
Operator pembanding dapat berupa operator equal (=) atau dapat berupa operator non-
equal (<, >, <>, !=, <=, >=, BETWEEN … AND, IN, LIKE). Syarat pembatasan baris
data boleh lebih dari satu dan disatukan dengan operator AND atau OR.
Contoh:
Operator Precedence
Sama dengan operasi matematika biasa, SQL akan menjalankan operasi aritmatika dengan
urutan preseden sebagai berikut * / + -
Penggunaan Tanda Kurung
Klausa yang berada di dalam tanda kurung memiliki preseden paling tinggi di atas
semuanya
Secara default, pengurutan akan dilakukan secara urut naik (ASCENDING) walaupun
Anda tidak menyertakan keyword modeurut ASC. Namun Anda dapat melakukan
pengurutan secara menurun dengan keyword modeurut DESC.
Contoh:
2.6. Konsep Join
Seringkali kita perlu menggunakan data yang berasal dari banyak table, tidak hanya berasal
dari satu table saja, semisal :
Nomer pegawai (employee_id) hanya ada di table pegawai (EMPLOYEES)
Nomer department (department_id) ada di table pegawai (EMPLOYEES) dan table
department (DEPARTMENTS).
Nama departemen (Department_name) hanya ada di table department
(DEPARTMENTS)
Untuk situasi seperti ini, diperlukan sintaks yang dapat mengambil data yang saling
berhubungan dari beberapa tabel sekaligus. Operasi ini disebut dengan operasi JOIN.
Operasi JOIN sederhana dapat dilakukan dengan menggunakan keyword WHERE untuk
menemukan baris data yang ‘sama’ dari kedua tabel. Sebagai contoh, kita ingin
menampilkan nama pegawai dan nama departemen tempatnya bekerja. Dengan
menggunakan keyword WHERE, operasi JOIN ini dapat ditulis dengan:
Perlu diperhatikan di sini tabel yang di-JOIN-kan menggunakan TABLE ALIAS
(employees e, departments d). Penggunaan ALIAS ini dimaksudkan agar DBMS tidak
menemukan keambiguan karena menyebut nama kolom yang sama (dalam hal ini adalah
department_id). TABLE ALIAS juga disebutkan pada klausa SELECT untuk memberitahu
DBMS agar menampilkan kolom tertentu yang berasal dari tabel yang mana.
Pada contoh ke-2 ini, digunakan keyword JOIN untuk menggabungkan tabel employees
dan departments
Kimberely tidak bekerja di bawah departemen manapun, namun ditampilkan pada kondisi
JOIN ini
Mulai dari Treasury ke bawah, adalah departemen yang tidak memiliki bawahan pegawai
sama sekali, namun dapat ditampilkan pada kondisi JOIN ini.
3. SOAL PRAKTIKUM
Gunakan database HR untuk nomor 1-5
1) Buat query untuk menampilkan nomer pegawai, nama, pekerjaan, dan tanggal mulai
bekerja untuk tiap pegawai!
2) Buat query untuk menampilkan gaji pegawai tahunan yang sudah ditambah dengan
komisi. Komisi diterima = gaji x commission_pct
3) Buat query untuk menampilkan nama pegawai, pekerjaan, nomer department, dan
nama department untuk semua pegawai yang bekerja di kota ‘Southlake’
4) Buat query untuk menampilkan nama pegawai dan nomer pegawai, nama manager
dan nomer pegawai dari manager.
5) Buatlah query untuk menampilkan department_id, department_name dan city untuk
semua department termasuk nama city yang tidak terdapat department di city tersebut.
Gunakan database Chinook untuk nomor 6-10
6) Buat query untuk menampilkan artistid, name, dan album title untuk semua artist
termasuk artist yang belum punya album sama sekali.
7) Buat query untuk menampilkan track-track dari album Big Ones dari Aerosmith
8) Buat query untuk menampilkan pembelian customer bernama “Victor Stevens” untuk
invoice ID nomor 201
9) Buatlah query untuk menampilkan nomor invoice, judul album, judul lagu, genre, dan
tipe medianya dari artist ‘Iron Maiden’
10) Buatlah query untuk menampilkan artist-artist, judul lagu, genre, dan judul albumnya
yang tergabung dalam playlist ‘90’s music’