1. Fungsi-Fungsi dalam SQL Server
1.1 Pendahuluan
Suatudatabase adalahsebuahstrukturyang umumnyadikategorikandalam2hal yaitusebuahdatabase flatdan sebuah
database relasional.Database relasional lebihdisukaikarenalebihmasukakal dibandingkandatabase flat. MySQL
adalah sebuah database relasional.
Pada database yangmemilikistrukturrelasional, ada tabel-tabel yang menyimpan data. Setiap tabel terdiri dari kolom
dan baris.Sebuahkolommendefinisikanjenisinformasi apayangakan disimpan. Kita memerlukan kolom khusus
untuksetiapjenisinformasi yanginginkitasimpan.Barisadalahdataaktual yang disimpan.Setiap baris dari tabel
adalah masukan dari tabel tersebut dan berisi nilai-nilai untuk setiap kolom tabel tersebut.
My SQL merupakan database yang mendukung RDBMS (Relational Database Management System). Sebagai database
yang mendukung RDBMS, database ini terbukti telah banyak digunakan dalam berbagai kebutuhan
pendokumentasian data. MySQL merupakan database server yang juga dapat berjalan sebagai Client. Dengan
kemampuan tersebut, database ini mampu berjalan padasistem jaringan, baik lokal mauopun WAN (internet).
Saat ini database MySQL banyak digunakan untuk membuat aplikasi-aplikasi berbasis online seperti web.
1.2 Fungsi Sistem
Kelompokfungsisistemadalahkelompokfungsi yang memberikan informasi tentang pemakaian server database oleh
pemakai. Kelompok fungsi ini terdiri atas :
CURRENT_USER ( )
menghasilkankombinasi namauserdan nama host pada sesi saat ini yang terautentifikasi. Hasil output dapat berbeda
dari nilai USER ().
DATABASE ( )
menampilkan nama database yang sedang digunakan.
VERSION ( )
menampilkan versi MySQL yang sedang aktif.
LAST_INSERT_ID( )
digunakan untuk menampilkan informasi data yang telah dihasilkan (di-generate) oleh MySQL pada kolom yang
menggunakan tipe data AUTOINCREMENT.
SESSION_USER( )
digunakanuntukmenampilkaninformasipemakain yangsedangmelakukanakseske dalamserverMySQLsaat ini.Fungsi
ini kadang digunakan oleh seorang pemakai., untuk mengetahui siapa saja yang sedang login ke dalam MySQL
pada suatu terminal yang sedang ditinggalkan oleh pemakai lain, atau kadang juga kita ingin tahu kita sedang
mengaksesMySQLdengannamapemakai yangmana,akrena kitamemiliki banyak nama pemakai yang berbeda-
beda privilegenya demi keamanan
SYSTEM USER( )
fungsi ini sama dengan fungsi SESSION_USER( ).
USER( )
fungsi ini sama dengan fungsi SYSTEM_USER( ) dan SESSION_USER( ).
BENCHMARK(count, ekspresi)
mengerjakanperintahpadaekspresi sejumlah countkali.Nilai yangdihasilkanselalu0.Hal pentingdari fungsi ini adalah
nilai waktuyangdigunakan(elapsed time) yangdiberikan pada bagian akhir, memungkinkan kita menilai berpaa
cepatservermengevaluasi query.Berikutini contohtampilanfungsi benchmark untuk mengetahui kecepatan 10
kali perintah select * from pinjaman.
LOAD_FILE(namafile)
digunakan untukmembukafiledanmemberikanisinyasebagai string.Fileharusadadi dalam server,danpemakai untuk
menggunakan fungsi ini harus memiliki privilege FILE
1.2 Fungsi Agregat
Fungsi ini ini sekilassepertifungsi numerik, tetapi sebenarnya secara mendasar fungsi ini berbeda dari fungsi
aritmetika. Fungsi agregat adalah fungsi standar di dalam SQL, suatu fungsi yang digunakan untuk melakukan
summary, merupakan fungsi statistik standar yang dikenakan pada suatu tabel atau query. Fungsi ari tmetika
berhubungan langsung dengan manipulasi aritmetika.
AVG [statement / field]
untuk menghitung nilai rata-rata. Menghasilkan nilai NULL jika tidak ada row yang sesuai
Sintak :
2. SELECT AVG(nama_kolom) FROM nama_tabel
[WHERE]
Contoh :
SELECT AVG (SKS) FROMMata_Kuliah
COUNT [statement / field]
untuk menghitung jumlah baris. Menghasilkan nilai NULL jika tidak ada row yang sesuai
Sintak :
SELECT COUNT nama_kolom FROM nama_tabel
[WHERE]
Contoh :
SELECT COUNT (*) FROM mahasiswa
SELECT COUNT (SKS) FROM Mata_Kuliah
SUM [statement / field]
untuk menghitung jumlah nilai untuk data type numerik. Menghasilkan nilai NULL jika tidak ada row yang sesuai
SELECT SUM (nama_kolom) FROM nama_tabel
[WHERE = Kondisi]
Contoh :
SELECT SUM (SKS) FROMMata_Kuliah
MIN [statement / field]
untuk menghitung nilai minimum untuk data type numerik. Menghasilkan nilai NULL jika tidak ada row yang sesuai
Sintak :
SELECT MIN nama_kolom FROM nama_tabel
[WHERE]
Contoh :
SELECT MIN (SKS) FROM Mata_Kuliah
MAX [statement / field]
untuk menghitung nilai maksimum untuk data type numerik. Menghasilkan nilai NULL jika tidak ada row yang sesuai
Sintak :
SELECT MAX nama_kolom FROM nama_tabel
[WHERE]
Contoh :
SELECT MAX (SKS) FROM Mata_Kuliah
STD [statement / field] dan STDDEV [satement / field]
digunakan untuk mendapatkan standar deviasi dari data suatu kolom dalam tabel. Ekspresi umumnya menyatakan
kolom suatu tabel dengan tiep datanya numerik. ]
1.3 Fungsi Numerik
MySQL memiliki fasilitas dasar untuk melakukan manipulasi data numerik,seperti penjumlahan,pengurangan,perkalian,dan
pembagian, yang disertakan dalam suatu perintah select. Fasilitas tersebut dikenal dengan operator aritmetika. Fungsi
numerik terdiri dari operator aritmatika dan fungsi matematis.Operator aritmatik terdiri dari : + (penambahan), - (pengurangan),
* (perkalian), / (pembagian) dan div (sisa pembagian). Sedangkan fungsi matematis terdiri dari SQRT, CEILING, FLOOR, dll.
1.3.1 Fungsi Aritmetika
Penjumlahan (+)
digunakan untuk menjumlahkan dua buah data numerik, hasil dari operasi ini adalah data numerik juga.
Pengurangan (-)
digunakan untuk melakukan operasi pengurangan dua buah data numerik, bilangan yang di sebelah kiri dikurangi dengan bilangan
yang di sebelah kanan, bil1 – bil2. Hasil dari opeasi ini adalah data numerik.
3. Perkalian (*)
digunakan untuk melakukan operasi pembagian dua data numerik.Bilangan di sebelah kiri dikali dengan bilangan yang ada di seb elah
kanan operator, hasil dari operasi ini adalah data numerik.
Pembagian (/)
Digunakan untuk melakukan operasi pembagian dua data numerik. Bilangan di sebelah kiri dibagi dengan bilangan yang ada di
sebelah kanan operator, hasil dari operasi ini adalah data numerik.
Pembagian Sisa (%)
digunakan untuk mendapatkan sisa pembagian dari suatu operasi pembagian,bilangan di sebelah kiri dibagi dengan bilangan yang di
sebelah kanan, sisa dari hasil pembagian ini yang menjadi hasil dari operasi ini disebut modulus.
1.3.2 Fungsi Matematis
SQRT
Untuk mencari akar dari niai tertentu.
Contoh :
SELECT SQRT (100)
CEILING
Untuk pembulatan ke atas dari angka decimal
Contoh :
SELECT CEILING (25.25)
Keterangan : Akan menghasilkan nilai 26
FLOOR
Untuk pembulatan ke bawah dari angka decimal
Contoh :
SELECT FLOOR (25.25)
Keterangan : Akan menghasilkan nilai 25
ABS (value)
Menghasilkanabsolutdari value.
SIN (radian)
Menghasilkansinusdari radian.
COS (radian)
Menghasilkancosinusdari radian.
TAN (radian)
Menghasilkantangendari radian.
ASIN (value)
Menghasilkanradiandari sinussuatu value.
ACOS (value)
Menghasilkanradiandari cosinussuatu value.
ATAN (value)
Menghasilkanradiandari tangensuatu value.
LOG (value)
Menghasilkannatural logaritmadari value.
LOG10 (value)
Menghasilkanlogaritmaberbasis10dari value.
SQUARE (value)
Menghasilkankuadratdari value.
4. SQRT (value)
Menghasilkanakarkuadratdari value.
EXP (value)
Menghasilkanexponensial dari value.
POWER (X,Y)
MenghasilkanXY
.
SIGN (value)
Mengecekapakahvalue adalahbilanganpositif,negatif,ataunol.
PI
Menghasilkanbilangan22/7.
Contoh penggunaan operator aritmetika dalam MySQL :
SELECT Square (UnitPrice) FROMOrderDetail
SELECT Sqrt(UnitPrice) FROMOrderDetail
SELECT Ceiling(UnitPrice) FROMOrderDetail
SELECT Floor(UnitPrice) FROMOrderDetail
SELECT Round(UnitPrice,2) FROMOrderDetail
1.4 Fungsi String
Fungsi string digunakan untuk melakukan manipulais data teks (string). MySQL menyediakan banyak fungsi
built-in untuk melakukan manipulasi teks ini. Berikut adalah daftar fungsi string yang telah disediakan :
LEN (string)
Menghasilkanpanjangdari string.
LOWER (string)
Mengubah string menjadi huruf kecil.
UPPER (string)
Mengubahstringmenjadi huruf besar/kapital.
LEFT (string,value)
Menghasilkansubstringdari string sebanyak valuekarakterdari sisi kiri.
RIGHT (string,value)
Menghasilkansubstringdari string sebanyak valuekarakterdari sisi kanan.
LTRIM (string)
Memfilterstring denganmembuangsejumlahspasi yangadadi sisi kiri.
RTRIM (string)
Memfilterstring denganmembuangsejumlahspasi yangadadi sisi kanan.
REVERSE (string)
Menghasilkan string dalamkeadaanterbalik.
REPLICATE (string,value)
Menghasilkanduplikasistring sebanyak value.
REPLACE (string,seekstring,replacestring)
Menggantikan seekstring menjadi replacestring dalamstring.
STR (value,length,decimal)
Menampilkan valuedengandenganpanjang length dengandesimal sebesardecimal.
SUBSTRING (string,start,length)
Mengambil substringdari string mulai dari posisi startsebanyak lengthkarakter.
Contoh penggunaan operator string dalam MySQL :
SELECT Len(ContactName) ASPanjangNamaFROMCustomers
SELECT Lower(ContactName) FROMCustomers
SELECT Upper(ContactName) FROMCustomers
SELECT Left(ContactName,5) FROMCustomers
SELECT Right(ContactName,5) FROMCustomers
SELECT LTrim(Address) FROMCustomers
SELECT RTrim(Address) FROMCustomers
SELECT Reverse (ContactName)FROMCustomers
SELECT Replicate (‘ABC’,5)
5. SELECT Replace (ContactName,‘Budi’,‘Johan’) FROMCustomers
SELECT Str (UnitPrice,8,2) FROMProducts
SELECT SubString(ContactName,3,5) FROMCustomers
1.5 Fungsi Tanggal dan Jam
Date dan time function berguna untuk menulis data berupa tanggal dan hari/waktu. Date dan function ditulis
menggunakan DATETIME, DATE, TIMESTAMP, TIME dan YEAR.
DATETIME
digunakan apabila kita memerlukan nilai yang berisi informasi tentang tanggal dan waktu.
DATE
digunakan untuk menampilkan tanggal, tanpa adanya waktu.
Kolom TIMESTAMP
berisi property yang berbeda-beda, tergantung versi MySQL dan mode server MySQL yang dijalankan.
TIME
tidak hanya dapat digunakan untuk menampilkan waktu tetapi juga dapat digunakan untuk menampilkan waktu
diantara dua kejadian.
YEAR
digunakan untuk menunjukkan tahun.
1.6 Fungsi Enkripsi
Fungsi Ekripsi merupakan fungsi yang digunakan untuk melakukan enkripsi dan dekripsi data. Permasalahan enkripsi
data biasanyaberhubungandengan password. Enkripsi merupakan proses pengaburan data ke bentuk lain yang
tidakmudahditebak,namundapatdi ubah ke bentuksemula(dekripsi) apabiladiperlukan.Kitadapatmenyimpan
hasil dari encryptionfunctionyangbiasanyaterdiridari bilanganyangberubah-ubahbenganmenggunakankolom
BLOB sebagai ganti kolomCHARatau VARCHARuntukmenghindari masalahyangdapattimbul karena perubahan
ruang sehingga mengubah nilai.
Perintah-perintah dalam encryption function, antara lain :
CRYPT, melakukan proses enkripsi data.
MD5, menghasilkan enkripsi berupa sederetan karakter dengan jumlah digit 32.
PASSWORD, mengenkripsi password MySQL dan disimpan dalam kolom password di grant table pengguna.
SHA (string), digunakan untuk menyimpan password.
1.7 Fungsi Logika
1.7.1 Operator Logika
NOT [kondisi] // ! [kondisi]
menyatakan kebalikan dari data yang ada.
[kondisi 1] AND [kondisi 2] // [kondisi 1] && [kondisi 2]
menyatakan harus memenuhi dari kedua kondisi yang ada.
[kondisi 1] OR [kondisi 2] // [kondisi 1] || [kondisi 2]
menyatakan harus memenuhi hanya salah satu dari kondisi yang ada.
Perintah logika / syarat untuk menghasilkan hasil yang berbeda dengan aturan tertentu :
CASE WHEN [perbandingan nilai] THEN [hasil] WHEN [perbandingan nilai 2] THEN [hasil 2] ELSE [hasil lain] END
Jika [perbandingan nilai]sesuai maka menghasilkan nilai [hasil], jika sesuai dengan [perbandingan nilai 2] maka menghasilkan nilai
[hasil 2], jika tidak ada yang sesuai maka menghasilkan nilai [hasil lain].
IF ([perbandingan], [hasil 1], [hasil 2])
Jika [perbandingan] sesuai maka muncul nilai [hasil 1], jika tidak muncul nilai [hasil 2]. [hasil] pada perintah IF dapat dii si dengan
perintah logika lainnya.
IFNULL ([aturan], [nilai pengganti NULL])
Jika [aturan] sama dengan NULL maka muncul nilai [nilai pengganti NULL].
NULLIF ([aturan 1], [aturan 2])
Jika [aturan 1] = [aturan 2] maka hasilnya NULL, jika [aturan 1] tidak sama dengan [aturan 2] maka hasilnya [aturan 1].