Contoh Perintah SQL
Contoh Perintah SQL
Berikut ini adalah perintah-perintah SQL atau yang lebih dikenal dengan sebutan query.
Adapun project yang dijadikan sebagai acuan adalah proyek database sederhana penilaian
mahasiswa.
Tabel tbl_mahasiswa
Reference Reference
Field Tipe Data Null PK
Tabel Field
nim Varchar(6) N Y
Nama Varchar(20) N N
Alamat Varchar(30) Y N
Kd_jurusan Varchar(4) N N Kd_jurusan Tbl_jurusan
Tgl__masuk DateTime N N
Tabel tbl_dosen
Reference Reference
Field Tipe Data Null PK
Tabel Field
Kd_dosen Varchar(6) N Y
Nama_dosen Varchar(20) N N
Alamat Varchar(30) N N
Telepon Varchar(12) Y N
Tabel tbl_jurusan
Reference Reference
Field Tipe Data Null PK
Tabel Field
Kd_Jurusan Varchar(4) N Y
Nama_Jurusan Varchar(30) N N
Ketua_Jurusan Varchar(4) N Tbl_Dosen Kd_Dosen
Tabel tbl_matakuliah
Reference Reference
Field Tipe Data Null PK
Tabel Field
Kdmk Varchar(6) N Y 0
Nama_mk Varchar(25) N
Semester tinyint N
Sks Tinyint N
Tabel tbl_krs
Reference Reference
Field Tipe Data Null PK
Tabel Field
Kd_krs Varchar(5) N Y
Nim Varchar(6) N Tbl_Mahasiswa Nim
Semester Tinyint N
1
Dsn_wali Varchar(6) N Tbl_Dosen Kd_Dosen
Tabel tbl_krsdetail
Reference Reference
Field Tipe Data Null PK
Tabel Field
Kd_Krs Varchar(5) N Y
Kdmk Varchar(6) N Tbl_matakuliah Kdmk
Kd_dosen Varchar(6) N Tbl_Dosen Kd_Dosen
Nilai_Angka Float Y
Nilai_Huruf Varchar(2) Y
Pembuatan Tabel-tabel
Tabel-tabel dibuat dengan engine InnoDB karena secara default MySQL akan
menggunakan engine MyISAM yang tidak dapat menggunakan fitur Constraint Foreign
Key.
USE kuliah;
2
CREATE TABLE tbl_mahasiswa (
nim varchar(6) NOT NULL,
nama varchar(20) NOT NULL,
alamat varchar(30) default NULL,
telepon varchar(12) default NULL,
kd_jurusan varchar(4) default NULL,
tgl_masuk datetime default NULL,
PRIMARY KEY (nim),
KEY FK_tbl_mahasiswa (kd_jurusan),
CONSTRAINT FK_tbl_mahasiswa FOREIGN KEY (kd_jurusan) REFERENCES
tbl_jurusan(kd_jurusan)
) ENGINE=InnoDB;
3
KEY FK_tbl_krsdetail(kd_krs),
KEY FK_tbl_krsmk(kdmk),
KEY FK_tbl_krsdosen(kd_dosen),
CONSTRAINT FK_tbl_krsdosen FOREIGN KEY (kd_dosen) REFERENCES
tbl_dosen(kd_dosen),
CONSTRAINT FK_tbl_krsdetail FOREIGN KEY (kd_krs) REFERENCES
tbl_krs(kd_krs),
CONSTRAINT FK_tbl_krsmk FOREIGN KEY (kdmk) REFERENCES
tbl_matakuliah (kdmk)
) ENGINE=InnoDB;
Sintaks :
Data yang pertama sekali diisi yaitu data pada tabel master data.
4
('KOMP07', 'Matematika Dasar ', 1, 2),
('KOMP08', 'Bahasa Indonesia ', 1, 2),
('KOMP09', 'Agama', 1, 2),
('KOMP10', 'Analisa Numerik', 3, 2),
('KOMP11', 'Analisa Algoritma', 3, 2),
('KOMP12', 'Perancangan System', 3, 2);
5
Entry pada Tabel KRS Detail (38 Rekord)
SELECT
Sintaks
SELECT field1,field2,field3 FROM nama_tabel;
6
mysql> select nama,alamat,telepon from tbl_mahasiswa;
+-----------+----------------------------+-------------+
| nama | alamat | telepon |
+-----------+----------------------------+-------------+
| Abdul G | Jl. Melati no 45 | 061-8445212 |
| Sugimin | Jl. Gatot Subroto no 44 | 061-5651211 |
| Abu Bakar | Jl. Kapt Muslim no 45 | 061-8457881 |
| Dessy N | Jl. Imam bonjol no 125 | 061-4511221 |
| Charles S | Jl. Sisingamangaraja no 12 | 061-7861245 |
+-----------+----------------------------+-------------+
5 rows in set (0.00 sec)
SELECT LIMIT
Select Limit digunakan untuk menentukan record yang ditampilkan mulai dari record
yang keberapa hingga record yang keberapa.
Sintaks :
SELECT … AS
Select As digunakan untuk mengganti nama tabel pada hasil query, nama tabel ini tidak
mempengaruhi nama tabel aslinya.
Sintaks :
7
Contoh : Mengganti tampilan field nama dengan nama_mahasiswa pada query
sebelumnya.
WHERE
Where digunakan untuk memilih record mana yang ditampilkan dengan criteria tertentu.
Sintaks :
SELECT field1,field2,field3 FROM nama_tabel WHERE namafield =
kriteria;
WHERE .. LIKE
Sintaks :
8
| kd_dosen | nama_dosen | alamat |
+----------+-------------+--------------------------+
| DS04 | Syamsul B | Jl.Irian Barat No 67 |
| DS06 | Syamsudin N | Jl. Tridarma No 10 |
| DS10 | Sahala S | Jl. Sumarsono Kapt No 55 |
| DS11 | Susi S | Jl. Gaperta No 457 |
+----------+-------------+--------------------------+
4 rows in set (0.00 sec)
ORDER BY
Order by digunakan untuk mengurutkan hasil query berdasarkan field yang dipilih.
ASC = diurutkan mulai dari nilai paling kecil;
DESC = diurutkan mulai dari nilai tertinggi.
Jika DESC/ASC tidak disebutkan maka secara default system akan menggunakan ASC.
Query IN digunakan untuk memilih record yang memiliki nilai yang disebutkan dalam
criteria IN.
Contoh : Pilih mahasiswa yang memiliki nim 070201, 080201, 080202 dengan IN.
9
+--------+----------------+-------------+
| 070201 | Abdul G | 061-8445212 |
| 080201 | Abu Bakar | 061-8457881 |
| 080202 | Dessy N | 061-4511221 |
+--------+----------------+-------------+
3 rows in set (0.00 sec)
COUNT
Count digunakan untuk menghitung record, count juga dapat digabungkan dengan
seleksi criteria WHERE.
Sintaks :
SUM
Sum digunakan untuk menjumlahkan record-record yang dipilih, sum hanya dapat
dilakukan pada field yang bernilai angka.
Sintaks :
10
| total_sks |
+-----------+
| 16 |
+-----------+
1 row in set (0.08 sec)
AVG
Dalam SQL dikenal query bersarang, dimana query ada dalam query.
Contoh : Pilih mahasiswa yang memiliki jurusan J001 degan query bersarang.
JOIN
11
Join digunakan untuk menggabungkan dua atau lebih tabel, dengan syarat tabel yang
digabungkan memiliki setidaknya satu field yang sama.
INNER JOIN
Inner join digunakan untuk menggabungkan dua atau lebih tabel dimana field yang
dijadikan sebagai referensi join memiliki nilai yang sama pada tabel sebelah kiri dan pada
tabel sebelah kanan.
LEFT JOIN
12
Syntaks : SELECT tabel1.field,tabel2.field2 From Tabel1 LEFT JOIN Tabel2 on
tabel1.field=tabel2.field1
Left join digunakan untuk menggabungkan dua atau lebih tabel dimana field yang
digunakan sebagai referensi pada tabel sebelah kiri akan ditampilkan walaupun tidak
hadir pada tabel sebelah kanan.
Contoh : Tampilkan semua mahasiswa dengan kode krs. Pada kasus ini ada satu
mahasiswa yang tidak memiliki krs, maka kode krs pada mahasiswa ini akan dibuat
NULL.
RIGHT JOIN
Right join adalah kebalikan left join, dimana semua item pada tabel sebelah kanan akan
ditampilkan walaupun tidak memiliki nilai yang sama dengan referensi pada tabel
sebelah kiri.
Contoh : Tampilkan semua dosen yang menjadi dosen wali dan yang tidak berdasarkan
tabel krs.
13
+--------+---------+--------+-------------+
6 rows in set (0.00 sec)
Membuat View
View adalah tabel virtual yang dibuatkan sebagai solusi untuk menghindari pengulangan
query.
Contoh : Buatkan view yang menampung gabungan tabel mahasiswa dan jurusan.
14
mysql> select nim,nama,kdmk,asmk_semester as
mk_sem,sks,nilai_huruf from view_mhskrs where nim='080201';
+--------+-----------+--------+--------+-----+-------------+
| nim | nama | kdmk | mk_sem | sks | nilai_huruf |
+--------+-----------+--------+--------+-----+-------------+
| 080201 | Abu Bakar | KOMP00 | 1 | 2 | A |
| 080201 | Abu Bakar | KOMP02 | 1 | 2 | B+ |
| 080201 | Abu Bakar | KOMP03 | 1 | 2 | B+ |
| 080201 | Abu Bakar | KOMP04 | 1 | 1 | A |
| 080201 | Abu Bakar | KOMP05 | 1 | 1 | A |
| 080201 | Abu Bakar | KOMP10 | 3 | 2 | B |
| 080201 | Abu Bakar | KOMP11 | 3 | 2 | C |
| 080201 | Abu Bakar | KOMP12 | 3 | 2 | C+ |
+--------+-----------+--------+--------+-----+-------------+
8 rows in set (0.02 sec)
15
16