MODUL 1 SQL Single Table Query Untuk menampilkan data-data yang telah tersimpan dalam database diperlukan perintah SELECT, yang dapat dirumuskan sebagai berikut: SELECT [DISTINCT *] <select list> FROM <table list> [WHERE <row condition>] [GROUP BY <group list>] [HAVING <group condition>] [ORDER BY <sort list>] A. Menampilkan Data Perintah select yang paling sederhana terdiri dari 2 hal, yaitu NamaKolom yang akan ditampilkan dan NamaTabel data tersebut diperoleh. - Menampilkan seluruh data dari sebuah tabel SELECT * FROM NamaTabel Tampilkan seluruh data dari tabel Anggota SELECT * - Menampilkan data dari kolom-kolom tertentu dalam database SELECT NamaKolom1, NamaKolom2 FROM NamaTable Tampilkan seluruh nama anggota SELECT NAMA_ANGGOTA Tampilkan nama dan alamat anggota SELECT NAMA_ANGGOTA, ALAMAT - Menampilkan data dengan mengeliminasi data yang sama SELECT DISTINCT(NamaKolom) FROM NamaTabel - Ekspresi Aritmatik Liya Oke Page 1
Kita dapat menggunakan ekspresi aritmatik (+,-,*,/,%,dll) dalam perintah select, misal: SELECT denda, denda*3 FROM koleksi - Concatenation (menggabungkan karakter dalam tabel dengan karakter, karakter dalam tabel dengan karakter dalam tabel lainnya, karakter dengan karakter --> +) contoh : Buat email anggota, email merupakan gabungan dari ID_ANGGOTA ditambah dengan @plaza.co.id SELECT ID_ANGGOTA+'@plaza.co.id' - Date Function o Menampilkan tanggal sekarang. Tanggal yang didapat sesuai dengan tanggal yang tertera dalam sistem. SELECT GETDATE() o Menampilkan bagian dari tanggal DATEPART(), DAY(), MONTH(), YEAR() DATEPART() mempunyai 2 argumen, yaitu bagian tanggal yang akan diambil, dan tanggal(kolom bertipe date/tanggal sekarang) SELECT YEAR(GETDATE()) Tahun, MONTH(GETDATE()) Bulan, DAY(GETDATE()) Hari, DATEPART(yyyy, GETDATE()) Tahun_DP, DATEPART(mm, GETDATE()) Bulan_DP, DATEPART(dd, GETDATE()) Hari_DP, DATEPART(hh, GETDATE()) Jam, DATEPART(mi, GETDATE()) Menit, DATEPART(ss, GETDATE()) Detik - Character Manipulation Function (LEFT, RIGHT, SUBSTRING, LEN, REPLACE, dll) o LEFT(): mengambil beberapa karakter dimulai dari sebelah kiri string. Ada 2 argumen yaitu (1) string ekspresi, dan (2) panjang karakter yang diambil. o RIGHT(): mengambil beberapa karakter dimulai dari sebelah kanan string. Ada 2 argumen yaitu (1) string ekspresi, dan (2) panjang karakter yang diambil. o SUBSTRING(): mengambil beberapa karakter ditengah-tengah string. Ada 3 argumen yaitu (1) string ekspresi, (2) posisi awal (dimulai dari posisi ke-1), dan (3) panjang karakter yang diambil. Liya Oke Page 2
SELECT NAMA_ANGGOTA, LEFT(NAMA_ANGGOTA, 2), RIGHT(NAMA_ANGGOTA, 2), SUBSTRING(NAMA_ANGGOTA,2,3) B. Membatasi data Untuk membatasi data yang akan ditampilkan, maka diperlukan adanya pengkondisian. Dalam SQL, kondisi ini dituliskan menggunakan WHERE <kondisi> Kondisi terdiri dari 3 elemen: 1. nama kolom 2. operator pembanding Operator Keterangan = Sama dengan > Lebih besar dari >= Lebih besar sama dengan < Kurang dari <= Kurang dari sama dengan <> atau!= Tidak sama dengan BETWEEN AND Diantara dua nilai IN (set) Cocok dengan salah satu diantara daftar nilai LIKE Cocok dengan pola karakter IS NULL Sama dengan NULL Tabel 1. Tabel Operator Pembanding 3. nilai yang digunakan sebagai pembanding (nama kolom, konstanta, sekumpulan nilai) Bagaimana jika kondisi yang diharapkan lebih dari 1 kondisi, misal... Untuk menggabungkan kondisi-kondisi tersebut diperlukan adanya operator logika yang nantinya akan menghasilkan nilai TRUE atau FALSE. AND TRUE FALSE NULL TRUE TRUE FALSE NULL FALSE FALSE FALSE FALSE NULL NULL FALSE NULL Tabel 2. Tabel Kebenaran AND OR TRUE FALSE NULL TRUE TRUE TRUE TRUE FALSE TRUE FALSE NULL NULL TRUE NULL NULL Tabel 3. Tabel Kebenaran OR Liya Oke Page 3
C. Mengurutkan data Untuk mengurutkan data yang akan ditampilkan, ORDER BY NamaKolom ASC DESC SELECT * ORDER BY NAMA_ANGGOTA D. Mengelompokkan data Pengelompokan data ditandai dengan adanya group function. Adapun yang tergolong group function antara lain: Function Keterangan AVG menghitung rata-rata nilai COUNT menghitung jumlah data MAX mencari nilai teringgi MIN mencari nilai terendah SUM menghitung jumlah nilai data STDDEV mencari nilai standar deviasi VARIANCE mencari nilai variansi Tabel 4. Group Function Pemakaian group function dalam query adalah sebagai berikut: SELECT kolom1, group function(kolom2) FROM NamaTabel GROUP BY kolom1 Tampilkan jumlah transaksi peminjaman dari tiap anggota. SELECT ID_ANGGOTA, COUNT(ID_ANGGOTA) FROM PEMINJAMAN GROUP BY ID_ANGGOTA E. Membatasi hasil group function Liya Oke Page 4
Untuk membatasi hasil dari group function kita dapat menggunakan kondisi, tetapi untuk group function kondisi tersebut diletakkan pada query HAVING. Tampilkan jumlah transaksi peminjaman dari tiap anggota. Tampilkan hanya yang mempunyai jumlah peminjaman diatas 10 kali peminjaman. SELECT ID_ANGGOTA, COUNT(ID_ANGGOTA) FROM PEMINJAMAN GROUP BY ID_ANGGOTA HAVING COUNT(ID_ANGGOTA)>10 Referensi: 1. Modul SQL Server by Tegar Heru Susilo. Let s Join Us,, STIKOM Surabaya FB: facebook.com/groups/sqlcommunity/ Liya Oke Page 5