Anda di halaman 1dari 9

Structured Query Language

-SQL-
2
Objectives
Memanipulasi data table
Fungsi Order by
Fungsi Group by
Fungsi Having
Fungsi Join

1
Fungsi Order by
•Dipergunakan untuk menampilkan data yang terurut atau mengurutkan data.
•Ada dua macam pengurutan :
–Secara Ascending (Asc)
•Pengurutan nilai kolom secara menaik atau membesar.
–Secara Descending (Desc)
•Pengurutan nilai kolom secara menurun atau mengecil.

•Syntax :
SELECT [DISTINCT] {* | columns_alias}
FROM table_name
ORDER BY expression [ASC | DESC]
•Contoh : menampilkan semua data pada tabel mahasiswa diurutkan secara menaik
(ascending)

SELECT * FROM Mahasiswa


ORDER BY Nama_mahasiswa
•Sebagai contoh ditampilkan seluruh data pada tabel karyawan, dimana data yang ditampilkan
tidak berurutan (hanya diurutkan berdasarkan record)

•Untuk menampilkan data karyawan yang diurutkan berdasarkan nama_karyawan maka


dipergunakan fungsi Order by.
•Secara defaultORDER BY akan mengurutkan secara Ascending

2
•Contoh lain mengurutkan data karyawan secara menurun (descending)

•Contoh mengurutkan data berdasarkan beberapa field (kolom).


•Mengurutkan data karyawan secara ASCENDING berdasarkan kode_divisi dan
nama_karyawan

3
Mengurutkan data secara posisional
Mengurutkan data secara posisional dilakukan dengan cara mengurutkan data berdasarkan
posisi kolom.

•Contoh : mengurutkan data pada tabel karyawan secara Ascending bedasarkan kolom ke 1.

SELECT * FROM KARYAWAN


ORDER BY 1 ASC
•Coba perhatikan kolom ke berapa nama_karyawan berada ?
1/31/20096

•Akan ditampilkan data kode_divisi, nama_karyawan, kode_karyawan dan gaji selama


setahun.
•Kemudian data diurutkan secara menurun (Descending) berdasarkan nama_karyawan, tetapi
menggunakan nomor kolom dari nama_karyawan

4
Fungsi Group BY
•Fungsi GROUP BY dipergunakan untuk mengelompokkan record-record pada tabel.
•Fungsi GROUP by dipergunakan mengikuti operasi agregat pada suatu perintah.
Contoh
•Dalam tabel karyawan terdapat kolom gaji

•Apabila ingin mendapatkan rata-rata gaji dari karyawan, maka tinggal dipergunakan operasi
rerata (AVG)

•Bagaimana bila ingin ditampilkan nilai rata-rata gaji untuk setiap departemen ?
•Solusinya bisa menggunakan fungsi Group By.
•Penghitungan rata-rata gaji akan dikelompokkan berdasarkan kode departemen.

•Ditampilkan kode_divisidan rerata gaji sebagai rerata_gaji_karyawan_per_divisidari tabel


karyawan yang dikelompokkan berdasarkan kode_divisi

5
Fungsi Having
Fungsi HAVING memiliki kesamaan fungsi seperti WHERE.
•Tetapi fungsi HAVING dipergunakan bila ada pemanggilan operasi GROUP dalam query dan
operand-nya melibatkan pemanggilan operasi agregat.
•Jadi fungsi HAVING dipergunakan mengikuti Fungsi GROUP BY, untuk memberikan suatu
kondisi.

•Syntax :

SELECT colulmn_expression
FROM table_name
GROUP BY grouping_expression
HAVING group_condition

Contoh yang salah

•Ingin ditampilkan data rata-rata gaji per divisi yang memiliki nilai rata-rata diatas 2.000.000
•Dipergunakan query :

SELECT kode_divisi, avg(gaji) AS rerata_gaji_karyawan_per_Divisi


FROM karyawan
GROUP BY kode_divisi
WHERE avg(gaji) > 2000000
•Setelah query tersebut dijalankan akan muncul pesan kesalahan :

•Hal ini terjadi karena dalam fungsi GROUP BY, pemberian kondisi tidak menggunakan
WHERE melainkan HAVING.

6
Contoh yang benar
•Setelah WHERE diganti dengan HAVING, maka barulah query menjadi benar.

7
Fungsi JOIN
•Fungsi JOIN dipergunakan untuk menampilkan data yang berasal lebih dari satu tabel.
•Ada beberapa macam JOIN dalam SQL :
–Inner Joins
–Outer Joins
–Cross Joins
Inner Joins

Merupakan join yang memakai operasi perbandingan ( = atau <> ) untuk membandingkan nilai
link columns.
•Inner joins menggunakan operator pembanding untuk mencocokkan baris (rows) dari dua
tabel berdasarkan pada nilai yang ada di kolom yang dipergunakan sebagai pembanding atau
penghubung dari masing-masing tabel.

•Contoh, menampilkan semua data yang memiliki nilai kode_divisi yang sama dari tabel
Karyawan dan tabel Divisi.
•Coba diperhatikan, yang ditampilkan adalah semua data dari kedua tabel.

•Cara penulisan yang lebih ringkas

8
•Cara penulisan berbeda untuk kasus yang sama

•Contoh lain, menampilkan nama karyawan dan nama divisi untuk masing-masing karyawan
dari tabel Karyawan dan tabel Divisi menggunakan pembanding/penghubung kode_divisi