Rabu, 29 Juni 2011

Pengertian, Sintak dan Contoh Triger, Store Prodesedur, dan View

1. Trigger
    Trigger merupakan store procedure yang dijalankan secara automatis saat user melakukan modifikasi data       pada tabel. Modifikasi data yang dilakukan pada tabel yaitu berupa perintah INSERT, UPDATE, dan DELETE.
INSERT , UPDATE dan DELETE bisa digabung jadi satu trigger yang dinamakan Multiple Trigger.

Sintak Triger:

CREATE TRIGGER tr_status     
ON daftarnilai
FOR INSERT, UPDATE
AS
DECLARE @kode char(4)
DECLARE @nilai float
SELECT @kode = kode, @nilai = nilai FROM daftarNilai
IF @nilai >= 60
UPDATE daftarSiswa SET status = ‘Lulus’ WHERE kode=@kode
ELSE UPDATE daftarSiswa SET status = ‘Tidak Lulus’ WHERE kode=@kode
go

contoh Triger:

Untuk menganalisa lihat isi kedua tabel diatas dengan perintah
SELECT* FROM daftarSiswa
SELECT* FROM daftarNilai

Setelah Anda melihat hasilnya kemudian jalankan perintah dibawah ini :
INSERT INTO daftarNilai values(’1001′,70)
INSERT INTO daftarNilai values(’1002′,50)
INSERT INTO daftarNilai values(’1003′,80)

Setelah dijalankan Anda bisa lihat kembali isi tabel daftarSiswa dan daftarNilai.

DaftarSiswa
KodeStatus
1001
1002
1003


Di tabel yang lain kita juga punya tabel Daftar Nilai :


DaftarNilai
KodeNilai

Daftar nilai ini belum ada isinya yang nantinya akan kita isi dengan perintah INSERT.
Kolom Status pada tabel DaftarSiswa akan kita isi dengan “Lulus” dan “Tidak Lulus” secara automatis saat kita melakukan INSERT dan UPDATE pada tabel DaftarNilai.

2. Store Producure
    Store procedure adalah kumpulan dari statement SQL yang digunakan bersama sama. Store procedure procedure mengijinkan penggunaan statemen SQL lebih dari sekedar statemen SQL biasa untuk meretrieve dan mengupdate database. Store procedure mendukung pemakaian variabel flow control dan cursor.

Sintak SQL dalam Store Procedure :
CREATE PROCEDURE nama_stored_procedurenya @parameter1 tipe_data, @parameter2 2 tipe_data AS isi procedurenya.
Penjelasan
  •  nama stored_procedure tidak boleh sama dengan nama fungsi internal, misal CREATE PROCEDURE   SUM, tidak boleh ada spasi, tapi bisa menggunakan karakter _
  • Untuk membuat stored procedure gunakan perintah CREATE, untuk mengedit gunakan ALTER , untuk menghapus gunakan DROP. Perintah CREATE, ALTER, DROP dapat digunakan juga untuk membuat TABLE, VIEW, TRIGGER, FUNCTION, misal CREATE VIEW, ALTER FUNCTION,dsb
  • SQL Server mengenali parameter/variabel karena ada tanda @, contoh : @nama_barang char(50), @tanggal datetime, dsb
  •  Untuk deklarasi parameter di Stored Procedure gunakan DECLARE
  • contoh : DECLARE @StartDate datetime, @EndDate datetime, dst... Untuk memasukkan nilai ke sebuah parameter, gunakan SET atau SELECT, contoh : SET @nama='Itanium' SET @Web='Klik-kanan' (perintah SET hanya bisa untuk 1 variabel saja)SELECT @nama='Itanium', @Web='Klik-kanan' (perintah SELECT bisa digunakan untuk banyak variabel)
  • Untuk mengambil nilai dari sebuah field dari tabel ke dalam variabel dapat juga menggunakan SET / SELECT , misal : SET @nama= SELECT nama FROM user WHERE login='Itanium') selalu gunakan anda(),perintah ini valid bila data yang ditemukan hanya 1, bila lebih, maka varibale @nama tidak akan ada nilai nya.
  • Untuk mengambil data dalam jumlah banyak, misal seperti array atau StringList, gunakan temporary tabel.untuk pembahasan lebih lengkap, tunggu posting berikut nya.
Contoh pembuatan Stored Procedure. Kita akan membuat sebuah Stored procedure yang berfungsi untuk menggantikan perintah SELECT yang rumit, misal untuk laporan stok barang.

Contoh Store Procedure :
Tabel Sales Order 
 Sebagai contoh kita akan membuat tabel sales order dan diisi dengan sebuah data:

CREATE TABLE sales_order(customer_name VARCHAR( 50 ) NOT NULL ,total_price DECIMAL( 9, 0) NOT NULL DEFAULT '0',total_hpp DECIMAL( 9, 0 ) NOT NULL DEFAULT '0',profit DECIMAL( 9, 0 ) NOT NULL DEFAULT '0',so_id INT NOT NULL AUTO_INCREMENT ,PRIMARY KEY(so_id)) ENGINE = InnoDB;INSERT INTO sales_order (customer_name,so_id) VALUES ('SerbaPrima', 1);
 
Tabel Sales Item Kemudian kita akan membuat tabel sales_item diisi dengan 2 data: 
CREATE TABLE sales_item(so_id INT NOT NULL ,item_name VARCHAR( 100 ) NOT NULL ,item_price DECIMAL( 8, 0 ) NOT NULL ,hpp DECIMAL( 8, 0 ) NOT NULL ,item_id INT NOT NULL AUTO_INCREMENT ,PRIMARY KEY (item_id)) ENGINE = InnoDB;
INSERT INTO sales_item(so_id,item_name,item_price,hpp) VALUES (1, 'Keyboard', 100000,85000);
INSERT INTO sales_item(so_id,item_name,item_price,hpp) VALUES (1, 'Mouse', 50000,40000);


3. View

SQL view digunakan untuk membuat tampilan sebuah tabel. Di dalamnya memungkinkan kita untuk bisa membuat, mengupdate dan menghapus tampilan tabel tersebut. Dan tabel yang ditampilkan merupakan tabel hasil dari perintah-perintah MySql. Didalamnya akan terlihat adanya baris dan kolom seperti halnya tabel biasa dari sebuah database. Dan tabel yang ditampilkan hanya satu tabel sekalipun merupakan hasil perintah pada join MySql.

Sintak VIEW dengan bentuk sbb:
CREATE VIEW namaview AS
SELECT namakolom
FROM namatabel
WHERE persyaratan
View yang dihasilkan merupakan data yang terupdate karena setiap kita menjalakan kueri CREATE VIEW tersebut, maka database akan mengcreate data terbaru.
Contoh SQL View :
CREATE VIEW Mahasiswa Jawa Barat AS
SELECT ID,Nama
FROM Mahasiswa
WHERE Propinsi=Jawa Barat
Hal ini akan menghasilkan tampilan data ID dan nama mahasiswa yang berasal dari propinsi Jawa Barat.
Sedangkan untuk menghapus sebuah view kita menggunakan perintah DROP pada kueri MySQL. Perintahnya adalah sbb:
DROP VIEW Mahasiswa Jawa Barat
Maka view tersebut akan terhapus.

Tidak ada komentar:

Poskan Komentar