MOdul 5 SQL 2
MOdul 5 SQL 2
1.1 Tujuan
a. Siswa dapat mengenal Sintak SQL Lanjut
b. Siswa dapat mengoperasikan Sintak SQL Lanjut
1.2 Materi
a. SQL
b. Tabel
1.5 Teori
Fungsi Agregrasi
Fungsi agregasi digunakan untuk menampilkan kebutuhan perolehan data seperti menampilkan
banyaknya record, total nilai suatu atribut, rata-rata nilai atribut, nilai atribut terbesar atau terkecil ,
dan lain sebagainya. Macam-macam fungsi agregasi dalam SQL adalah sebagai berikut :
Count ; fungsi ini digunakan untuk mendapatkan nilai banyaknya record dari query.
Sum ; fungsi ini digunakan untuk mendapatkan nilai total suatu atribut bertipekan numeric dari
query.
Avg ; fungsi ini digunakan untuk mendapatkan nilai rata-rata suatu atribut bertipe numeric hasil
query.
Max ; fungsi ini digunakan untuk mendapatkan nilai terbesar dari suatu atribut hasil query
Min ; fungsi ini digunakan untuk mendapatkan nilai terkecil dari suatu atribut hasil query.
Berikut ini akan diberikan contoh-contoh penggunaan fungsi agregasi dalam klausa SQL:
Contoh 1
Menampilkan banyaknya record dosen
select count (*)
from DOSEN
Contoh 2
Menampilkan banyaknya mata kuliah pada semester enam
select count (* )
from KULIAH
where SEMESTER = 6
Contoh 3
Menampilkan total sks disemester enam
select sum ( SKS )
from KULIAH
where SEMESTER = 6
Contoh 4
Menampilkan rata-rata sks untuk tiap-tiap semester
select avg ( SKS ) from KULIAH
1
Contoh 5
Menampilkan mahasiswa dengan usia termuda
select max ( TGL_LHR ) from MAHASISWA
Contoh 6
Menampilkan mahasiswa dengan usia tertua
select min ( TGL_LHR ) from MAHASISWA
Contoh 1
update MAHASISWA set ASAL =
KENDARI
where NIM = 9961003 Tampilannya
:
1.1.1.1.1.1 TABEL 10 : MAHASISWA
NIM NAMA SEX ASAL TGL.LHR FAK PRODI
9961001 BUDI L KUDUS 02/02/80 MIPA BIOLOGI
9961002 NINA P BLORA 03/11/79 SASTRA INDONESIA
9961003 ABI L KENDARI 30/10/78 TI TI
9961004 DONI L BANTUL 23/07/81 MIPA ILKOM
9961005 ANI P PATI 07/06/78 MIPA ILKOM
Contoh 2
update MAHASISWA
set FAK = TI, PRODI = T_KIMIA where NIM =
9961002
Tampilannya :
1.1.1.1.1.2 TABEL 11 : MAHASISWA
NIM NAMA SEX ASAL TGL.LHR FAK PRODI
9961001 BUDI L KUDUS 02/02/80 MIPA BIOLOGI
9961002 NINA P BLORA 03/11/79 SASTRA INDONESIA
9961003 ABI L KENDARI 30/10/78 TI TI
9961004 DONI L BANTUL 23/07/81 MIPA ILKOM
9961005 ANI P PATI 07/06/78 MIPA ILKOM
2
set NAMA_DOSEN = NAMA_DOSEN + , Ssi where
STATUS = TETAP
Tampilannya :
1.1.1.1.1.3 TABEL 12 : DOSEN
KODE_DOSEN NAMA_DOSEN STATUS ASAL
L022 ISMAYA, Ssi TETAP MEDAN
L023 GUNAWAN, Ssi TETAP LAMPUNG
L024 BUDIHARJO KONTRAK SRAGEN
L025 WARDATI, Ssi TETAP SEMARANG
L026 HARTATI KONTRAK JAKARTA
L027 FARIDA KONTRAK KALIMANTAN
Perintah Join
Perintah-perintah yang berkaitan dengan pendefinisian obyek-obyek basis data dan pembuatan tabel
baru merupakan perintah-perintah yang tergolong dalam DDL ( data definition language ). Sebelum
memulai membuat suatu tabel baru perlu diketahui tentang tipe data standart SQL yang berlaku. Bab
yang terdahulu telah dibahas mengenai tipe-tipe data yang berlaku pada SQL. Pada dasarnya terdapat
banyak sekali tipe data yang berlaku pada SQL namun hanya beberapa saja diantaranya yang diakui
sebagai tipe data standart, dan diizinkan untuk digunakan pada periode standarisasi. Berikut ini adalah
tipe-tipe data standart yang berlaku dalam SQL-92 :
Char (n) : untuk atribut bernilai string dengan panjang tetap
Varchar (n) : untuk atribut bernilai string dengan penjang fleksibel
Int atau integer : untuk atribut berniali integer 2 byte
Smallint : untuk stribut berniali integer 1 byte
Numeric (p,d) : untuk atribut berniali pecahan fixed point
Real, double, precision : untuk atribut bernilai pecahan floating point
Float (n) : untuk atribut bernilai pecahan floating point dengan presisi n
digit
Date : untuk atribut bernilai penanggalan
Time : untuk atribut bernilai waktu
3
MySQL supports the following JOIN syntaxes for the
table_references part of SELECT statements and multiple-table
DELETE and UPDATE statements:
table_reference, table_reference
table_reference [INNER | CROSS] JOIN table_reference [join_condition]
table_reference STRAIGHT_JOIN table_reference table_reference
LEFT [OUTER] JOIN table_reference [join_condition] table_reference
NATURAL [LEFT [OUTER]] JOIN table_reference
{ OJ table_reference LEFT OUTER JOIN table_reference
ON conditional_expr } table_reference RIGHT [OUTER] JOIN
table_reference [join_condition] table_reference NATURAL [RIGHT
[OUTER]] JOIN table_reference
4
Tabel pelanggan (hanya ditampilkan field id_pelanggan, nm_pelanggan dan email)
5
FROM tabel1 INNER JOIN tabel2
ON tabel1.PK=tabel2.FK;
Dan berikut ini perintah SQL penggabungan tabel pelanggan dan pesan.
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan,
pesan.tgl_pesan
FROM pelanggan INNER JOIN pesan
ON pelanggan.id_pelanggan=pesan.id_pelanggan; Hasilnya
akan sama dengan gambar di atas (cara #1).
LEFT JOIN.
Bentuk umum:
SELECT tabel1.*, tabel2.* FROM
tabel1 LEFT JOIN tabel2
ON tabel1.PK=tabel2.FK; Contoh
perintah SQL:
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan,
pesan.tgl_pesan
FROM pelanggan LEFT JOIN pesan
ON pelanggan.id_pelanggan=pesan.id_pelanggan; Hasilnya:
RIGHT JOIN
Bentuk umum:
SELECT tabel1.*, tabel2.*
FROM tabel1 RIGHT JOIN tabel2
6
ON tabel1.PK=tabel2.FK; Contoh
perintah SQL:
SELECT pelanggan.id_pelanggan, pelanggan.nm_pelanggan, pesan.id_pesan,
pesan.tgl_pesan
FROM pelanggan RIGHT JOIN pesan
ON pelanggan.id_pelanggan=pesan.id_pelanggan; Hasilnya:
1.6 Latihan
1. Coba dulu semua contoh dalam modul 5
2. Merujuk pada kasus struktur tabel pada modul 1, maka kerjakan query berikut ini (gunakan
perintah join baik left join dan inner join):
a. Menampilkan posisi buku yang terpinjam
b. Menampilkan rekapitulasi buku, lengkap dengan author.
c. Menampilkan rekapitulasi posisi buku yang ada lengkap dengan jumlah eksemplar
berikut lokasi penempatan buku.