Bahasa Pertanyaan Berstruktur (SQL)
Pengenalan SQL
SQL (Structured Query Language) ialah bahasa piawai untuk berkomunikasi dengan pangkalan data hubungan โ mencipta jadual, memasukkan, mencari, mengemas kini dan memadam data. Contoh dalam nota ini menggunakan jadual MURID(NoMurid, Nama, Kelas, Markah).
SELECT โ Mendapatkan Data
-- Pilih SEMUA lajur dan rekod
SELECT * FROM MURID;
-- Pilih lajur tertentu sahaja
SELECT Nama, Markah FROM MURID;
-- Tapis dengan WHERE
SELECT Nama FROM MURID WHERE Markah >= 80;
-- Gabungan syarat
SELECT * FROM MURID
WHERE Kelas = '5 Bestari' AND Markah >= 60;
-- Isih hasil: ASC menaik (lalai), DESC menurun
SELECT Nama, Markah FROM MURID
ORDER BY Markah DESC;| Klausa/Operator | Fungsi | Contoh |
|---|---|---|
| WHERE | Menapis rekod ikut syarat | WHERE Markah >= 50 |
| AND / OR | Gabungkan syarat | WHERE Kelas='5B' AND Markah>60 |
| LIKE dengan % | Padanan corak | WHERE Nama LIKE 'A%' (bermula A) |
| ORDER BY ... ASC/DESC | Isih menaik/menurun | ORDER BY Markah DESC |
| BETWEEN | Julat nilai | WHERE Markah BETWEEN 50 AND 79 |
Fungsi Agregat
SELECT COUNT(*) FROM MURID; -- bilangan rekod
SELECT SUM(Markah) FROM MURID; -- jumlah markah
SELECT AVG(Markah) FROM MURID; -- purata markah
SELECT MAX(Markah) FROM MURID; -- markah tertinggi
SELECT MIN(Markah) FROM MURID; -- markah terendahINSERT, UPDATE, DELETE โ Memanipulasi Data
-- INSERT: tambah rekod baharu
INSERT INTO MURID (NoMurid, Nama, Kelas, Markah)
VALUES ('M041', 'Siti Aminah', '5 Bestari', 78);
-- UPDATE: kemas kini rekod (WAJIB ada WHERE!)
UPDATE MURID
SET Markah = 85
WHERE NoMurid = 'M041';
-- DELETE: padam rekod (WAJIB ada WHERE!)
DELETE FROM MURID
WHERE NoMurid = 'M041';Contoh Soalan Gaya SPM
Diberikan jadual MURID, tulis SQL untuk: (a) memaparkan nama murid kelas 5 Amanah yang markahnya melebihi 70, diisih menurun โ SELECT Nama FROM MURID WHERE Kelas = '5 Amanah' AND Markah > 70 ORDER BY Markah DESC; (b) mengira purata markah seluruh tingkatan โ SELECT AVG(Markah) FROM MURID; (c) menukar kelas murid M015 kepada 5 Bestari โ UPDATE MURID SET Kelas = '5 Bestari' WHERE NoMurid = 'M015';
Contoh: SQL Lengkap
-- pelajar lulus, markah tertinggi dahulu
SELECT Nama, Markah FROM MURID
WHERE Markah >= 50
ORDER BY Markah DESC;
-- purata dan bilangan pelajar
SELECT AVG(Markah), COUNT(*) FROM MURID;