SQL Fungsi
A. Penjelasan
a. SQL Fungsi Agregasi
SQL Fungsi Agregasi adalah untuk mengembalikan satu nilai, dihitung dari nilai dalam kolom.
| Fungsi | Kegunaan | Contoh |
|---|---|---|
| AVG() | untuk mencari rata-rata nilai | SELECT AVG(harga) AS Harga_rata2 FROM order |
| COUNT() | untuk menghitung jumlah record (baris) | SELECT COUNT(id) AS Jumlah_tamu FROM bukutamu |
| MAX() | untuk mencari nilai terakhir | SELECT MAX(harga) AS Harga_termahal FROM order |
| MIN() | untuk mencari nilai terkecil | SELECT MIN(harga) AS Harga_termurah FROM order |
| ROUND() | untuk membulatkan angka ke jumlah digit yang ditentukan | SELECT no_mhs,ROUND(nilai,0)as nilai bulat FROM nilai |
| SUM() | untuk menghitung penjumlahan data | SELECT SUM(harga) AS Harga_total FROM order |
b. SQL Fungsi String
| Fungsi | Kegunaan | COntoh |
|---|---|---|
| CONCAT() | untuk menghitung jumlah record (baris) | SELECT CONCAT('Dan', 'Morgan') FROM dual |
| LEFT() | untuk mengambil nilai dari suatu string dari posisi kiri | SELECT Nm_brg, Left(Nm_brg,2) |
| LEN() / LENGTH() | untuk menghitung panjang string | SELECT LEN(nama) as panjang_nama FROM bukutamu |
| LOWER() / LCASE() | untuk merubah string menjadi huruf kecil seluruhnya | SELECT LCASE(nama) as Nama FROM bukutamu |
| LTRIM() | untuk memotong suatu karakter pada sebelah kiri | SELECT LTRIM(' Dan Morgan ') FROM dual |
| SUBSTRING() / MID() | untuk mengambil nilai suatu string dari arah kiri | SELECT MID (kota,1,4) as singkatan_kota FROM |
| REPLACE() | untuk mengganti karakter / memotong string | SELECT REPLACE(‘www.google.com’, ‘w’, ‘WW’) |
| RIGHT() | untuk mengambil nilai dari suatu string dari posisi kanan | SELECT Nm_brg, Right(Nm_brg,2) |
| RTRIM() | untuk memotong suatu karakter pada sebelah kanan | SELECT RTRIM(' Dan Morgan ') FROM dual |
| UPPER() / UCASE() | untuk merubah string menjadi huruf kapital seluruhnya | SELECT UCASE(nama) as Nama FROM bukutamu |
B. Implementasi
Contoh Case
-
Desaigner Database :
Database = db_magang_2
-
Soal dan Penyelesaian :
Source Code (Contoh Soal)
SELECT siswa.id, siswa.nama, LEFT(siswa.nama, 3) , RIGHT(siswa.nama, 3) ,
SUBSTRING(siswa.nama, 2, 2) ,LENGTH (siswa.nama) , LPAD(siswa.nama, 10, 'x') ,
LPAD(siswa.id, 10, '0') , lcase(siswa.nama) , ucase(siswa.nama),
CONCAT('Nama Saya ', siswa.nama , ', saya lahir di ', tempat_lahir) ,
DATEDIFF('2014-11-30','2014-11-29')
FROM siswa
- Output
Soal : Outputnya dalam 1 kolom yang bernama Keterangan
nama kolom as Keterangan
"Nama saya YONDI , id saya 17000001, Saya lahir di Nganjuk ,
saya lahir pada 26 October 1995 dan
sekarang umur saya 29 Tahun dan alamat saya JL. Diponegoro no 26
kecamatan Wilangan kabupaten Nganjuk Jawa Timur "
-
Jawaban Source Code 1 (Menampilkan seluruh data)
SELECT CONCAT('Nama Saya ', UCASE(siswa.nama), ', id saya ', SUBSTRING(NOW(), 3, 2), LPAD(siswa.id, 6, '0'), ', Saya lahir di ', UCASE(SUBSTRING(siswa.tempat_lahir, 1,1)), LCASE(SUBSTRING(siswa.tempat_lahir, 2)), ', saya lahir pada ', DATE_FORMAT(siswa.tanggal_lahir, '%d %M %Y'), ' dan sekarang umur saya ', (YEAR(NOW()) - YEAR(tanggal_lahir)) , ' Tahun dan alamat saya ' ,UCASE(SUBSTRING(siswa.alamat, 1,4)),LCASE(SUBSTRING(siswa.alamat, 5)) , ' kecamatan ', UCASE(SUBSTRING(kecamatan.nama, 1,1)), LCASE(SUBSTRING(kecamatan.nama, 2)) , ' kabupaten ', UCASE(SUBSTRING(kabupaten.nama, 1,1)), LCASE(SUBSTRING(kabupaten.nama, 2)), ' ', UCASE(SUBSTRING(provinsi.nama, 1,1)), LCASE(SUBSTRING(provinsi.nama, 2)) ) AS Keterangan FROM siswa, kecamatan, kabupaten, provinsi WHERE siswa.id_kecamatan = kecamatan.id AND kecamatan.id_kabupaten = kabupaten.id AND kabupaten.id_provinsi = provinsi.id- Output :

- Output :
-
Jawaban Source Code 2 (Hanya menampilkan data Yondi sesuai Tugas)
SELECT CONCAT('Nama Saya ', UCASE(siswa.nama), ', id saya ', SUBSTRING(NOW(), 3, 2), LPAD(siswa.id, 6, '0'), ', Saya lahir di ', UCASE(SUBSTRING(siswa.tempat_lahir, 1,1)), LCASE(SUBSTRING(siswa.tempat_lahir, 2)), ', saya lahir pada ', DATE_FORMAT(siswa.tanggal_lahir, '%d %M %Y'), ' dan sekarang umur saya ', (YEAR(NOW()) - YEAR(tanggal_lahir)) , ' Tahun dan alamat saya ' ,UCASE(SUBSTRING(siswa.alamat, 1,4)), LCASE(SUBSTRING(siswa.alamat, 5)) , ' kecamatan ', UCASE(SUBSTRING(kecamatan.nama, 1,1)), LCASE(SUBSTRING(kecamatan.nama, 2)) , ' kabupaten ', UCASE(SUBSTRING(kabupaten.nama, 1,1)), LCASE(SUBSTRING(kabupaten.nama, 2)), ' ', UCASE(SUBSTRING(provinsi.nama, 1,1)), LCASE(SUBSTRING(provinsi.nama, 2)) ) AS Keterangan FROM siswa, kecamatan, kabupaten, provinsi WHERE siswa.id_kecamatan = kecamatan.id AND kecamatan.id_kabupaten = kabupaten.id AND kabupaten.id_provinsi = provinsi.id AND siswa.nama = 'YONDI'- Output :

- Output :