KODE MK : TIF19410
SKS : 2/2
Capaian Pembelajaran
Mahasiswa/i mampu menggunakan
perintah-perintah & fungsi-fungsi SQL
untuk mengelola, memanipulasi &
mendefinisi basis data untuk memperoleh
informasi penting spesifik yang
diinginkan.
Pernyataan Data Manipulation Language (DML)
meliputi:
• SELECT – untuk query data dalam basis data;
• INSERT – untuk menyisipkan data ke dalam
tabel;
• UPDATE – untuk memperbarui data dalam
tabel;
• DELETE – untuk menghapus data dari tabel.
Relational schema untuk contoh SQL DML:
Contoh:
Buatlah daftar lengkap detil semua staff.
SELECT staffNo, fName, lName, position, sex, DOB,
salary, branchNo
FROM Staff;
atau
SELECT *
FROM Staff;
2# mengambil semua baris dan kolom
tertentu
SELECT nama kolom yang dipilih
FROM nama tabel;
Contoh:
Buatlah daftar salary untuk semua staff,
dengan menampilkan hanya staff number,
first dan last name, serta detil salary.
SELECT staffNo, fName, lName, salary
FROM Staff;
3# menghilangkan duplikasi data pada
kolom
SELECT DISTINCT nama kolom
FROM nama tabel;
Contoh:
Buatlah daftar property numbers dari semua
property yang sudah pernah di-view.
SELECT DISTINCT propertyNo
FROM Viewing;
4# kolom hasil komputasi atau
perhitungan
SELECT rumus pada kolom tertentu AS nama kolom hasil
komputasi
FROM nama tabel;
Contoh:
Buatlah daftar salary bulanan untuk semua staff, dengan
menampilkan staff number, first dan last name, serta detil
salary.
SELECT staffNo, fName, lName, salary/12 AS monthlySalary
FROM Staff;
atau
SELECT staffNo, fName, lName, salary/12
FROM Staff;
5# membandingkan hasil query
SELECT nama kolom
FROM nama tabel
WHERE kondisi;
Contoh:
Buatlah daftar staff yang memiliki salary lebih besar
dari £10,000.
SELECT staffNo, fName, lName, position, salary
FROM Staff
WHERE salary > 10000;
Dalam SQL, berlaku operator pembanding
berikut ini:
Simbol Arti
= Sama dengan
<> Tidak sama dengan (standar ISO)
!= Tidak sama dengan (untuk kasus tertentu)
< Lebih kecil dari
<= Lebih kecil sama dengan
> Lebih besar dari
>= Lebih besar sama dengan
Predikat kompleks dapat dihasilkan dengan
menggunakan operator logika AND, OR, dan
NOT, menggunakan tanda kurung (bila perlu)
untuk menunjukkan urutan evaluasi.
Aturan evaluasi untuk ekspresi conditional:
1. Ekspresi dievaluasi dari kiri ke kanan;
2. Sub-ekspresi dalam tanda kurung dievaluasi lebih
dulu;
3. NOT dievaluasi sebelum AND dan OR;
4. AND dievaluasi sebelum OR.
6# (kombinasi) membandingkan hasil
query
SELECT nama kolom
FROM nama tabel
WHERE kondisi OPERATOR kondisi;
Contoh:
Buatlah daftar address semua kantor branch yang
ada di kota London atau Glasgow.
SELECT *
FROM Branch
WHERE city=‘London’ OR city=‘Glasgow’;
7# jangkauan kondisi hasil query
(BETWEEN/NOT BETWEEN)
SELECT nama kolom
FROM nama tabel
WHERE nama kolom BETWEEN kondisi OPERATOR kondisi;
Contoh:
Buatlah daftar semua staff yang memiliki salary antara £20,000 dan
£30,000
SELECT staffNo, fName, lName, position, salary
FROM Staff
WHERE salary BETWEEN 20000 AND 30000;
atau
SELECT staffNo, fName, lName, position, salary
FROM Staff
WHERE salary >= 20000 AND salary <= 30000;
8# mengatur keanggotaan kondisi
query (IN/NOT IN)
SELECT nama kolom
FROM nama tabel
WHERE nama kolom IN (‘kondisi’, ‘kondisi’);
Kondisi yang ada pada (IN) menjadi faktor penentu apakah nilai data yang diquery
cocok/sesuai dengan nilai kondisi yang diinginkan
Contoh:
Buatlah daftar semua manager dan supervisor.
SELECT staffNo, fName, lName, position
FROM Staff
WHERE position IN (‘Manager’, ‘Supervisor’);
atau
SELECT staffNo, fName, lName, position
FROM Staff
WHERE position=‘Manager’ OR position=‘Supervisor’;
9# mencocokkan pola kondisi query
(LIKE/NOT LIKE)
SELECT nama kolom
FROM nama tabel
WHERE nama kolom LIKE ‘kondisi’;
Contoh:
Temukan semua owner yang memiliki unsur kata
‘Glasgow’ dalam address mereka.
SELECT ownerNo, fName, lName, address, telNo
FROM PrivateOwner
WHERE address LIKE ‘%Glasgow%’;
SQL memiliki dua simbol khusus untuk mencocokkan pola:
1. % (karakter persen) mewakili nol atau lebih banyak urutan karakter
(wildcard).
2. _ (karakter underscore) mewakili karakter tunggal.
Contoh:
• Address LIKE ‘H%’ artinya karakter pertama harus H, selanjutnya bisa apa
saja.
• Address LIKE ‘H_ _ _’ artinya harus ada empat karakter yang diawali
dengan H.
• Address LIKE ‘%e’ artinya apa saja yang diakhiri dengan e.
• Address LIKE ‘%Glasgow%’ artinya semua yang mengandung Glasgow.
• Address NOT LIKE ‘H%’ artinya karakter pertama tidak boleh H.
10# kondisi query NULL (IS NULL/IS
NOT NULL)
SELECT nama kolom
FROM nama tabel
WHERE kondisi OPERATOR nama kolom IS NULL;
Contoh:
Buatlah daftar pengunjung yang telah melakukan view
pada property PG4 dan tidak memberikan comment.
SELECT clientNo, viewDate
FROM Viewing
WHERE propertyNo=‘PG4’ AND comment IS NULL;
11# pengurutan kolom tunggal
SELECT nama kolom
FROM nama tabel
ORDER BY nama kolom DESC;
Contoh:
Buatlah daftar salary untuk semua staff, diurutkan secara
descending berdasarkan salary.
SELECT staffNo, fName, lName, salary
FROM Staff
ORDER BY salary DESC;
12# pengurutan multi-kolom
SELECT nama kolom
FROM nama tabel
ORDER BY nama kolom, nama kolom DESC;
Contoh:
Buatlah daftar untuk property diurutkan berdasar
property type, dan kemudia berdasarkan rent
dalam urutan descending.
SELECT propertyNo, type, rooms, rent
FROM PropertyForRent
ORDER BY type, rent DESC;
FUNGSI AGREGASI
Selain emngambil baris dan kolom dari database, kita
juga dapat melakukan penghitungan atau agregasi
data, misal total, jumlah, dll.
Contoh:
Berapa banyak property yang harga sewanya
lebih dari £350 per bulan?
SELECT COUNT(*) AS myCount
FROM PropertyForRent
WHERE rent > 350;
14# COUNT (DISTINCT)
SELECT COUNT(DISTINCT nama kolom) AS nama
kolom baru
FROM nama tabel
WHERE kondisi;
Contoh:
Berapa banyak property yang telah di-view pada bulan
May 2004?
SELECT COUNT(DISTINCT propertyNo) AS myCount
FROM Viewing
WHERE viewDate BETWEEN ‘1-May-04’ AND ‘31-May-
04’;
15# COUNT dan SUM
SELECT COUNT(nama kolom 1) AS nama kolom baru 1,
SUM(nama kolom 2) AS nama kolom baru 2
FROM nama tabel
WHERE kondisi;
Contoh:
Hitunglah berapa jumlah Manager dan total salary
mereka.
SELECT COUNT(staffNo) AS myCount, SUM(salary) AS
mySum
FROM Staff
WHERE position=‘Manager’;
16# MIN, MAX, AVG
SELECT MIN(nama kolom) AS nama kolom min,
MAX(nama kolom) AS nama kolom maks,
AVG(nama kolom) AS ama kolom rata2
FROM nama tabel;
Contoh:
Tentukan minimum, maksimum, dan rata-rata
salary seluruh staff.
SELECT MIN(salary) AS myMin, MAX(salary) AS
myMax, AVG(salary) AS myAvg
FROM Staff;
PENGELOMPOKAN HASIL
17# GROUP BY
Mengelompokkan data dari tabel hasil query SELECT dan
membuat baris ringkasan tunggal untuk setiap
kelompok/group data
Contoh:
Tentukan berapa jumlah staff yang bekerja di setiap branch dan
total salary mereka.
Contoh:
Untuk setiap kantor branch yang memiliki staff lebih dari satu
orang, tentukan jumlah staff yang bekerja di setiap branch
dan total salary mereka.
Contoh:
Buatlah daftar semua city yang memiliki branch office atau property.
(SELECT city
FROM Branch
WHERE city IS NOT NULL)
UNION
(SELECT city
FROM PropertyForRent
WHERE city IS NOT NULL);
33# INTERSECT
Membuat tabel hasil tunggal berisi baris yang ada tabel hasil
query pertama dan juga ada di tabel hasil query kedua.
Contoh:
Buatlah daftar semua city yang memiliki branch office dan
property.
(SELECT city
FROM Branch)
INTERSECT
(SELECT city
FROM PropertyForRent);
34# EXCEPT
Membuat tabel hasil tunggal berisi baris yang ada tabel hasil
query pertama tetapi tidak ada di tabel hasil query kedua.
Contoh:
Buatlah daftar semua city yang memiliki branch office tetapi
tidak memiliki property.
(SELECT city
FROM Branch)
EXCEPT
(SELECT city
FROM PropertyForRent);
UPDATE DATABASE
Pernyataan SQL yang digunakan untuk
memodifikasi isi tabel dalam database:
• INSERT – menambah baris data baru ke
dalam tabel;
• UPDATE – mengubah data yang ada
dalam tabel;
• DELETE – membuang baris data dari
tabel.
Menyisipkan/menambahkan data ke dalam
database (INSERT)
UPDATE Staff
SET salary = salary*1.03;
39# UPDATE baris tertentu
Contoh:
Berikan kepada semua Managers kenaikan
salary 5%.
UPDATE Staff
SET salary = salary*1.05
WHERE position = ‘Manager’;
40# UPDATE multi-kolom
Contoh:
Promosikan David Ford (staffNo=‘SG14’)
untuk menjadi Manager dan naikkan
salary menjadi £18,000.
UPDATE Staff
SET position = ‘Manager’, salary = 18000
WHERE staffNo=‘SG14’;
Menghapus data dari database (DELETE)