3.1. Tujuan Instruksi Khusus - Memahami bermacam tipe fungsi yang tersedia dalam SQL - Menggunakan fungsi Karakter, Bilangan dan Tanggal dalam statement SELECT - Dapat melakukan fungsi Konversi 3.2. Fungsi (Function) SQL MS SQL Server memiliki beberapa fungsi untuk manipulasi data antara lain, a. Fungsi string atau karakter b. Fungsi tanggal c. Fungsi matematika d. Fungsi system atau fungsi scalar e. Fungsi User Defined f. Fungsi tambahan yang dapat digunakan untuk mengubah (konversi) dari data yang satu ke data yang lain. 3.2.1. Fungsi String Tabel berikut ini berisi contoh fungsi string, yaitu fungsi yang digunakan untuk memanipulasi tipe data string atau karakter. Fungsi LCASE( ) , LOWER( )
**
Keterangan
Contoh
SELECT LOWER([nama_field]) + mengubah FROM [nama_tabel] string menjadi Menampilkan lastname dengan ketentuan huruf kecil. karakter pertama diubah menjadi huruf besar, sedangkan sisanya dalam huruf kecil.
LTRIM( )
SELECT LTRIM([nama_field]) Menghapus spasi sebelum FROM [nama_tabel] Menampilkan data pada kolom alamat setelah string membuang spasi yang ada didepannya.
Halaman : 3 - 1
SELECT SUBSTRING([namafield], SUBSTRING( ) Mengambil [awal_karakter], [akhir_karakter]) satu karakter FROM [nama_tabel] atau lebih dari sebuah string Menampilkan tiga karakter pertama (kode area) dari sebuahnomor telpon
Field telpon merupakan hasil fungsi substring (phone,1,3) diambil tiga karakter dimulai dari karakter ke-1
SELECT UPPER([nama_field]) + Mengubah FROM [nama_tabel] string menjadi Mengubah isi kolom lname menjadi huruf huruf besar besar (uppercase) sebelum membandingkannya dengan nilai tertentu (SMITH), agar tidak terjadi ketidakcocokan jika pencarian data membedakan antara huruf kecil dengan huruf besar (case sensitive).
**
3.2.2. Fungsi Tanggal Tabel berikut ini berisi contoh fungsi date and time, yaitu fungsi yang digunakan untuk tanggal dan waktu. Fungsi DATEDIFF( ) Keterangan Contoh
Menghitung interval antara SELECT fname, lname, hire_date FROM employee dua data.
WHERE DATEDIFF(year, hire_date, getdate()) > 5 Menampilkan data seluruh karyawan yang tgl masuknya lebih dari 5 tahun yang lalu.
SELECT DATEPART(year, hire_date) tertentu dari kolom tanggal FROM employee atau waktu, termasuk hari, Menampilkan tahun masuk karyawan bulan, atau tahun. (tidak semua isi kolom hire_date).
Halaman : 3 - 2
CURDATE( )** Menampilkan tanggal saat SELECT order_id GETDATE( ) ini dalam format tanggal. FROM orders WHERE order_date = GETDATE() or DATE( )
Menampilkan order yang terjadi hari ini.
**
3.2.3. Fungsi Matematika Tabel berikut ini berisi contoh fungsi matematika, yaitu fungsi yang digunakan untuk penghitungan matematis dan hasilnya berupa angka. Fungsi ROUND( ) Keterangan
Membulatkan ke atas angka di belakang koma ke dalam jumlah angka decimal tertentu
Contoh
SELECT ROUND([nama_field],[angka_dibelakang_koma]) FROM [nama_tabel]
FLOOR( )
Nilai pada field harga tidak mengandung angka decimal atau menjadi tipe bilangan integer
Halaman : 3 - 3
Catatan : Dalam SQL Server juga di kenal fungsi aggregate yaitu AVG( ), COUNT( ), MAX( ), MIN( ), dan SUM( ) yang dapat digunakan untuk fungsi matematika Fungsi Keterangan
dalam satu kolom
Contoh
COUNT ({[ ALL | DISTINCT ]expression ] | * })
AVG( )
SUM( )
MAX( ) MIN( )
Mencari nilai tertinggi suatu kolom Mencari nilai terendah suatu kolom
Halaman : 3 - 4
3.2.4. Fungsi System Tabel berikut ini berisi fungsi yang biasanya ada dalam beberapa database, dan digunakan untuk manipulasi matematika, yaitu fungsi yang digunakan Fungsi CASE Keterangan Contoh
Menampilkan CASE input_expression WHEN when_expression THEN data sesuai dengan kondisi result_expression [ ...n ] yang [ disyaratkan ELSE else_result_expression ] END
DATALENGTH( ) Menampilkan
jumlah Bytes bytes yang digunakan suatu kolom
USER_NAME ( [ id ] )
Halaman : 3 - 5
**
Fungsi System masih banyak macamnya, dan dapat dipelajari di Book online yang disertakan pada SQL Server. 3.2.5. Fungsi Tambahan Tabel berikut ini berisi fungsi yang biasanya digunakan untuk manipulasi data di dalam database: Fungsi Keterangan Contoh CONVERT( ) Mengubah data SELECT SUBSTRING(title,1,20) AS Title, dari format data ytd_sales CAST ( )
FROM titles yang satu ke WHERE CAST(ytd_sales AS char(20)) LIKE '3%' format yang lain ATAU SELECT SUBSTRING(title,1,20) AS Title, ytd_sales FROM titles WHERE CONVERT(char(20), ytd_sales) LIKE '3%'
STR( )
Mengubah data SELECT str(job_id) + ' ' + str(job_lvl) numeric ke FROM employee karakter atau string
Halaman : 3 - 6
3.2.6. Fungsi User-defined Berikut ini adalah contoh fungsi yang dibuat sendiri oleh user (user-defined function). Sintaks:
CREATE FUNCTION [ owner_name. ] function_name ( [ { @parameter_name [AS] scalar_parameter_data_type [ = default ] } [ ,...n ] ] ) RETURNS scalar_return_data_type [ WITH < function_option> [ [,] ...n] ] [ AS ] BEGIN function_body RETURN scalar_expression END
Keterangan: @principal, @rate dan @year adalah parameter yang dipanggil melalui aplikasi yang dibuat oleh user.
Halaman : 3 - 7