MENGGUNAKAN EKSPRESI PADA QUERY Sistem Basis Data – Bab 9 MENGGUNAKAN EKSPRESI PADA QUERY
1. Pendahuluan Bab ini membahas pemakaian ekspresi dalam SELECT, yg memungkinkan bisa mengubah judul kolom keluaran, melakukan perhitungan pada kolom keluaran dan mengubah tipe data keluaran.
2. Pemakaian Ekspresi pada Kolom Keluaran Sejauh ini nilai yg ditampilkan pada SELECT selalu berupa nama kolom. Misalnya pernyataan SQL: SELECT nama_peg, gaji FROM pegawai; yang akan menampilkan isi kolom nama dan gaji yg terdapat pada tabel pegawai.
Gambar 1. Isi tabel pegawai nama_peg gaji Fuad Mawardi 3000000 John Simatupang 3600000 Freska Iskandar 1500000 Kadarisman 960000 Kresnawan 1200000 Rianto 750000 Fahmi Ida Ayu Dian Arum 800000 Kartono 700000 Gambar 1. Isi tabel pegawai
Sekarang, bagaimana ingin melihat komposisi gaji sekiranya gaji dinaikkan sebesar 1.2? Pada keadaan seperti ini bisa menggunakan ekspresi pada kolom-kolom terpilih pada SELECT. Dalam hal ini, pernyataan SQL yg perlu ditulis berupa: SELECT nama_peg, 1.2*gaji FROM pegawai; Pada contoh pernyataan SQL ini, 1.2*gaji merupakan ekspresi untuk melakukan perkalian 1.2 dengan isi kolom gaji. Hasilnya dapat dilihat pada Gambar 2.
Gambar 2. Menampilkan gaji melalui perhitungan nama_peg gaji Fuad Mawardi 3600000 John Simatupang 4320000 Freska Iskandar 1800000 Kadarisman 1152000 Kresnawan 1440000 Rianto 900000 Fahmi Ida Ayu Dian Arum 960000 Kartono 840000 Gambar 2. Menampilkan gaji melalui perhitungan
3. Memberi Nama Lain terhadap Kolom Keluaran Klausa AS mulai diperkenalkan pada SQL92. Kegunaan klausa AS adalah untuk memberi nama lain terhadap suatu keluaran. Sebagai contoh pernyataan SQL, Anda bisa memberi nama kolom keluaran 1.2*gaji dengan nama gajibaru. SELECT nama_peg, 1.2*gaji AS gajibaru FROM pegawai; Hasilnya dapat dilihat pada Gambar 3.
Gambar 3. Kolom gaji diberi judul gajibaru nama_peg gajibaru Fuad Mawardi 3600000 John Simatupang 4320000 Freska Iskandar 1800000 Kadarisman 1152000 Kresnawan 1440000 Rianto 900000 Fahmi Ida Ayu Dian Arum 960000 Kartono 840000 Gambar 3. Kolom gaji diberi judul gajibaru
4. Menambahkan Teks dalam Baris Keluaran Pernyataan SELECT memungkinkan pemakai menambahkan suatu teks pada baris-baris keluaran. Contoh pernyataan SQL : SELECT ‘gaji ‘, nama_peg, ‘sebesar ‘, gaji, ‘rupiah’ FROM pegawai; Hasilnya dapat dilihat pada Gambar 4.
Gambar 4. Hasil dilengkapi dengan kolom teks yg bersifat konstan ?column? nama_peg Gaji Fuad Mawardi sebesar 3000000 rupiah John Simatupang 3600000 Rupiah Freska Iskandar 1500000 Kadarisman 960000 Kresnawan 1200000 Rianto 750000 Fahmi Ida Ayu Dian Arum 800000 Kartono 700000 Gambar 4. Hasil dilengkapi dengan kolom teks yg bersifat konstan
5. Pemakaian SELECT tanpa klausa FROM Sejauh ini Anda mempraktekkan SELECT untuk mengakses tabel. Namun, sesungguhnya bisa juga Anda menggunakan SELECT tanpa klausa FROM. Manfaatnya bisa menggunakannya untuk mengevaluasi ekspresi tertentu yg tdk ada kaitan dengan tabel. Sebagai contoh, Anda bisa mengetahui hasil dari ekspresi 1+1 dengan menuliskan pernyataan SQL seperti berikut: SELECT 1+1; Hasilnya dapat dilihat pada Gambar 5.
Gambar 5. Contoh hasil ekspresi 1+1 2 Gambar 5. Contoh hasil ekspresi
6. Pengkonversian Tipe Data Kadangkala diperlukan untuk melakukan konversi data dari suatu tipe data ke tipe data yg lain. Alasannya bisa disebabkan: Jika tdk dikonversi, operasi pembandingan tertentu tdk dapat dilakukan. Supaya data bisa ditangani oleh bahasa lain, misalnya diakses oleh program C. Bentuk pengkonversian data berupa: CAST (nilai AS tipe_data) Untuk melihat contoh pemakaian CAST, buatlah tabel bernama ujian, melalui pernyataan SQL berikut: CREATE TABLE ujian ( nama CHAR(10), nilai FLOAT); Selanjutnya isikan data sehingga kalau ditampilkan dapat dilihat pada Gambar 6. (SELECT nama, nilai FROM ujian)
nama nilai Edi 70.5 Dian 60.8 Fahmi 89.2 Johan 51 Simon 20 Budi 65 Gambar 6. Isi tabel ujian
Gambar 7. Hasil setelah nilai dikonversi ke INTEGER Adapun contoh berikut memperlihatkan pengkonversian tipe data FLOAT ke INTEGER: Hasil pernyataan SQL dapat dilihat pada Gambar 7. nama nilai Edi 71 Dian 61 Fahmi 89 Johan 51 Simon 20 Budi 65 Gambar 7. Hasil setelah nilai dikonversi ke INTEGER
7. Ekspresi Berkondisi Bentuk sederhana dari ekspresi berkondisi adalah sebagai berikut: CASE nilai_ekspresi WHEN nilai_ekspresi THEN nilai_ekspresi [ELSE nilai_ekspresi] END Contoh pernyataan SQL : SELECT nama, nilai CASE WHEN nilai >= 80 THEN ‘A’ WHEN nilai >= 70 THEN ‘B’ WHEN nilai >= 60 THEN ‘C’ WHEN nilai >= 50 THEN ‘D’ ELSE ‘E’ END AS skor FROM ujian Pernyataan di atas digunakan untuk menentukan skor A, B, C, D atau berdasarkan kriteria yg disebutkan dalam WHEN. Hasil query pernyataan di atas dapat dilihat pada Gambar 8.
Gambar 8. Hasil penentuan nilai A, B, C, D dan E via CASE nama skor Edi B Dian C Fahmi A Johan D Simon E Budi Gambar 8. Hasil penentuan nilai A, B, C, D dan E via CASE
8. Ekspresi Tentang Waktu SQL menyediakan ekspresi DATE, TIME dan TIMESTAMP: DATE menyatakan tanggal, contohnya 9/1/64 (dengan susunan tanggal berupa bulan, tanggal dan tahun). TIME menyatakan waktu, misalnya 5:32:24. TIMESTAMP menyatakan sebuah tanggal dan waktu, misalnya 9/1/64 5:32:24 Ketiga ekspresi tersebut berkaitan dengan tipe data dengan nama yang sama.
Bila sistem Anda mendukung ekspresi-ekspresi di atas, Anda bisa mencoba pernyataan SQL berikut: SELECT nama, tgl_lahir FROM infoprib WHERE tgl_lahir > DATE ‘1/9/1964’; Pernyataan di atas akan menampilkan daftar bintang film pada tabel infoprib sesudah tanggal 1 September 1964. Pernyataan SQL ini identik dengan WHERE tgl_lahir > ‘1964-09-01’; Hasil query pernyataan di atas dapat dilihat pada Gambar 9.
nama tgl_lahir Drew Barrymore 1975-02-22 Julia Roberts 1967-10-28 Cindy Crawford 1966-02-20 Cameron Diaz 1972-08-30 Keanu Reeves 1964-09-02 Angelina Jolie 1975-06-04 Gambar 9. Daftar bintang film pada tabel infoprib yg lahir setelah 1 September 1964