Stored Procedure – functions –
Trigger
Stored Procedure
Stored procedure sangat mirip dengan konstruksi terlihat pada bahasa pemrograman lain. Mereka menerima data dalam bentuk parameter input yang ditentukan pada waktu eksekusi. Inputan parameter ini dapat dimanfaatkan dalam pelaksanaan serangkaian pernyataan yang mendapatkan beberapa hasil. Hasil ini dikembalikan ke lingkungan pemanggil melalui penggunaan recordset, parameter output dan kode kembali. Itu mungkin terdengar seperti mulut, tapi Anda akan menemukan bahwa prosedur yang tersimpan adalah sebenarnya cukup sederhana. Dengan kata lain Stored procedure merupakan salah satu fungsi pemrograman prosedural yang tersedia pada SQL Server. Prinsip pembuatan sproc pada dasarnya mirip dengan pembuatan fungsi atau class pada pemrograman berbasis objek (OOP).
Menerapkan stored procedure pada SQL Server
pada dasarnya tidaklah terlalu sulit. Terlebih lagi, dikarenakan fungsi ini
telah tersedia semenjak SQL Server 7.0. Berikut adalah sintaks pemrograman dari
sebuah stored procedure:
1: CREATE PROCEDURE|PROC <sproc name>
2: [<parameter name> [schema.]<data type> [VARYING] [= <default value>] [OUT
3: [PUT]][,
4: <parameter name> [schema.]<data type> [VARYING] [= <default value>]
5: [OUT[PUT]][,
6: ...
7: ...
8: ]]
9: [WITH
10: RECOMPILE| ENCRYPTION | [EXECUTE AS { CALLER|SELF|OWNER|<’user name’>}]
11: [FOR REPLICATION]
12: AS
13: <code> | EXTERNAL NAME <assembly name>.<assembly class>
Untuk
mengakses stored procedure yang telah dibuat, maka dapat menggunakan
perintah seperti ini:
1: EXEC <sproc name>
Function
Function adalah suatu blok PL/SQL yang memiliki
konsep sama dengan procedure, hanya saja pada function terdapat pengembalian
nilai (return value).
Karena function dapat mengembalikan sebuah nilai, function dapat diakses
seperti layaknya sebuah variabel biasa.
Ada berbagai
macam fungsi yang ada pada SQL :
1.
Fungsi
Agregasi/Agregates
--> Fungsi yang
dihasilkan dari sebuah group data.
a.
SUM
--> Untuk menjumlah
suatu kolom tertentu yang telah definisikan dalam perintah select.
Sintak
:
SELECT
SUM (nama_kolom) FROM nama_tabel
[WHERE
= Kondisi]
Contoh
:
SELECT
SUM (SKS) FROM Mata_Kuliah
b.
COUNT
--> Untuk menghitung
jumlah baris dalam sebuah tabel.
Sintak
:
SELECT
COUNT nama_kolom FROM nama_tabel
[WHERE]
Contoh
:
SELECT
COUNT (*) FROM mahasiswa
SELECT
COUNT (SKS) FROM Mata_Kuliah
c.
AVG
--> Untuk menghitung
nilai rata – rata dari suatu kolom tertentu yang telah definisikan dalam
perintah select.
Sintak
:
SELECT
AVG nama_kolom FROM nama_tabel
[WHERE]
Contoh
:
SELECT
AVG (SKS) FROM Mata_Kuliah
d.
MIN
--> Untuk mengetahui
nilai terkecil dari sebuah kolom tertentudalam
perintah select.
Sintak
:
SELECT
MIN nama_kolom FROM nama_tabel
[WHERE]
Contoh
:
SELECT
MIN (SKS) FROM Mata_Kuliah
e.
MAX
--> Untuk mengetahui
nilai terbesar dari sebuah kolom tertentu dalam perintah select.
Sintak
:
SELECT
MAX nama_kolom FROM nama_tabel
[WHERE]
Contoh
:
SELECT
MAX (SKS) FROM Mata_Kuliah
2.
Fungsi Waktu
a.
GETDATE
--> Untuk
menampilkan tanggal sekarang.
Contoh
:
SELECT
GETDATE()
b.
DATEADD
--> Untuk memambah
jumlah hari, tanggal atau tahun yang ditentukan.
Sintak
:
DATEADD
(datepart, jumlah, tanggal)
Contoh
:
SELECT
DATEADD (day, 10, getdate())
SELECT
DATEADD (Month, 10, getdate())
SELECT
DATEADD (Year, 10, getdate())
c.
DATEDIFF
--> Untuk mengetahui
rentan waktu (bisa hari, bulan, tahun).
Sintak
:
DATEDIFF
(datepart,tanggal_awal, tanggal_akhir)
Contoh
:
SELECT
DATEDIFF (month, '01/01/2007','01/01/2008')
d.
DATENAME
--> Untuk
menampilkan nama hari, bulan atau tahun.
Sintak
:
DATENAME
(datepart, tanggal)
Contoh
:
SELECT
DATENAME (month, getdate()) AS 'BulanSekarang'
3.
Fungsi
Aritmatika
a.
SQRT
--> Untuk mencari
akar dari niai tertentu.
Contoh
:
SELECT
SQRT (100)
b.
CEILING
--> Untuk pembulatan
ke atas dari angka decimal
Contoh
:
SELECT
CEILING (25.25)
Keterangan
: Akan menghasilkan nilai 26
c.
FLOOR
--> Untuk pembulatan
ke bawah dari angka decimal
Contoh
:
SELECT
FLOOR (25.25)
Keterangan
: Akan menghasilkan nilai 25
4.
Fungsi Karakter
a.
LOWER
dan UPPER
--> LOWER _ mengubah
huruf besar ke huruf kecil
--> UPPER _ mengubah
huruf kecil ke huruf besar
Contoh
:
SELECT
LOWER (Nama) FROM Mahasiswa
SELECT
UPPER (Nama) FROM Mahasiswa
b.
LEN
--> Untuk menghitung
jumlah karakter.
Contoh
:
SELECT
Nama, LEN (Nama) FROM Mahasiswa
c.
LTRIM
dan RTRIM
--> LTRIM _ memotong
karakter spasi di kiri string
--> RTRIM _ memotong
karakter spasi di kanan string
Contoh
:
SELECT
LTRIM (' Sistem Basis Data')
SELECT
RTRIM ('Sistem Basis Data ')
Keterangan
:
Akan
menghasilkan “Sistem Basis Data”
d.
SUBSTRING
--> Mengambil
beberapa karakter dari sebuah deretan string.
Contoh
:
SELECT
SUBSTRING ('Sistem Basis Data',8,5)
Keterangan
:
Mengambil
string dari karakter ke 8 sebanyak 5 karakter.
Hasilnya
adalah ‘Basis’
e.
LEFT
dan RIGHT
--> LEFT _ Mengambil
beberapa karakter dari kiri
--> RIGHT _ Mengambil
beberapa karakter dari kakan
Contoh
:
SELECT
LEFT ('Sistem Basis Data',6)
Keterangan
:
Mengambil
string sebanyak 6 karakter dari sebelah kiri.
Hasilnya
adalah ‘Sistem’
Trigger
Trigger
adalah suatu objek dalam basisdata yang terdapat pada bagian tabel. Trigger
untuk menempatkan suatu prosedure berkaitan dengan perubahan pada isi tabel.
Cara kerja trigger adalah merespon berkaitan dengan perintah DML (INSERT ,
UPDATE, DELETE) pada tabel.
Adapun jenis
perubahan yang dijalankan dalam trigger adalah :
- BEFORE INSERT on TABEL1 :
menjalankan proses di dalamnya pada saat sebelum melakukan operasi INSERT
di TABEL1
- AFTER INSERT on TABEL
menjalankan proses di dalamnya pada saat sesudah melakukan operasi INSERT
di TABEL1
- BEFORE UPDATE on TABEL1
menjalankan proses di dalamnya pada saat sebelum melakukan operasi UPDATE
di TABEL1
- AFTER UPDATE on TABEL1
menjalankan proses di dalamnya pada saat sesudah melakukan operasi UPDATE
di TABEL1
- BEFORE DELETE on TABEL1 :
menjalankan proses di dalamnya pada saat sebelum melakukan operasi DELETE
di TABEL1
- AFTER DELETE on TABEL1 :
menjalankan proses di dalamnya pada saat sesudah melakukan operasi DELETE
di TABEL1