NO. KOD / CODE NO. DKB1343/K01/NK 03-03 Muka / Page : 21
Drpd / of : 31
C) Bentuk normal kedua (2NF)
• Satu hubungan adalah dalam bentuk 2 NF jika:-
– Ia berada dalam bentuk 1 NF
– Semua atribut bukan kekunci utama adalah bersandar secara fungsi sepenuhnya ke atas
kekunci utama.
(Tidak wujud Kebersandaran Fungsian Separa)
NoPelajar NamaPel
NamaKursus
KodKursus
Kodmodul NamaModul
Kredit
NoPelajar, KodModul Gred
NO. KOD / CODE NO. DKB1343/K01/NK 03-03 Muka / Page : 22
Drpd / of : 31
D) Bentuk normal ketiga (3NF)
• Satu hubungan adalah dalam bentuk normal ketiga jika:-
– Ia dalam bentuk normal kedua
– Tidak wujud Kebersandaran Fungsian Transitif
A B
B C
maka A C
KodKursus KodModul
KodModul NamaKursus
maka,
KodKursus NamaKursus
NO. KOD / CODE NO. DKB1343/K01/NK 03-03 Muka / Page : 23
Drpd / of : 31
6.0 Gambar Rajah / Diagram Hubungan Entiti (Entity-relationship Diagram - ERD)
Pangkalan data ialah himpunan data berkaitan yang boleh dikongsi bersama oleh pelbagai kategori
pengguna. Contoh aplikasi pangkalan data ialah Sistem Pinjaman Buku, Sistem Maklumat Pelajar, Sistem
Tempahan Tiket dan sebagainya. Sebelum membangunkan sistem pangkalan data, anda perlu mengenal
pasti masalah sistem sedia ada terlebih dahulu. Anda perlu mengetahui dan memahami proses dan
aliran data dalam sistem sedia ada. Penyelesaian kepada masalah tersebut dapat digambarkan
dengan menggunakan Rajah Hubungan Entiti (ERD). Rajah hubungan entiti ialah model asas dalam membina
pangkalan data. ERD merupakan teknik yang digunakan untuk memodelkan data yang diperlukan dalam
suatu organisasi. ERD juga menerangkan konsep tentang struktur pangkalan data. Terdapat tiga
komponen asas dalam ERD, iaitu entiti, atribut dan perhubungan.
Struktur Rajah Hubungan Entiti (ERD)
Entiti ialah objek atau konsep yang unik dan dapat dikenal pasti dalam persekitaran tertentu seperti
orang, tempat, benda atau peristiwa yang dikutip dan disimpan sebagai data. Contoh entiti ialah
MURID, GURU, BUKU, PEPERIKSAAN. Entiti diwakilkan dalam bentuk segi empat tepat seperti berikut:
MURID
NO. KOD / CODE NO. DKB1343/K01/NK 03-03 Muka / Page : 24
Drpd / of : 31
Terdapat dua jenis entiti, iaitu:
A. Entiti kuat
Entiti kuat boleh wujud tanpa bersandar pada entiti lain.
Contoh: MURID, GURU, MATAPELAJARAN.
B. Entiti lemah
Kewujudan entiti lemah bersandar pada entiti kuat.
Contoh: TANGGUNGAN. Entiti TANGGUNGAN hanya akan wujud jika adanya
KAKITANGAN. Entiti lemah diwakilkan dalam bentuk segi empat tepat yang bergaris
dua seperti rajah di bawah.
Hubungan lemah digunakan untuk menyatukan entiti kuat dan entiti lemah. Hubungan lemah
diwakilkan dalam bentuk permata yang bergaris dua.
Atribut atau medan ialah ciri-ciri yang menghuraikan sesuatu entiti. Atribut ialah sifat yang
memerihalkan sesuatu set entiti. Atribut diwakilkan dalam bentuk bujur. Rajah 2.1.2 menunjukkan
perwakilan atribut dalam ERD. Contoh atribut ditunjukkan dalam Jadual 2.1 .1.
NO. KOD / CODE NO. DKB1343/K01/NK 03-03 Muka / Page : 25
Drpd / of : 31
Terdapat enam jenis atribut seperti yang ditunjukkan dalam Rajah 2.1.3.
NO. KOD / CODE NO. DKB1343/K01/NK 03-03 Muka / Page : 26
Drpd / of : 31
Hubungan ialah penyatuan antara entiti. Oalam sebuah ERD, terdapat banyak entiti yang mempunyai
hubungan antara satu sama lain. Oleh sebab itu, hubungan digunakan untuk menyatukan satu atau
lebih entiti yang terdapat dalam ERD. Hubungan menunjukkan bagaimana dua entiti berkongsi maklumat
dalam pangkalan data. Hubungan dilabelkan dengan kata kerja. Contoh: mengajar, mendaftar dan
menginap.
Seorang GURU mengajarkan sekurang-kurangnya satu MATAPELA.JARAN. Hubungan diwakilkan dalam
bentuk permata seperti dalam Rajah 2.1.4.
Kunci primer ialah atribut unik yang membezakan rekod dalam sebuah pangkalan data. Setiap entiti hanya
mempunyai satu kunci primer sahaja. Contoh kunci primer untuk entiti MURID ialah NoKadPengenalan dan kunci
primer untuk entiti GURU ialah NoKakitangan.
NoKadPengenalan bersifat unik kerana seorang mu rid hanya mempunyai satu NoKadPengenalan dan nombornya
berbeza dengan murid yang lain. Tidak ada murid yang mempunyai NoKadPengenalan yang sama. Dalam ERD,
kunci primer hendaklah digariskan.
Kekardinalan menunjukkan hubungan dari segi kuantiti data antara suatu entiti dengan entiti yang lain. Terdapat
dua jenis kekardinalan, iaitu:
• Kekardinalan Minimum
Minimum data suatu entiti berkait dengan entiti lain. Contoh: Katakan terdapat dua entiti, iaitu GURU dan
MATAPELA.JARAN. Seorang GURU mengajar sekurang-kurangnya satu MATAPELA.JARAN. Maka kekardinalan
minimum ialah satu kerana seorang guru mesti mengajar sekurang• kurangnya satu mata pelajaran. Tidak ada
guru yang tidak akan mengajar.
• Kekardinalan Maksimum
Maksimum data suatu entiti berkait dengan entiti lain. Contoh: Satu MATAPELA.JARAN boleh diajar oleh
seorang GURU atau lebih. Seorang guru boleh mengajar maksimum lebih dari satu mata pelajaran. Maka
kerkardinalan maksimum adalah banyak.
NO. KOD / CODE NO. DKB1343/K01/NK 03-03 Muka / Page : 27
Drpd / of : 31
ERD dalam Rajah 2.1.5 bermaksud seorang guru harus mengajar sekurang-kurangnya satu mata pelajaran dan
maksimum mata pelajaran yang boleh diajar adalah dua atau lebih. Manakala mata pelajaran pula hendaklah diajar oleh
sekurang-kurangnya seorang guru dan maksimum guru yang boleh mengajar sesuatu mata pelajaran ialah dua
atau lebih.
NO. KOD / CODE NO. DKB1343/K01/NK 03-03 Muka / Page : 28
Drpd / of : 31
Melakar ERD (Entity Relationship Diagram)
Pengurusan stok dan inventori alatan sukan amat penting dalam kejayaan sesuatu aktiviti sukan dan
kokurikulum. Kekurangan peralatan sukan menyebabkan sesuatu sukan sukar untuk dijalankan.
Pangkalan data star sukan mengandungi rekod pelbagai alatan sukan sama ada untuk sukan sekolah
ataupun untuk pembelajaran dan pengajaran mata pelajaran Pendidikan Jasmani. Dalam pangkalan
data ini juga, maklumat barangan sukan, pembekal, peminjam dan rekod pinjaman yang dibuat oleh
semua murid disimpan. Entiti-entiti yang terlibat adalah seperti yang berikut:
• BARANG ialah peralatan sukan yang disimpan. Atribut BARANG ialah NoBarang, NamaBarang, Kuantiti,
HargaSeunit.
• MURID ialah peminjam barangan sukan. Atribut MURID ialah IDMurid, NamaMurid dan Kelas.
• PINJAMAN ialah keadaan berlakunya proses rnerruruarn. Atribut PINJAMAN ialah NoPinjaman,
TarikhPinjam dan TarikhPulang.
• PEMBEKAL ialah individu atau syarikat pembekal barangan sukan. Atribut PEMBEKAL ialah
NoPembekal, NamaPembekal dan Alamat (terdiri daripada NamaJalan, Bandar, Poskod dan Negeri).
Hubungan dan kekardinalan antara entiti adalah seperti yang berikut:
• Setiap barangan sukan boleh dipinjam oleh seorang murid pada satu masa. Setiap murid boleh
meminjam satu atau lebih barangan sukan.
NO. KOD / CODE NO. DKB1343/K01/NK 03-03 Muka / Page : 29
Drpd / of : 31
• Seorang murid boleh membuat satu pinjaman atau tidak membuat sebarang pinjaman. Setiap
pinjaman merekod data pinjaman yang dibuat oleh seorang murid pada satu masa.
• Setiap pembekal boleh membekalkan satu atau lebih barang dan setiap barang mungkin dibekalkan oleh
satu atau lebih pembekal ataupun tidak dibekalkan oleh mana-mana pembekal.
NO. KOD / CODE NO. DKB1343/K01/NK 03-03 Muka / Page : 30
Drpd / of : 31
NO. KOD / CODE NO. DKB1343/K01/NK 03-03 Muka / Page : 31
Drpd / of : 31
RUJUKAN:
i. Ramez Elmasri & Shamkant B. Navathe (2016). Fundamentals of Database System. USA: Addison-
Wesley.
ii. Nik Ismail, N. & Mohd. Suaib, N (2015). SQL Tutorial Simply Easy Learning. Malaysia: ThinkerBiz®.
iii. Salha Abdullah dan Nazlia Omar (2000). Sistem Pangkalan Data. Sprint Print, Prentice Hall.
iv. Abdullah Embong (2000). Sistem Pangkalan Data. Tradisi Ilmu Sdn. Bhd.
v. Noraswaliza Abdullah, Nurul Akmar Emran & Safiza Suhana Kamal Baharin (2020). Jom Mereka
Bentuk Pangkalan Data. Universiti Teknikal Malaysia Melaka.
vi. Chua Siwe Geck, Yew Kwang Hooi (2016). Sains Komputer Tingkatan 4. Oxford Fajar Sdn. Bhd.
vii. Norlini binti Ramli, Paridah binti Daud (2017). Sains Komputer Tingkatan 5. Oxford Fajar Sdn. Bhd.
viii. DBMS – Database Management System (http://www.goo.gl/pMrvk5)
TAJUK: STRUCTURED QUERY LANGUAGE (SQL)
PENERANGAN:
1. PENGENALAN KEPADA SQL
SQL atau Structured Query Language merupakan bahasa yang digunakan dalam proses meminta data
dari pangkalan data dan menerima semula hasilnya. SQL digunakan untuk mendapatkan data daripada
pangkalan data. Database Management Systems (DBMS) akan memproses permintaan SQL,
mendapatkan data daripada pangkalan data dan memulangkannya semula.
SQL digunakan untuk mengawal semua fungsi yang disediakan oleh DBMS kepada pengguna, termasuk :
Data definition : SQL membenarkan pengguna menstruktur dan menyusun data yang disimpan
serta melakukan hubungan antara item data yang disimpan.
Data retrieval : SQL membenarkan pengguna atau program aplikasi mendapatkan data yang telah
disimpan dalam pangkalan data.
Data manipulation : SQL membenarkan pengguna atau program aplikasi mengemaskini
pangkalan data dengan membenarkan penambahan data baharu, memadamkan data yang sedia
ada dan juga mengubahsuai data yang sedia ada.
Access control : SQL digunakan untuk mengawal keupayaan pengguna untuk mendapatkan,
menambah dan mengemaskini data bagi melindungi keselamatan data yang telah disimpan
daripada capaian yang tidak dibenarkan.
1.1. SEJARAH SQL
Tarikh Peristiwa
1970 Model hubungan yang dirangka oleh Codd telah diteroka pada tahun 1970an,
kemudian produk hubungan pangkalan data yang komersial mula muncul dalam
1979 tahun 1980an yang pada asalnya untuk sistem kerangka (mainframe) dan
1982 kemudian untuk mikrokomputer.
Edgar Codd merupakan orang pertama yang menulis tentang konsep hubungan
pangkalan data dalam kertas kerja beliau yang bertajuk “A Relational Model Of
Data For Large Shared Data Banks” pada tahun 1970.
Oracle Corporation memperkenalkan RDBMS (Relational Database
Management System) yang pertama secara komersial.
ANSI (American National Standards Institute) menubuhkan jawatankuasa
standard SQL.
1
1983 IBM (International Business Machine) mengumumkan DB2 (pangkalan data).
1986 ANSI (American National Standards Institute) meluluskan standard SQL1.
1987 ISO (International Organization for Standardization) meluluskan standard SQL1.
1992 ANSI meluluskan SQL2.
2000 Microsoft Corporation memperkenalkan SQL Server 2000 iaitu aplikasi untuk
tujuan perusahaan.
2002 Penyelidikan daripada Gartner yang meletakkan IBM sebagai vendor pangkalan
2004 data no.1 mengatasi Oracle.
Standard SQL: 2003 diterbitkan.
2. FUNGSI DALAM SQL
SQL mempunyai banyak fungsi built-in untuk melaksanakan pengiraan pada data atau menetapkan bentuk
data iaitu Aggregate Functions dan Scalar Functions. Penerangan di bawah akan membincangkan
perbezaan antara 2 jenis fungsi tersebut.
SQL Aggregate Functions SQL Scalar Functions
Memulangkan nilai tunggal, mengira nilai di Memulangkan nilai tunggal, berdasarkan
dalam lajur (column). input nilai.
AVG() – memulangkan nilai purata. UCASE() – menukarkan medan kepada
huruf besar.
COUNT()- memulangkan bilangan dalam LCASE() – menukarkan medan kepada huruf
baris (row).
FIRST() – memulangkan nilai pertama. kecil.
LAST() – memulangkan nilai akhir.
MAX() – memulangkan nilai terbesar. MID() – ekstrak karakter daripada medan
MIN() – memulangkan nilai paling kecil. teks.
LEN() – memulangkan panjang medan teks.
ROUND() – membundar medan nombor
kepada nombor desimal yang spesifik.
SUM() – memulangkan hasil tambah. NOW() – Memulangkan sistem tarikh dan
masa semasa.
FORMAT() – memformat bagaimana sesuatu
medan dipaparkan.
3. PERISIAN YANG DIPERLUKAN UNTUK MENGGUNAKAN SQL DALAM LAMAN
WEB 2
Dalam pembinaan laman Web, perisian tertentu diperlukan untuk melaksanakan arahan SQL. Berikut
adalah keperluan yang diperlukan dalam pembinaan sebuah laman Web :
RDBMS -Relational Database Management System (Ms Access, SQL Server, MySQL).
Server-side scripting language (PHP, ASP).
SQL.
Client-side scripting language (HTML/ CSS/ JavaScript).
4. PROSES MEMBINA JADUAL ATAU PANGKALAN DATA
Terdapat beberapa syarat atau perkara penting yang perlu diambil berat oleh pembangun
pangkalan data. Hal ini bertujuan untuk mengelakkan ralat semasa proses membangun pangkalan
data.
Antara perkara yang perlu dititik beratkan adalah :
i. Penamaan ( naming convention)
Mempunyai naming convention yang konsisten di seluruh
pangkalan data bermakna pembangun pangkalan data (DBA) tidak
perlu untuk menghabiskan masa untuk menyemak kembali nama-
nama jadual dan lajur.
Terdapat beberapa perkara yang perlu diambil berat.
Antaranya :
a. Elakkan daripada menggunakan quotes . Sebagai contoh :
“NamaPertama” atau “SemuaPekerja”.
b. Pemboleh ubah/pengecam perlu ditulis dalam lowercase .
Hal ini adalah untuk mengelakkan daripada berlaku
kesilapan ketika proses menulis arahan dalam jadual.
c. Ruang kosong tidak dibenarkan untuk digunakan dalam
pengecam
d. Tidak boleh ada simbol
e. Aksara pertama mestilah huruf atau ‘_’.
ii. Field
Dalam jadual pangkalan data, field adalah struktur data.
Fields disusun ke dalam rekod, yang mengandungi segala
maklumat dalam jadual yang relevan kepada entiti tertentu.
Sebagai contoh, dalam maklumat hubungan jadual
pelanggan, nombor telefon akan menjadi medan berturut-turut
3
yang juga akan mengandungi bidang-bidang lain seperti alamat
jalan dan bandar.
iii. Record / row
Arahan SELECT mengunjurkan lajur kodkursus dan
namakursus daripada jadual kursus
Diambil dari
lajur dalam
jadual
SELECT kodkursus,namakursus
FROM kursus
iv. Column
Column adalah satu set nilai data jenis mudah tertentu, bagi
setiap baris dalam sesebuah jadual.
Lajur menyediakan struktur data mengikut baris yang terdapat
dalam jadual.
Dalam istilah relational database, column juga turut dikenali
sebagai atribut.
Berikut adalah contoh yang menggambarkan kedudukan baris
dan lajur dalam jadual di pangkalan data :
Lajur 1 Lajur 2
Baris 1 Baris 1, lajur 1 Baris 1, Lajur 2
Baris 2 Baris 2, Lajur 1 Baris 2, Lajur 2
Baris 3 Baris 3, Lajur 1 Baris 3, Lajur 2
v. Primary Key
Primary Key adalah unik bagi mengenal pasti setiap rekod dalam
jadual pangkalan data.
Primary Key juga tidak boleh mengandungi nilai NULL.
Setiap jadual hanya boleh mempunyai satu kunci utama.
Berikut adalah contoh arahan yang digunakan dalam SQL
bagi menggambarkan penggunaan primary key :
CREATE TABLE PELAJAR (
idpelajar int NOT NULL,
namapelajar varchar(255) NOT NULL,
4
kursus varchar(255), umur
int,
PRIMARY KEY (idpelajar) );
vi. Auto_increment
Auto_increment digunakan bagi membolehkan nombor unik
dijana secara automatik apabila rekod baru dimasukkan ke dalam
jadual.
Kebiasaannya, medan primary key adalah medan yang
digunakan secara automatik setiap kali rekod baru
dimasukkan.
CREATE TABLE PELAJAR (
idpelajar int NOT NULL AUTO_INCREMENT,
namapelajar varchar(255) NOT NULL,
kursus varchar(255),
umur int,
PRIMARY KEY (idpelajar) );
vii. NULL value
NULL adalah penanda khas yang digunakan dalam Bahasa
Pertanyaan Berstruktur (SQL) untuk menunjukkan bahawa nilai
data tidak wujud dalam pangkalan data.
Manakala jika terdapat arahan NOT NULL ianya
bermaksud medan tersebut sentiasa perlu mengandungi nilai.
viii. Constraints
Kekangan (constraints) dalam SQL digunakan untuk
menentukan kaedah-kaedah bagi data dalam jadual.
Kekangan digunakan untuk menghadkan jenis data yang boleh
digunakan dalam jadual. Ini memastikan ketepatan dan
kebolehgunaan data dalam jadual.
Berikut adalah contoh kekangan (constraints) yang
sentiasa digunakan dalam SQL :
TERMINOLOGI DEFINISI
NOT NULL Memastikan lajur tidak boleh mempunyai nilai
NULL
UNIQUE Memastikan semua nilai dalam lajur adalah
berbeza
5
PRIMARY KEY Gabungan NOT NULL dan UNIK bagi mengenal
FOREIGN pasti setiap baris dalam jadual
KEY
CHECK Keunikan mengenal pasti baris / rekod dalam
jadual lain
DEFAULT
Memastikan semua nilai dalam lajur memenuhi
INDEX syarat tertentu
Menetapkan nilai lalai untuk lajur apabila tiada
nilai ditetapkan
Gunakan untuk membuat dan mengambil data
dari pangkalan data dengan cepat
ix. Data types
Data types mentakrifkan jenis nilai yang boleh
digunakan dalam lajur.
Setiap lajur dalam jadual pangkalan data perlu untuk
mempunyai nama dan jenis data yang tersendiri.
Jadual berikut menyenaraikan jenis data umum yang
digunakan dalam SQL:
JENIS DATA PENGISYTIHARAN
Aksara (huruf) CHAR , VARCHAR
Bit BIT, BIT VARYING
Integer INT,SMALLINT
Perpuluhan DEC, NUMERIC
Nombor nyata FLOAT, REAL , DOUBLE PRECISION
Tarikh / waktu DATE, TIME
6
5. PENGENALAN KEPADA PENYATAAN DATA DEFINITION LANGUAGE (DDL)
Penyataan Data Definition Language atau DDL digunakan untuk menakrifkan dan menguruskan
sesuatu jadual. Berikut adalah fungsi penyataan DDL :
Menakrifkan dan mencipta jadual yang baharu
Menghapuskan jadual yang tidak diingini lagi
Mengubahsuai takrifan pada jadual yang telah diwujudkan
Walaupun penyataan DDL lebih kepada pengurusan pembinaan jadual, arahan pembinaan
pangkalan data dan arahan untuk memilih pangkalan data yang hendak digunakan juga termasuk
dalam penyataan ini.
6. ARAHAN SQL BAGI PENYATAAN DDL
Berikut merupakan kata kunci arahan SQL dalam penyataan DDL:
Katakunci Arahan SQL Fungsi
CREATE DATABASE Membina pangkalan data yang baharu.
USE Memilih pangkalan data yang hendak digunakan.
CREATE TABLE Menakrifkan dan membina jadual yang baharu.
ALTER TABLE Mengubahsuai struktur jadual yang sedia ada.
DROP TABLE Menghapuskan jadual yang tidak diingini.
DROP DATABASE Menghapuskan pangkalan data.
6. PENYATAAN CREATE
Penyataan CREATE digunakan untuk membina pangkalan data dan jadual. Selepas membina
pangkalan data, arahan USE mesti digunakan untuk memilih pangkalan data yang hendak
digunakan sebelum membina jadual. Arahan SHOW pula digunakan untuk melihat semula
senarai pangkalan data atau jadual yang telah diwujudkan. Berikut adalah penerangan dan
sintaks menggunakan penyataan CREATE, USE dan SHOW.
6.1. CREATE DATABASE
Penyataan CREATE DATABASE digunakan untuk membina pangkalan data.
Berikut adalah Sintaks bagi arahan ini :
CREATE DATABASE nama_pangkalan_data;
7
NO. KOD / CODE NO. DKB1343/K02/NK 01 - 01 Muka / Page : 8
Drpd / of : 12
Contoh :
Berikut adalah penyataan SQL untuk membina pangkalan data yang dinamakan sebagai
“kolej_cyberpoint” :
6.2. SHOW DATABASES
Penyataan SHOW DATABASES digunakan untuk memaparkan pangkalan data yang telah dibina.
Sintaks:
SHOW DATABASES;
Contoh :
7. USE
Penyataan USE digunakan untuk memilih pangkalan data yang hendak digunakan.
Sintaks:
USE nama_pangkalan_data;
Contoh :
8. Penyataan CREATE TABLE
Penyataan CREATE TABLE digunakan untuk :
Membina jadual
Menakrifkan jadual
Menakrifkan lajur / column
Berikut adalah Sintaks bagi arahan ini :
CREATE TABLE nama_jadual (
Nama_medan1 jenis_medan NOT NULL,
Nama_medan2 jenis_medan
);
8
NO. KOD / CODE NO. DKB1343/K02/NK 01 - 01 Muka / Page : 9
Drpd / of : 12
Dalam pembinaan jadual, jenis dan saiz data yang sesuai perlu diambilkira. Sebagai contoh data
berjenis varchar, number, float, year dan sebagainya.
SQL membenarkan untuk mendefinisikan had atau sekatan (constraints) pada lajur dalam jadual. Jika
pengguna dibenarkan untuk menyimpan data dalam lajur yang tidak mengikut had, ralat akan muncul.
Sebagai contoh medan yang ingin ditentukan sebagai Primary Key, Auto Increment, Unique, Null
dan Not Null.
Contoh :
Berikut adalah penyataan SQL untuk membina jadual “pelajar” berdasarkan spesifikasi di bawah :
Nama lajur (column) Jenis data ( saiz data ) Constraint
id_pelajar INT Auto Increment
Primary Key
nama_pelajar VARCHAR(50) Not Null
email_ pelajar VARCHAR (20) Not Null
alamat_ pelajar VARCHAR (100)
Sintaks:
CREATE TABLE pelajar (
id_pelajar INT NOT NULL AUTO_INCREMENT,
nama_pelajar VARCHAR(50) NOT NULL,
email_pelajar VARCHAR(20) NOT NULL,
alamat_pelajar VARCHAR(100),
PRIMARY KEY (id_pelajar)
);
Berdasarkan contoh di atas, medan id_pelajar ditetapkan sebagai data yang akan mengalami
peningkatan nombor atau Auto Increment. Medan ini juga memestikan pengguna mengisi data dan
tidak dibenarkan ruang dibiarkan kosong atau Not Null. Medan ini juga ditetapkan sebagai kekunci
utama atau Primary Key bagi jadual ‘pelajar’.
Medan nama_pelajar merupakan medan yang akan menerima data berjenis gabungan teks, simbol
dan nombor. Medan ini akan menerima sehingga 50 karekter sahaja.
9. Penyataan SHOW TABLES;
Penyataan SHOW TABLES digunakan untuk memaparkan jadual-jadual yang telah dibina. Di dalam
pangkalan data yang telah dipilih tadi.
Sintaks: SHOW TABLES;
9
NO. KOD / CODE NO. DKB1343/K02/NK 01 - 01 Muka / Page : 10
Drpd / of : 12
Contoh :
10. Penyataan DESCRIBE
Penyataan DESCRIBE digunakan untuk memaparkan medan-medan yang telah didefinisikan dalam
jadual.
Sintaks:
DESCRIBE nama_jadual;
Contoh :
11. PENYATAAN ALTER
Penyataan ALTER digunakan untuk menambah, menghapuskan atau mengubahsuai lajur
(column) dalam jadual yang telah dibina.
11.1. PENYATAAN ALTER TABLE – ADD COLUMN
Penyataan ALTER TABLE ADD COLUMN digunakan untuk menambah lajur dalam jadual yang
sedia ada.
Berikut adalah sintaks bagi arahan ini :
ALTER TABLE nama_jadual ADD nama_lajur jenis_data;
Contoh :
Berikut adalah penyataan SQL untuk menambah lajur “nomatrik_p” di dalam jadual “pelajar” :
ALTER TABLE pelajar ADD nomatrik_p INT;
10
NO. KOD / CODE NO. DKB1343/K02/NK 01 - 01 Muka / Page : 11
Drpd / of : 12
11.2. PENYATAAN ALTER TABLE – MODIFY COLUMN
Penyataan ALTER TABLE - MODIFY COLUMN digunakan untuk mengubahsuai jenis dan saiz
data bagi lajur(column) dalam jadual yang sedia ada.
Sintaks :
ALTER TABLE nama_jadual MODIFY nama_lajur definisi_baharu;
Contoh :
Berikut adalah penyataan SQL untuk mengubahsuai saiz data bagi lajur “nomatrik_p” di dalam
jadual “pelajar” :
ALTER TABLE pelajar MODIFY nomatrik_p VARCHAR(15) ;
11.3. PENYATAAN ALTER TABLE – DROP COLUMN
Penyataan ALTER TABLE - DROP COLUMN digunakan untuk menghapuskan lajur dalam jadual.
sintaks :
ALTER TABLE nama_jadual DROP nama_lajur;
Contoh :
Berikut adalah penyataan SQL untuk menghapuskan lajur “email_pelajar” di dalam jadual
“pelajar” :
ALTER TABLE pelajar DROP email_pelajar ;
12. PENYATAAN DROP
Penyataan DROP digunakan untuk menyingkir atau menghapuskan jadual dan pangkalan data
yang sedia ada.
12.1. PENYATAAN DROP TABLE
Penyataan DROP TABLE digunakan untuk menghapuskan jadual yang sedia ada.
Berikut adalah sintaks bagi arahan ini :
DROP TABLE nama_jadual;
Contoh :
Berikut adalah penyataan SQL untuk menghapuskan jadual “pelajar” :
DROP TABLE pelajar;
11
NO. KOD / CODE NO. DKB1343/K02/NK 01 - 01 Muka / Page : 12
Drpd / of : 12
12.2. PENYATAAN DROP DATABASE
Penyataan DROP DATABASE digunakan untuk menghapuskan pangkalan data yang sedia ada.
Sintaks :
DROP DATABASE nama_pangkalan_data;
Contoh :
Berikut adalah penyataan SQL untuk menghapuskan pangkalan data “kolej_cyberpoint” :
DROP DATABASE kolej_cyberpoint;
RUJUKAN:
i. Ramez Elmasri & Shamkant B. Navathe (2016). Fundamentals of Database System. USA: Addison-
Wesley.
ii. Nik Ismail, N. & Mohd. Suaib, N (2015). SQL Tutorial Simply Easy Learning. Malaysia: ThinkerBiz®.
iii. Salha Abdullah dan Nazlia Omar (2000). Sistem Pangkalan Data. Sprint Print, Prentice Hall.
iv. Abdullah Embong (2000). Sistem Pangkalan Data. Tradisi Ilmu Sdn. Bhd.
v. Noraswaliza Abdullah, Nurul Akmar Emran & Safiza Suhana Kamal Baharin (2020). Jom Mereka
Bentuk Pangkalan Data. Universiti Teknikal Malaysia Melaka.
vi. Chua Siwe Geck, Yew Kwang Hooi (2016). Sains Komputer Tingkatan 4. Oxford Fajar Sdn. Bhd.
vii. Norlini binti Ramli, Paridah binti Daud (2017). Sains Komputer Tingkatan 5. Oxford Fajar Sdn. Bhd.
viii. Pusat Pengajian Teknologi Maklumat dan Komunikasi Multimedia (2004). CBDB3203 Implementasi
Pangkalan Data. Universiti Terbuka Malaysia.
ix. https://www.w3schools.com/sql/
x. Fairuzana Kamso (2007). Mengenali MySQL 5.0.37. Venton Publishing (M) Sdn. Bhd.
12
TAJUK: BAHASA PERTANYAAN BERSTRUKTUR
STRUCTURED QUERY LANGUAGE (SQL)
PENERANGAN:
1.0 LATAR BELAKANG SQL
SQL merupakan satu bahasa pertanyaan untuk pangkalan data. Anda telah mengetahui bahawa
terdapat pelbagai jenis perisian pangkalan data seperti Access, Oracle, FoxPro, MySQL dan
sebagainya. Adakah bahasa SQL ini serasi dengan semua jenis perisian pangkalan data tersebut?
Kenapa kita perlukan satu bahasa pertanyaan? Sebenarnya satu sistem pertanyaan yang lebih
berstruktur amat diperlukan supaya ruang untuk membawa interpretasi yang salah boleh
dikurangkan. Kita juga memerlukan satu sistem piawai, yang boleh dijalankan pada pelbagai
perkakasan dan sistem pangkalan data dari pembekal yang berlainan supaya pengguna dan
pembangun boleh mempelajari satu kaedah yang boleh digunakan pada kebanyakan sistem
pangkalan data.
Secara ideal, sesuatu bahasa pangkalan data membolehkan pengguna:
i) Membina pangkalan data dan struktur data;
ii) Membolehkan kemasukan, pengemaskinian dan penghapusan data dari jadual; dan
iii) Membuat pertanyaan yang mudah dan kompleks.
Bahasa Pertanyaan Berstruktur (SQL) diwujudkan untuk memenuhi kehendak-kehendak di atas.
SQL ialah Bahasa Pengolahan Data (DML) yang paling meluas digunakan di masa ini.
Tambahan pula, bahasa pangkalan data adalah diharapkan dapat melakukan tugas-tugas
tersebut dengan usaha pengguna yang minimum. Struktur arahan dan sintaksnya mestilah
mudah dipelajari dan yang paling penting, ia mesti mempunyai ciri mudah alih, iaitu ia mesti
mematuhi piawaian yang ada supaya kita boleh menggunakan struktur arahan dan sintaks yang
sama bila kita beralih dari satu DBMS ke DBMS yang lain. SQL diharapkan dapat memenuhi
keperluan ini.
Sebagai satu bahasa, SQL mempunyai dua komponen utama iaitu:
1) Bahasa Takrifan Data (Data Description Language – DDL) untuk mentakrifkan struktur
pangkalan data.
2) Bahasa Pengolahan Data (Data Manipulatin Language – DML) untuk mencapai dan
mengemas kini data.
SQL adalah mudah dipelajari kerana:
i) Ia adalah bahasa tidak bertatacara, iaitu pengguna hanya perlu menyatakan maklumat apa
yang dikehendaki dan bukan bagaimana untuk mendapatkan sesuatu maklumat;
ii) Bebas dari format / menggunakan format yang mudah difahami;
iii) Menggunakan perkataan Bahasa Inggeris harian;
iv) Tidak peka kepada huruf besar atau kecil, tetapi ia mesti ditaip seperti apa yang terdapat di
dalam pangkalan data; dan
NO. KOD / CODE NO. DKB1343/K03/NK 01 - 01 Muka / Page : 2
Drpd / of : 14
v) Boleh digunakan oleh pelbagai pengguna seperti DBA (DataBase Administrator),
pengaturcara dan pengguna biasa.
2.0 STRUKTUR ASAS UNGKAPAN SQL
Suatu pertanyaan dalam bahasa SQL terdiri daripada tiga klausa asas dalam format seperti berikut:
SELECT [DISTINCT | ALL] nama lajur
FROM nama jadual
WHERE keadaan;
Anda boleh membuat beberapa pemerhatian seperti berikut:
1) Ungkapan SQL dibina daripada perkataan yang ditakrif oleh SQL & perkataan yang
ditakrif oleh pnegguna. Perkataan yang ditakrif oleh SQL dikenali sebagai kata simpanan
yang membawa makna tertentu dan tidak boleh ditukar lagi. Perkataan yang ditakrif oleh
pengguna biasanya nama yang diberi oleh pengguna untuk jadual, lajur, pandangan dan
keadaan. Semuanya mestilah mengikut sintaks yang telah ditetapkan.
2) Walaupun kebanyakan pelaksanaan SQL menerima huruf kecil dan huruf besar sebagai
sama, untuk memudahkan kefahaman anda, kita akan mengikut tata tanda seperti berikut:
i) Huruf besar untuk perkataan yang ditakrif oleh SQL dan huruf kecil untuk perkataan
yang ditakrif oleh pengguna.
ii) Garis tegak | untuk menyatakan pilihan, misalnya pilihan di antara x, y dan z ditulis
sebagai x | y | z.
iii) Kurungan [ ] untuk menyatakan unsur di dalamnya adalah pilihan, contohnya [ x ]
adalah pilihan.
iv) Kurungan { } untuk menyatakan unsur di dalamnya dikehendaki, misalnya { x }
bermaksud x diperlukan.
v) Literal mestilah ditap seperti mana ia disimpan dalam pangkalan data. Literal
dianggap sebagai pemalar dalam pernyataan SQL. Semua literal mestilah diletakkan
dalam pengikat kata ‘ ‘, misalnya ‘Pangkalan Data’, kecuali jika literal itu ialah angka.
Walaupun SQL sebenarnya mempunyai format yang bebas tetapi untuk keseragaman dan mudah
dibaca, kita akan ikuti format berikut:
a) Setiap klausa dimulakan pada baris yang baru.
b) Permulaan setiap kalusa dijajarkan sama dan sambungannya dijajarkan ke kanan.
Sekarang kita lihat pula kepada sintaks dan makna setiap klausa asas SQL.
a) SELECT nama lajur
Klausa SELECT diikuti oleh satu atau lebih nama lajur yang dikehendaki dalam output. Nama lajur
merujuk kepada lajur dalam jadual yang dinyatakan dalam kalusa FROM. Tanda koma ( , ) diletak di
antara nama lajur jika lebih daripada satu lajur disenaraikan.
b) FROM nama jadual
Klausa FROM diikuti oleh satu atau lebih nama jadual. Jadual-jadual ini akan diimbas oleh sitem. Jika
lebih dari satu jadual disenaraikan, ini bermakna jadual-jadual itu mesti didarab bersilang. Tanda koma
( , ) diletak di antara nama jadual jika lebih daripada satu jadual disenaraikan.
c) WHERE keadaan
NO. KOD / CODE NO. DKB1343/K03/NK 01 - 01 Muka / Page : 3
Drpd / of : 14
Arahan WHERE diikuti oleh keadaan K yang merupakan satu ungkapan BOOLEAN. K ialah kombinasi
syarat yang disambung oleh AND, OR dan NOT. Syaratnya adalah dalam bentuk X operator Y
apabila x dan y merupakan nama lajur, pemalar atau satu ungkapan aritmetik. Operator ialah unsur
perbandingan. Unsur perbandingan yang dibenarkan di dalam ungkapan SQL ialah:
Operator Maksud
= Bersamaan dengan
< Kurang dari
> Lebih dari
<= Kurang atau bersamaan dengan
>= Lebih atau bersamaan dengan
<> Tidak sama dengan
Ringkasnya K menyatakan syarat bagaimana nama lajur dalam arahan SELECT dipilih daripada jadual atau
cantuman jadual yang dinyatakan dalam arahan FROM. Arahan WHERE adalah pilihan, jika ia tidak
dinyatakan, ini bermakna keadaan K adalah sentiasa benar.
d) DISTINCT | ALL
DISTINCT atau ALL ialah perkataan yang ditakrif oleh SQL yang mengikuti klausa SELECT.
Tujuan DISTINCT ialah untuk menyingkirkan baris-baris yang berulang daripada jadual yang
dihasilkan. Sebaliknya ALL menentukan yang semua baris berulang dikekalkan. ALL merupakan nilai
lalai. DISTINCT adalah pilihan dan jika ditinggalkan, SQL membenarkan baris berulang wujud dalam
jadual output.
3.0 EMPAT PERTANYAAN UNTUK MEMBINA SQL
Sewajarnya sebelum kita membina SQL atau cuba mencapai data dari pangkalan data hubungan,
cuba kita tanya pada diri sendiri empat persoalan berikut:
i. Apakah output yang hendak dilihat?
Memilih lajur data dari beberapa jadual yang disimpan di dalam pangkalan data.
ii. Apa yang telah anda ketahui (atau apa kekangan yang ada)?
Menghadkan carian berdasarkan kepada kriteria tertentu.
iii. Apakah jadual yang terlibat?
Jadual sebaiknya diberi nama yang dapat menggambarkan kandungan dan tujuan
dihasilkan.
iv. Bagaimana jadual dihubungkan?
Berkaitan dengan isu penormalan data yang merupakan nadi di dalam pangkalan data
hubungan.
Kita perlu ingat empat persoalan ini tanpa menghiraukan susunannya. Apabila pertama kali mencipta
SQL, jadikan amalan untuk cuba menjawab persoalan. Untuk masalah yang mudah mungkin kita
boleh menjawab secara automatik persoalan tersebut, tetapi untuk masalah yang lebih kompleks, kita
boleh menjawab sebahagian persoalan kemudia beralih kepada persoalan yang lain sehingga kita
memahami persoalan-persoalan tersebut secara keseluruhan.
4.0 TAKRIFAN DATA DALAM SQL
NO. KOD / CODE NO. DKB1343/K03/NK 01 - 01 Muka / Page : 4
Drpd / of : 14
Bahasa Takrifan Data (Data Definition Language – DDL) ilah komponen di dalam SQL yang
membenarkan kita mentakrif set hubungan dan juga mentakrifkan maklumat mengenai setiap
hubungan. Di antara maklumat tersebut ialah:
i. Skema hubungan.
ii. Struktur jadual.
iii. Jenis data dan domain bagi setiap atribut atau lajur.
4.1 Jenis data dan Pencam Dalam SQL
Jenis data yang disokong oleh SQL adalah seperti berikut:
1) Jenis data rentetan
Rentetan terbahagi kepada dua, iaitu rentetan aksara dan rentetan bit.
a) Rentetan Aksara boleh diisytiharkan dalam dua bentuk:
i. CHAR (n) – rentetan aksara yang terdiri dari n aksara
ii. VARCHAR (n) – di mana panjang rentetan aksara berubah dari satu hingga n
aksara.
Sebagai contoh sekiranya anda mengisytiharkan satu rentetan sebagai
CHAR(10), tetapi hanya menggunakan 7 aksara maka tiga tempat lagi akan
diisi dengan ruang kosong di sebelah kanan dan ruang simpanan di dalam
memori adalah untuk 10 aksara. Tetapi sekiranya anda mengisytiharkan satu
rentetan sebagai VARCHAR(10), dan hanya 7 aksara sahaja yang digunakan
maka ruang simpanan di dalam memori adalah utnuk 7 aksara sahaja yang
digunakan maka ruang simpanan di dalam memori adalah untuk 7 aksara,
dengan itu ia lebih menjimatkan ruang.
b) Rentetan bit sama seperti rentetan aksara, rentetan bit boleh diisytiharkan sebagai
BIT (n) jika panjangnya tetap atau BIT VARYING (n) jika panjangnya berubah. BIT
boleh mengandungi bit 0 atau 1. Nilai Boolean T boleh diwakili oelh satu bit 1 dan nilai
Booleen F boleh diwakili oelh satu bit 0.
2) Jenis data numerik
Jenis data numerik terdiri dariapda integer, perpuluhan, nombor titik apungan dan nombor
nyata. Jadual di bawah menghuraikan jenis-jenis data ini.
Data Numerik Huraian
INTEGER atau INT Untuk nombor bulat
SMALLINT Untuk nombor bulat yang kecil
DECIMAL (m, n) Untuk nombor perpuluhan dengan jumlah digit m dan n tempat
perpuluhan. Ringkasan untuk DECIMAL ialah DEC
NUMERIC (m, n) Sama seperti DEC (m, n)
FLOAT Untuk nombor titik perpuluhan
REAL Untuk nombo nyata
DOUBLE PRECISION Untuk nombor nyata yang memerlukan ketepatan tinggi
3) Jenis domain tarikh dan masa
Jenis domain tarikh diisytiharkan sebagai DATE dan jenis domain masa diisytiharkan sebagai
TIME. Ini digambarkan seperti di rajah berikut.
Jenis data Huraian
DATE Terdiri daripada tahun, bulan dan hari
TIME Terdiri daripada jam dan minit
NO. KOD / CODE NO. DKB1343/K03/NK 01 - 01 Muka / Page : 5
Drpd / of : 14
Jenis-jenis data di atas digunakan oleh SQL untuk mengisytiharkan jenis data atribut dan lajur. Nama
lajur merupakan satu pencam dalam SQL. SQL menggunakan pencam utnuk mengenal pasti atau
menamakan objek-objek dalam pangkalan data seperti nama jadual dan nama lajur.
Pencam boleh ditakrifkan oleh pengguna atau oelh sistem. Pencam mestilah terdiri daripada set
aksara yang dibenarkan iaitu huruf a – z, huruf besar A – Z, digit 0 – 9 dan tan “_”. Suatu pencam
tidak boleh melebihi 128 aksara dan tidak boleh mengandungi ruang kosong. Contoh-contoh pencam
dan pengisytiharan jenis data ialah seperti berikut:
Nama CHAR(30)
Alamat VARCHAR(100)
MasaBekerja TIME
4.2 MENCIPTA PANGKALAN DATA DAN JADUAL
(Sila rujuk Nota Kursus 4)
5.0 PENGURUSAN DATA
Bahasa pengurusan data ini adalah sebahagian daripada Bahasa Pengolahan Data (Data
Manipulation Language – DML) yang boleh digunakan untuk mengemas kini data yang terdapat di
dalam pangkalan data.
Antara arahan-arahan yang tergandung dalam pengurusan data ialah INSERT, DELETE dan
UPDATE. Setiap arahan tersebut mempunyai peranannya yang tersendiri. Penggunaan arahan-
arahan ini amat penting kerana ia juga merupakan arahan asas untuk menguruskan data. Tanpa
arahan-arahan tersebut mungkin data yang disimpan tidak akan bermakna kerana ia tidak dapat
diolah atau diuruskan dengan baik.
5.1 Memanipulasi Data Menggunakan DML dan Transactional Control Command
5.1.1 Pernyataan INSERT
Fungsi: untuk menambah satu baris baru atau memasukkan data pada jadual-jadual tertentu
Sintak asas:
atau
5.1.2 Memasukkan Data daripada Jadual Lain
Tiada
NO. KOD / CODE NO. DKB1343/K03/NK 01 - 01 Muka / Page : 6
Drpd / of : 14
5.1.3 Pernyataan UPDATE
Fungsi : untuk mengemaskini data-data yang terdapat pada pangkalan data. UPDATE hanya
mengubah kandungan jadual tetapi tidak mengubah struktur jadual.
Sintaks Asas:
5.1.4 Pernyataan DELETE
Fungsi: untuk membuang rekod/baris di dalam jadual dengan menentukan syarat tertentu
Sintaks Asas:
Arahan DELETE memadamkan keseluruhan data dari jadual jika tiada penggunaan syarat
dan sebaliknya.
Selepas melakukan operasi DELETE, anda boleh lakukan COMMIT (perubahan kekal) atau
ROLLBACK (pembatalan / pengembalian).
5.1.5 Pernyataan TRUNCATE
Fungsi : untuk membuang rekod dalam jadual dengan lebih pantas
Sintaks asas:
Data yang dipadam tidak boleh dikembalikan semula.
Hanya membuang rekod, tidak mengganggu sebarang struktur jadual.
Arahan ini membuang data/rekod dengan lebih pantas kerana membuang secara langsung
data daripada pusat penyimpanan.
5.1.6 Arahan COMMIT
Fungsi: mengakhiri transaksi terkini di mana perubahan kekal berlaku dan hanya dapat
melihat data sama seperti sebelum melakukan perubahan.
NO. KOD / CODE NO. DKB1343/K03/NK 01 - 01 Muka / Page : 7
Drpd / of : 14
Membuat data tidak dapat diubah kembali meskipun menggunakan arahan ROLLBACK
Sintaks asas:
5.1.7 Arahan ROLLBACK
Fungsi: mengakhiri transaksi dan membatalkan perubahan-perubahan yang dibuat selama
transaksi. Ia mengembalikan semula transaksi ke transaksi asal di mana save point telah
ditentukan.
Sintaks asas:
6.0 PERTANYAAN DATA
Arahan SELECT ialah arahan asas kepada semua pertanyaan SQL. Arahan SELECT digunakan
untuk mencapai dan memaparkan data dari satu atau lebih jadual.
Strategi Penyelesaian kepada satu pertanyaan SQL secara kasar adalah seperti berikut:
SELECT DISTINCT A1, A2
FROM T1, T2
WHERE S
Apa yang dilakukan oleh DBMS dalam menyelesaikan pertanyaan di atas secara teorinya ialah:
i. Dapatkan hasil darab bersilang jadual T1 dan T2.
ii. Singkirkan baris-baris yang tidak memenuhi syarat S.
iii. Singkirkan lajur-lajur selain A1 dan A2.
iv. Singkirkan baris-baris berulang jika ada.
Output yang dihasilkan adalah satu jadual. Dengan menterjemahkan strategi penyelesaian suatu
pertanyaan dalm urutan di atas kita dapat memahami dengan lebih jelas kehendak sesuatu
pertanyaan SQL.
6.1 Mendapatkan Data Menggunakan Pernyataan SELECT
6.1 Pernyataan SELECT
Fungsi SELECT: digunakan untuk pertanyaan data dalam pangkalan data
Sintaks asas:
NO. KOD / CODE NO. DKB1343/K03/NK 01 - 01 Muka / Page : 8
Drpd / of : 14
a) Klausa DISTINCT
Fungsi klausa DISTINCT: digunakan untuk memulangkan atau memaparkan nilai yang
berbeza dan data yang berulang akan dipapar sekali sahaja
Klausa DISTINCT perlu diletakkan selepas pernyataan SELECT.
Sintaks asas:
b) Klausa WHERE
Klausa WHERE digunakan untuk memaparkan data daripada jadual yang memenuhi
syarat yang ditetapkan.
Jika tidak gunakan klausa WHERE, kesemua data akan dipaparkan.
Sintaks asas klausa:
c) Klausa ALL
Kata kunci ALL bersama dengan tanda * digunakan untuk memilih semua lajur dari jadual.
Boleh menggunakan tanda * sahaja bagi menggantikan kata kunci ALL.
Hasil pelaksanaan menggunakan ALL dan * adalah sama.
Sintaks asas:
d) Klausa AND
Kata kunci AND digunakan untuk mencipta logik perhubungan.
Kata kunci AND perlu diletakkan bersama-sama dengan pernyataan WHERE.
NO. KOD / CODE NO. DKB1343/K03/NK 01 - 01 Muka / Page : 9
Drpd / of : 14
Pernyataan WHERE merupakan pernyataan yang mengandungi sekurang-kurangnya dua
syarat.
Sintaks asas:
Pelaksanaan dibuat dengan memeriksa dahulu syarat1,jika salah maka semua pernyataan
adalah salah dan tidak perlu untuk memeriksa syarat2 dan sebaliknya.
e) Klausa OR
Kata kunci OR digunakan untuk mencipta logik perhubungan.
Kata kunci OR perlu diletakkan bersama-sama dengan pernyataan WHERE.
Pernyataan WHERE merupakan pernyataan yang mengandungi sekurang-kurangnya dua
syarat.
Sintaks asas:
Pelaksanaan dibuat dengan memeriksa dahulu syarat1,jika salah maka syarat2 pula
diperiksa. Salah satu syarat perlu benar untuk memaparkan data daripada jadual dan
sebaliknya.
f) Klausa IN
Kata kunci IN digunakan untuk mencari rekod yang berada dalam jadual.
Kata kunci IN diletakkan selepas pernyataan WHERE.
Kegunaan operator IN adalah sama seperti operator OR.
Sintaks asas:
g) Klausa AS
Kata kunci AS digunakan pada pernyataan SELECT untuk menukarkan kapsyen pada
lajur atau kapsyen jadual.
Sintaks asas:
NO. KOD / CODE NO. DKB1343/K03/NK 01 - 01 Muka / Page : 10
Drpd / of : 14
h) Klausa BETWEEN
Kata kunci BETWEEN digunakan untuk memaparkan data yang berada antara nilai
awalan dan nilai akhir.
Perlu digabungkan dengan kata kunci AND untuk mendapat hasil daripada julat yang
diberikan.
Sintaks asas:
i) Klausa ORDER BY
Kata kunci ORDER BY digunakan untuk menyusun rekod dalam turutan.
ASC turutan menaik , DESC turutan menurun
Sintaks asas:
j) Klausa GROUP BY
Klausa GROUP BY digunakan untuk meringkaskan maklumat yang sama dalam satu
kumpulan.
Biasanya klausa GROUP BY digunakan bersama fungsi agregat.
Sintaks asas:
NO. KOD / CODE NO. DKB1343/K03/NK 01 - 01 Muka / Page : 11
Drpd / of : 14
k) Klausa LIKE
Klausa LIKE digunakan untuk melaksanakan padanan corak.
Terdapat 2 simbol yang boleh digunakan semasa melaksanakan padanan corak iaitu:
i. %
ii. _
Sintaks asas:
Contoh padanan corak:
l) Klausa COUNT
Klausa COUNT digunakan untuk mengira bilangan rekod dalam sesebuah jadual.
Sintaks asas:
m) Operators
Digunakan dalam melaksanakan operasi seperti perbandingan dan operasi aritmetik serta
menentukan syarat-syarat dalam satu pernyataan SQL
Terdapat 3 jenis operator:
NO. KOD / CODE NO. DKB1343/K03/NK 01 - 01 Muka / Page : 12
Drpd / of : 14
i. Arithmetic Operators
o Operator aritmetik boleh melakukan operasi aritmetik pada operan angka yang
terlibat. Operator aritmetik adalah seperti berikut:
Operator Huraian
+ Tambah
- Tolak
* Darab
/ Bahagi
% Baki
o Sintaks asas:
SELECT <Expression>[arithmetic operator]<expression>...
FROM [table_name]
WHERE [expression];
ii. Comparison Operators
o Operator Perbandingan digunakan untuk membandingkan antara dua pilihan nilai.
o Operator Perbandingan adalah seperti berikut:
Operator Huraian
= Sama dengan
> Lebih besar daripada
< Lebih kecil daripada
>= Lebih besar dan sama
<= Lebih kecil dan sama
< > Tidak sama
o Sintaks asas:
SELECT namalajur
FROM namajadual
WHERE namalajur [comparison operator] nilai;
iii. Logical Operators
o Operator Logika digunakan sebagai penghubung kepada klausa yang lain untuk
memulangkan keputusan Benar atau SALAH. Operator Logika seperti berikut:
Operator Huraian
ALL Benar jika semua perbandingan adalah benar
AND Benar jika kedua-dua ungkapan benar
BETWEEN Benar jika operan dalam julat perbandingan
Benar jika operan sama nilai dengan salah satu
IN
ungkapan
NO. KOD / CODE NO. DKB1343/K03/NK 01 - 01 Muka / Page : 13
Drpd / of : 14
LIKE
NOT Benar jika operan sepadan dengan corak
OR Terbalikkan nilai operan
Benar jika salah satu ungkapan benar
n) Ungkapan (Expression)
Ungkapan adalah gabungan satu atau lebih nilai, operator dan fungsi SQL yang menilai
kepada nilai.
Sintaks asas:
SELECT namalajur1, namalajur2
FROM namajadual
WHERE [syarat | ungkapan];
Terdapat 3 jenis Ungkapan:
i. Boolean
o Ungkapan Boolean mengambil data berdasarkan padanan nilai tunggal
o Sintaks asas:
SELECT namalajur1, namalajur2
FROM namajadual
WHERE nilai tunggal sepadan dengan ungkapan;
ii. Numerik (numeric)
o Ungkapan ini digunakan untuk melakukan sebarang operasi matematik dalam
sebarang pertanyaan
o Sintaks asas;
SELECT ungkapan numeric AS namaoperasi
FROM namajadual
WHERE syarat;
iii. Tarikh (Date)
o Ungkapan Date memulangkan nilai masa dan tarikh sistem semasa
o Sintaks asas:
SELECT CURRENT_TIMESTAMP;
Atau
SELECT GETDATE();
NO. KOD / CODE NO. DKB1343/K03/NK 01 - 01 Muka / Page : 14
Drpd / of : 14
RUJUKAN:
i. Ramez Elmasri & Shamkant B. Navathe (2016). Fundamentals of Database System. USA: Addison-
Wesley.
ii. Nik Ismail, N. & Mohd. Suaib, N (2015). SQL Tutorial Simply Easy Learning. Malaysia: ThinkerBiz®.
iii. Salha Abdullah dan Nazlia Omar (2000). Sistem Pangkalan Data. Sprint Print, Prentice Hall.
iv. Abdullah Embong (2000). Sistem Pangkalan Data. Tradisi Ilmu Sdn. Bhd.
v. Noraswaliza Abdullah, Nurul Akmar Emran & Safiza Suhana Kamal Baharin (2020). Jom Mereka
Bentuk Pangkalan Data. Universiti Teknikal Malaysia Melaka.
vi. Chua Siwe Geck, Yew Kwang Hooi (2016). Sains Komputer Tingkatan 4. Oxford Fajar Sdn. Bhd.
vii. Norlini binti Ramli, Paridah binti Daud (2017). Sains Komputer Tingkatan 5. Oxford Fajar Sdn. Bhd.
viii. Pusat Pengajian Teknologi Maklumat dan Komunikasi Multimedia (2004). CBDB3203 Implementasi
Pangkalan Data. Universiti Terbuka Malaysia.
ix. https://www.w3schools.com/sql/
x. Fairuzana Kamso (2007). Mengenali MySQL 5.0.37. Venton Publishing (M) Sdn. Bhd.
TAJUK: FUNGI-FUNGSI DALAMAN BAHASA PERTANYAAN BERSTRUKTUR (SQL)
BUILT-IN FUNCTIONS STRUCTURED QUERY LANGUAGE (SQL)
PENERANGAN:
1.0 FUNGSI-FUNGSI (FUNCTIONS) SQL
SQL mempunyai banyak fungsi built-in untuk melaksanakan pengiraan pada data atau menetapkan
bentuk data. Fungsi-fungsi SQL terdiri daripada fungsi nombor, fungsi data yang panjang (string) dan
fungsi tarikh dan masa.
2.0 Fungsi Nombor
Fungsi nombor terdiri daripada 2 bahagian utama iaitu:
a) Operasi ilmu kira-kira
b) Operasi Matematik
a) Operasi ilmu kira-kira
Dalam SQL, terdapat operasi kira-kira yang biasa. Jenis-jenis operasi kira-kira dan
contoh bagi setiap operasi tersebut dinyatakan seperti berikut.
Penambahan ( + ) :
Memberikan hasil tambah bagi dua nombor atau lebih.
Penolakan ( - ) :
Memberikan hasil tolak bagi dua nombor atau lebih.
Pendaraban ( * ) :
Memberikan hasil darab bagi dua nombor atau lebih.
NO. KOD / CODE NO. DKB1343/K04/NK 01 - 01 Muka / Page : 2
Drpd / of : 20
Pembahagian ( / ) :
Memberikan hasil bahagi bagi dua nombor atau lebih.
b) Operasi Matematik
Fungsi Matematik yang terdapat dalam SQL adalah seperti COS, TAN, SIN, ABS,
ACOS, ASIN, ATAN, CEIL, COT, DEGREES, EXP dan lain-lain lagi. Berikut diberikan
beberapa contoh fungsi Matematik. [ fungsi yang lain boleh rujuk http://www.w3school.com ]
COS (X) :
Fungsi ini mengembalikan nilai Kosinus bagi X, di mana nilai X diberi dalam unit radian.
SIN (X) :
Fungsi ini mengembalikan nilai Sinus bagi X, di mana nilai X diberi dalam unit radian.
TAN (X) :
Fungsi ini mengembalikan nilai Tangen bagi X, di mana nilai X diberi dalam unit radian.
NO. KOD / CODE NO. DKB1343/K04/NK 01 - 01 Muka / Page : 3
Drpd / of : 20
FORMAT (X, D) :
Memformatkan nilai X yang diberi dalam satu format ###,###.##, dan ketepatan sehingga D
tempat perpuluhan.
MOD (N, M) atau N % M atau N MOD M :
Mengembalikan baki bagi nilai N yang dibahagikan dengan nilai M.
POW (X, Y) atau POWER (X, Y) :
Fungsi ini mengembalikan nilai bagi XY.
NO. KOD / CODE NO. DKB1343/K04/NK 01 - 01 Muka / Page : 4
Drpd / of : 20
ROUND (X) atau ROUND (X, D) :
Fungsi ini mengembalikan nilai X, dan memberikan nombor bulat kepada integer yang
terhampir. Jika ia mengandungi dua nilai, maka ia akan mengembalikan nilai X dan
memberikan nombor bulat bagi integer yang terhampir dengan D titik peruluhan.
SQRT (X) :
Fungsi ini mengembalikan nilai punca kuasa dua bagi X, di mana nilai X mestilah nombor
positif.
TRUNCATE (X) :
Fungsi ini mengembalikan nilai X, di mana nilai tersebut dipendekkan kepada D digit selepas
titik perpuluhan. Jika D adalah negatif, D digit sebelum titik perpuluhan akan digantikan
dengan 0.
Selain fungsi-fungsi yang diterangkan di atas, SQL juga menyediakan fungsi agregat (aggregate
functions) mengikut piawaian ISO yang boleh dilaksanakan kepada satu lajur dalam jadual untuk
menghasilkan satu nilai bagi lajur berkenaan. Fungsi tersebut adalah seperti COUNT(), SUM(),
AVG(), MIN() dan MAX().
Penerangan seterusnya adalah menggunakan jadual products di bawah.
NO. KOD / CODE NO. DKB1343/K04/NK 01 - 01 Muka / Page : 5
Drpd / of : 20
Jadual products
Setiap satu operasi di lajur yang ditentukan akan memberi satu nilai hasil dari operasi
tersebut. COUNT, MIN dan MAX boleh digunakan pada medan numerik dan bukan numerik tetapi
SUM dan AVG hanya boleh digunakan pada medan numerik sahaja. Semua fungsi tidak mengambil
kira ruang kosong atau NULL dan beroperasi pada medan bernilai sahaja kecuali COUNT(*).
COUNT(*) ialah penggunaan khas COUNT yang mengira semua baris di dalam jadual, termasuk nilai
NULL atau nilai yang sama pada baris yang berlainan.
Untuk memastikan nilai berulang dalam sesuatu lajur tidak dikira, anda perlu menggunakan kata
simpanan DISTINCT sebelum menamakan lajur berkenaan. DISTINCT tidak memberi apa-apa
perbezaan bila digunakan dengan MIN atau MAX tetapi boleh mengubah nilai dengan penggunaan
SUM dan AVG.
Fungsi agregat hanya boleh digunakan dalam pernyataan SELECT dan pernyataan HAVING.
Jika penggunaan SELECT mengandungi fungsi agregat dan tiada arahan GROUP BY, SELECT tidak
dapat mengenalpasti baris.
Penggunaan COUNT (*)
COUNT (*) digunakan untuk mengira semua bilangan baris yang memenuhi syarat yang dinyatakan
dalam arahan WHERE. Ini digambarkan di dalam contoh yang berikut:.
Contoh:
Kira bilangan produk yang terdapat dalam jadual products.
Contoh:
Kira bilangan produk yang terdapat dalam jadual products, di mana syktID adalah S01.
NO. KOD / CODE NO. DKB1343/K04/NK 01 - 01 Muka / Page : 6
Drpd / of : 20
Penggunaan COUNT dan DISTINCT
Di sini, COUNT digunakan untuk mengira semua baris dan DISTINCT pula akan menghapuskan baris
yang berulang.
Contoh:
Kira bilangan syarikat yang berlainan yang didaftarkan dalam jadual products.
Penggunaan COUNT dan SUM
COUNT digunakan untuk mengembalikan bilangan nilai sesuatu lajur tetapi SUM mengembalikan
jumlah nilai sesuatu lajur.
Contoh:
Hasilkan jumlah bilangan produk dan jumlahkan harga dalam jadual products.
Penggunaan SUM, AVG, MIN dan MAX
Di dalam SQL, anda boleh mencari jumlah dan purata bagi sesuatu lajur, nilai terkecil dan nilai
terbesar dengan pengunaan SUM, AVG, MIN dan MAX.
Contoh:
Carikan jumlah dan purata harga, harga terendah dan harga tertinggi dalam jadual products.
Penggunaan GROUP BY
Anda boleh menggunakan arahan GROUP BY untuk mengumpul baris mengikut kumpulan yang
dinyatakan. Pengunaannya lebih jelas ditunjukkan di dalam contoh yang berikut.
Contoh:
NO. KOD / CODE NO. DKB1343/K04/NK 01 - 01 Muka / Page : 7
Drpd / of : 20
Kirakan bilangan syarikat yang terlibat dalam jadual products.
Apa yang dilakukan oleh SQL ialah mengumpulkan baris mengikut kumpulan syktID dan kemudian
mengira bilangan baris bagi setiap kumpulan syktID.
Penggunaan GROUP BY dan HAVING
Kadang kala anda hendak mengumpulkan nilai-nilai dalam lajur tertentu mengikut kumpulan yang
mempunyai ciri-ciri yang serupa. Untuk tujuan ini SQL menyediakan pernyataan GROUP BY untuk
mengumpulkan lajur tersebut yang mematuhi ciri-ciri tertentu yang boleh disyaratkan melalui
pernyataan HAVING.
Contoh:
Senaraikan kod produk yang mempunyai harga purata lebih daripada 500.
Penggunaan Sub-pertanyaan Bersama Fungsi Agregat
Pertanyaan luaran boleh dikaitkan dengan sub-pertanyaan luaran dengan menggunakan fungsi
agregat.
Contoh:
Senaraikan semua kod, jenis dan harga produk, di mana harga melebihi harga purata .
3.0 Fungsi data yang panjang (String)
NO. KOD / CODE NO. DKB1343/K04/NK 01 - 01 Muka / Page : 8
Drpd / of : 20
Fungsi-fungsi SQL berikut boleh digunakan untuk memanipulasi data yang panjang.
Berikut diberikan beberapa contoh fungsi data yang panjang. [ fungsi yang lain boleh rujuk
http://www.w3school.com ]. Fungsi-fungsi berikut juga dikategorikan sebagai scalar functions.
BIN (N) :
Fungsi data BIN mengembalikan nilai data yang menunjukkan nilai perduaan (binary), N (di
mana N adalah nombor longlong (BIGINT). Nilai perduaan (binary) yang dikembalikan adalah
kombinasi integer 1 dan 0 sahaja.
CHAR_LENGTH (str) atau CHARACTER_LENGTH (str) :
Fungsi ini mengembalikan nilai panjang bagi data str yang diberikan. Nilai panjang tersebut
diukur dalam bilangan aksara yang terdapat dalam data str yang diberikan.
CONCAT (str1, str2, …) :
Fungsi ini boleh mempunyai satu atau lebih nilai yang diberikan iaitu str1, str2 dan seterusnya.
Ia mengembalikan cantuman bagi nilai-nilai yang diberikan tadi.
NO. KOD / CODE NO. DKB1343/K04/NK 01 - 01 Muka / Page : 9
Drpd / of : 20
LOWER (str) atau LCASE (str) :
Fungsi ini mengembalikan data str di mana semua huruf dalam data ini ditukarkan kepada
huruf kecil.
UPPER (str) atau UCASE (str) :
Fungsi ini mengembalikan data str di mana semua huruf dalam data ini ditukarkan kepada
huruf besar.
LEFT (str, pjg_aks) :
Fungsi ini mengembalikan data paling kiri dengan panjang huruf, pjg_aks daripada data str. Ia
akan mengembalikan NULL jika kenyataan adalah NULL.
RIGHT (str, pjg_aks) :
NO. KOD / CODE NO. DKB1343/K04/NK 01 - 01 Muka / Page : 10
Drpd / of : 20
Fungsi ini mengembalikan data paling kanan dengan panjang huruf, pjg_aks daripada data
str. Ia akan mengembalikan NULL jika kenyataan adalah NULL.
REPEAT (str, count) :
Fungsi ini mengembalikan satu data yang mengandungi data str dan berulang sebanyak
count kali. Tetapi, jika count adalah kurang daripada 1, maka ia akan mengembalikan data
yang kosong.
REPLACE (str, from_str, to_str) :
Fungsi ini mengembalikan data str dan dalam data ini, semua yang terdapat dalam data
from_str digantikan dengan data to_str. Data from_str adalah kes sensitif dalam fungsi ini.
REVERSE (str) :
Fungsi ini digunakan untuk mengembalikan data str yang telah diterbalikkan.
SUBSTRING (str, pos) atau SUBSTRING (str FROM pos) atau SUBSTRING (str, pos,
pjg_aks) atau SUBSTRING (str FROM pos FOR pjg_aks) atau MID (str, pos, pjg_aks)7 :
Kedua-dua fungsi yang pertama iaitu SUBSTRING (str, pos) atau SUBSTRING (str FROM
pos) mengembalikan subdata daripada data str yang dimulakan pada kedudukan pos.