Bahasa Basis Data (Database
Language)
Cempaka Ananggadipa Swastyastu [Link] MT
Bahasa basis data umumnya dapat ditempelkan
(embbeded) ke bahasa pemrogarman lain, misalkan
ditempelkan kedalam bahasa Java,C/C++, Pascal, Basic,
Fortran, Ada dan lainnya.
Bahasa tempat ditempelkannya instruksi bahasa
basisdata disebut sebagai inang (host language).
Bahasa Basis
Data (Database
Language)
Data Definition Language (DDL) : berfungsi
menspesifikasikan skema atau struktur basisdata, hasil
pernyataan DDL adalah himpunan definisi data yang
disimpan secara khusus pada data dictionary (data
directory).
Data Manipulation Language (DML) : berisi sekumpulan
Bentuk Bahasa operasi manipulasi data pada basisdata, DML biasa disebut
Basis Data bahasa query yaitu bahasa untuk meminta informasi dari
basisdata karena komponen paling kompleks di DML
(Database adalah operaasi query. Sebenarnya DML tidak hanya berisi
operasi utnuk query, namun juga meliputi operasi
Language) penghapusan, pembaruan dan penyisipan
Data Control Language (DCL) : merupakan sub bahasa
untuk mengendalikan struktur internal basisdata, DCL
untuk menyesuaikan sistem agar supaya lebih efisian dan
DCL sangat bergantung pada vendor
Data Definition
Language (DDL)
DDL digunakan untuk mendefinisikan, mengubah, serta
menghapus basis data dan objek-objek yang
diperlukan dalam basis data, misalnya tabel, view, user,
dan sebagainya.
DDL biasanya digunakan oleh administrator basis data
Data Definition dalam pembuatan sebuah aplikasi basis data.
Language (DDL) Hasil dari kompilasi perintah DDL adalah kumpulan
tabel yang disimpan dalam file khusus yang disebut
Kamus Data (Data Dictionary).
Kamus data merupakan suatu metadata (superdata),
yaitu data yang mendiskripsikan data sesungguhnya.
Command or Option Deskripsi
CREATE SCHEMA Membuat skema basis data
AUTHORIZATION
CREATE TABLE Membuat tabel pada skema
basis data yang telah ada
NOT NULL Memastikan bahwa suatu
kolom tidak akan memiliki
nilai kosong
Istilah Dalam UNIQUE Memastikan bahwa suatu
SQL DDL kolom tidak akan memiliki
nilai yang sama
PRIMARY KEY Mendefinisikan primary key
dari suatu tabel
FOREIGN KEY Mendefinisikan foreign key
dari suatu tabel
DEFAULT Mendefinisikan suatu nilai
default untuk kolom (ketika
tidak ada nilai apapun yang
dimasukkan)
Command or Option Deskripsi
CHECK Memvalidasi data pada suatu
atribut
CREATE INDEX Membuat index pada suatu
tabel
CREATE VIEW Membuat subset dinamik dari
suatu baris/kolom dari satu
atau lebih tabel
Istilah Dalam ALTER TABLE Memodifikasi definisi dari
SQL DDL tabel (tambah, modify, atau
menghapus atribut atau
constraint)
CREATE TABLE AS Membuat tabel baru
berdasarkan query pad
skema basis data
DROP TABLE Menghapus secara permanen
suatu tabel (dan isinya)
DROP INDEX Menghapus secara permanen
suatu index
Secara umum, perintah DDL yang digunakan adalah
Perintah Data CREATE untuk membuat objek baru
USE untuk menggunakan objek
Definition ALTER untuk mengubah objek yang sudah ada
Language (DDL) DROP untuk menghapus objek.
CREATE digunakan untuk membuat basis data maupun
objek-objek basis data.
Penggunaan CREATE :
CREATE DATABASE nama_basis_data
CREATE CREATE DATABASE membuat sebuah basis data baru.
CREATE TABLE nama_tabel
CREATE TABLE membuat tabel baru pada basis data yang
sedang aktif.
CREATE TABLE [''nama_tabel'']
(
nama_field1 tipe_data [constraints][,
nama_field2 tipe_data,
...]
)
Penulisan CREATE TABLE [''nama_tabel'']
( nama_field1 tipe_data [,
CREATE nama_field2 tipe_data,
...]
[CONSTRAINT nama_field constraints]
)
CREATE TABLE user
(
username VARCHAR(30) CONSTRAINT PRIMARY
KEY,
passwd VARCHAR(20) NOT NULL,
tanggal_lahir DATETIME
Contoh );
Penggunaan
Akan menghasilkan tabel user sebagai berikut :
CREATE
username passwd tanggal_lahir
Merupakan perintah dasar untuk mengubah struktur
tabel.
Dapat menambah atau mengurangi jumlah kolom yang
ada.
Bentuk umum perintahnya :
ALTER TABLE nama_tabel alter_options;
ALTER
Keterangan :
ALTER TABLE merupakan perintah dasar untuk
mengubah tabel.
nama_tabel merupakan nama tabel yang akan diubah
strukturnya.
alter_options merupakan pilihan perubahan tabel.
Nama Option Fungsi Option
ADD untuk menambahkan
nama_field/kolom_baru field/kolom baru.
ADD PRIMARY KEY untuk menambahkan
(nama_field/kolom) primary key pada tabel
DROP untuk menghapus
nama_field/kolom_baru field/kolom baru
ALTER CHANGE nama_field_lama
nama_field_baru_definisi_f
untuk mengubah nama
field.
ield_baru
MODIFY nama_field untuk mengubah type_data
type_data suatu field
RENAME TO untuk mengganti nama
nama_tabel_baru tabel
Jadi, kegunaan ALTER secara umum adalah :
Tambah Field/Kolom Baru
Tambah/hapus Primary Key
Hapus Field/Kolom
ALTER Ubah Nama Field/Kolom
Ubah Type Data Suatu Field/Kolom
Ganti Nama Tabel
Rumus Tambah Field/Kolom Baru:
ALTER TABLE nama_tabel ADD
nama_kolom tipe_data(n);
Rumus menambah kolom di lokasi spesifik :
Perubahan
ALTER TABLE nama_tabel ADD
pada Tabel nama_kolom tipe_data(n) AFTER
nama_kolom;
Kita bisa menggunkan kata AFTER untuk membantu
menambahkan kolom sesuai dengan yang anda
inginkan. Kata BEFORE tidak bisa digunakan.
Bentuk perintah hapus Field/Kolom adalah sebagai
berikut :
ALTER TABLE nama_tabel DROP
COLUMN nama_kolom;
Ubah Nama Field/Kolom
Perubahan
pada Tabel ALTER TABLE nama_tabel CHANGE
nama_kolom_lama nama_kolom_baru
tipe_data(n)
Rumus ganti nama tabel:
ALTER TABLE
nama_table_lama RENAME
TO nama_table_baru;
Perubahan
pada Tabel
Untuk menambah Primary Key pada table, perintahnya
adalah:
ALTER TABLE nama_table ADD
PRIMARY KEY (nama_kolom);
Perubahan
pada Primary Untuk hapus Primary Key pada table, perintahnya
adalah:
Key
ALTER TABLE nama_table DROP
PRIMARY KEY;
Merubah Jenis Tipe Data :
ALTER TABLE nama_tabel MODIFY
nama_kolom tipe_data_baru(n) not null
Perubahan Menjadikan Field/Kolom sebagai Primary Key :
pada Primary
Key ALTER TABLE nama_tabel ADD
primary key (nama_kolom);
Menjadikan Field/Kolom Auto_Increment (Khusus PK) :
ALTER TABLE nama_tabel MODIFY
nama_kolom tipe_data(n) not null
auto_increment;
Perubahan
pada Primary
Key
Perintah DROP biasa digunakan untuk menghapus
database,table,kolom/field.
Perintah DROP juga bisa di gabungkan dengan
perintah lainnya, misalnya digabungkan dengan
perintah ALTER TABLE yang nantinya akan bisa
menghapus kolom atau sebuah primary key.
Rumus :
DROP
DROP TABLE nama_tabel;
DROP DATABASE nama_database;
DROP TABLE nama_tabel; digunakan untuk menghapus
table, dan perintah DROP DATABASE nama_database;
digunakan untuk menghapus database.
Catatan :
Tabel berada dalam sebuah database, artinya : di dalam
sebuah database bisa terdapat banyak tabel. Jadi jika
kita menghapus database, maka tabel yang berada di
dalamnya akan ikut terhapus semua. Tapi jika kita
menghapus table, maka database tidak ikut terhapus.
DROP Perintah DROP bisa di bilang cukup berbahaya. Maka
berhati-hatilah dalam menggunakan perintah tersebut.
Jangan lupa untuk melakukan Back-up sebelum anda
melakukan perintah DROP.
Data Manipulation
Language (DML)
DML merupakan bahasa yang bertujuan memudahkan
pemakai untuk mengakses data (untuk kemudian
menampilkannya atau memanipulasinya) sebagaimana
direpresentasikan oleh model data.
Digunakan untuk memanipulasi data yang ada dalam
Data suatu tabel, dapat berupa :
Manipulation Penyisipan / penambahan data pada file / table dalam
Language (DML) suatu basis data.
Penghapusan data pada file / table dalam suatu basis
data.
Pengubahan data pada file / table dalam suatu basis data.
Penelusuran data pada file / table dalam suatu basis data.
DML merupakan bahasa yang bertujuan memudahkan
pemakai untuk mengakses data sebagaimana
direpresentasikan oleh model data.
Ada 2 (dua) jenis DML adalah sebagai berikuit :
Data Prosedural, yang mensyaratkan pemakai menentukan,
data apa yang diinginkan serta bagaimana cara
Manipulation mendapatkannya. Misal : dBase, FoxBase
Language (DML) Nonprosedural, yang membuat pemakai dapat
menentukan data apa yang diinginkan tanpa
menyebutkan bagaimana cara mendapatkannya. Misal :
SQL (Structure Query Language), QBE (Query By
Example)
Command atau Deskripsi
Option
INSERT Menambahkan baris pada tabel
SELECT Menentukan atribut dari suatu baris di satu
atau lebih tabel atau view
WHERE Membatasi seleksi dari baris berdasarkan
ekspresi kondisi tertentu
Istilah Dalam GROUP BY Menyatukan beberapa baris berdasarkan
satu atau lebih atribut
SQL DML HAVING Membatasi seleksi dari grup baris
berdasarkan kondisi tertentu
ORDER BY Memerintahkan baris terpilih
berrdasarkan satu atau lebih atribut
UPDATE Memodifikasi nilai atribut pada satu atau
lebih baris dari tabel
Command atau Deskripsi
Option
DELETE Menghapus satu atau lebih baris dari
suatu tabel
COMMIT Menyimpan secara permanen perubahan
data
ROLLBACK Restore data ke nilai asli mereka
Istilah Dalam Special
Operators
Digunakan untuk ekspresi kondisional
SQL DML BETWEEN Mengecek apakah nilai atribut terletak
diantara lokasi tertentu
IS NULL Mengecek apakah nilai atribut adalah
kosong
LIKE Mengecek apakah nilai atribut sesuai
dengan string yang dimasukkan
IN Mengecek apakah nilai atribut sesuai
dengan list nilai diantara list nilai
Command atau Deskripsi
Option
EXISTS Mengecek apakah suatu subquery
terletak di baris manapun
DISTINCT Membatasi nilai menjadi nilai unik
Digunakan dengan SELECT untuk
Aggregate
return mathematical summaries on
Functions
columns
Istilah Dalam COUNT Returns the number of rows with non-full
SQL DML values for a given column
MIN Returns the minimum atribut value found
in a given column
MAX Returns the maksimum atribut value
found in a given column
SUM Returns the sum of all values for a given
column
AVG Returns the average of all values for a
given column
Perintah yang umum dilakukan adalah:
Perintah Data SELECT untuk menampilkan data
INSERT untuk menambahkan data baru
Manipulation UPDATE untuk mengubah data yang sudah ada
Language (DML) DELETE untuk menghapus data
adalah perintah yang paling sering digunakan pada
SQL, sehingga kadang-kadang istilah query dirujukkan
pada perintah SELECT.
SELECT SELECT digunakan untuk menampilkan data dari satu
atau lebih tabel, biasanya dalam sebuah basis data
yang sama.
SELECT [nama_tabel|alias.]nama_field1 [AS alias1] [,
nama_field2, ...]
FROM nama_tabel1 [AS alias1] [INNER|LEFT|RIGHT
JOIN tabel2
Secara umum,ONperintah
''kondisi_penghubung''] [, nama_tabel3
SELECT memiliki bentuk
[AS alias3], ...]
lengkap:
SELECT [WHERE ''kondisi'']
[ORDER BY nama_field1 [ASC|DESC][, nama_field2
[ASC|DESC], ...]] [
GROUP BY nama_field1[, nama_field2, ...]]
[HAVING ''kondisi_aggregat''];
Keterangan :
nama_tabel, merupakan nama dari tabel yang akan
ditampilkan datanya.
nama_field, merupakan nama dari field pada tabel yang
akan ditampilkan.
alias merupakan nama baru yang mewakili nama
SELECT sebelumnya.
kondisi, merupakan syarat yang harus dipenuhi oleh data
yang akan ditampilkan.
kondisi_aggregat, merupakan syarat khusus untuk fungsi
agregat seperti SUM, COUNT, AVR, MIN dan MAX.
Menampilkan seluruh data dari tabel
SELECT * FROM user;
Menampilkan seluruh data dari tabel dengan syarat
Contoh WHERE
Penggunaan SELECT * FROM user
SELECT WHERE nama_user="sabrina";
Menampilkan seluruh data dari tabel dengan urutan
SELECT * FROM user ODER BY id ASC;
Contoh Menampilkan data dari tabel dengan fungsi agregat
Penggunaan
SELECT SELECT SUM(penjualan) as total FROM
transaksi;
Beberapa SMBD memiliki fungsi aggregat, yaitu fungsi-
fungsi khusus yang melibatkan sekelompok data
(aggregat).
Fungsi agregat dalam MySQL adalah fungsi yang
Fungsi Aggregat menerima koleksi nilai dan mengembalikan nilai
tunggal sebagai hasilnya, seperti: jumlah data, nilai
minimun, nilai maximum dan nilai rata-rata .
Secara umum fungsi aggregat adalah:
SUM untuk menghitung total nominal data
COUNT untuk menghitung jumlah kemunculan data
AVG untuk menghitung rata-rata sekelompok data
MAX dan MIN untuk mendapatkan nilai
Fungsi Aggregat maksimum/minimum dari sekelompok data.
Fungsi aggregat digunakan pada bagian SELECT.
Syarat untuk fungsi aggregat diletakkan pada bagian
HAVING, bukan WHERE.
Fungsi COUNT
SELECT COUNT(*) AS
kolom_baru_hasil_hitung_data
FROM nama_tabel
WHERE ketentuan;
Fungsi SUM
Fungsi Aggregat SELECT SUM(kolom_yang_dihitung) AS
kolom_baru_hasil_hitung
FROM nama_tabel
WHERE ketentuan;
Fungsi MAX
SELECT MAX(kolom_yang_dihitung)
AS kolom_baru_hasil
FROM nama_tabel
WHERE ketentuan;
Fungsi Aggregat Fungsi MIN
SELECT MIN(kolom_yang_dihitung)
AS kolom_baru_hasil
FROM nama_tabel
WHERE ketentuan;
Fungsi AVG
SELECT AVG (kolom_yang_dihitung) AS
kolom_baru_hasil
Fungsi Aggregat FROM nama_tabel
WHERE ketentuan;
Merupakan perintah untuk menambah record pada
tabel.
Yang perlu diperhatikan dalam menginputkan data
adalah struktur tabel yang akan digunakan untuk
memasukkan data.
Bentuk penulisan perintah INSERT
INSERT INSERT INTO [NAMA_TABLE]
([DAFTAR_FIELD]) VALUES
([DAFTAR_NILAI]);
Contoh :
INSERT INTO [Nama_Tabel] values
(1,’choir’,’1994-04-
25’,false,’programmer’);
Keterangan :
INSERT Kolom Pertama berisikan (1), tidak menggunakan petik
karena tipe datanya adalah integer.
Kolom Kedua dan Kelima (choir dan programmer), karena
tipe datanya varchar maka tanda petik diperlukan.
Kolom Ketiga (1994-04-25), tipe data date dianggap
sebagai string, jadi menggunakan petik
Kolom Keempat (false), tipe data kolom Boolean, hanya
berisi True / False.
Perintah UPDATE digunakan untuk mengubah data
pada suatu tabel dengan kriteria tertentu
UPDATE [NAMA_TABLE] SET
[NAMA_KOLOM]=[NILAI] WHERE
[KONDISI]
Contoh :
UPDATE UPDATE siswa SET nama=’CHOIR’ WHERE
nim=’13650115’;
Keterangan : Mengganti nama menjadi “CHOIR” untuk
siswa yang mempunyai nim “13650115”
Perintah DELETE digunakan untuk menghapus data
yang memenuhi kriteria tertentu.
DELETE FROM [nama_table] Where
[KONDISI]
Contoh :
DELETE DELETE FROM siswa WHERE nama = ‘IRAWAN
SUJADMIKO’;
Keterangan :
Menghapus data siswa yang memiliki nama “IRAWAN
SUJADMIKO”
Advanced SQL
Relational Set Operators menggunakan aljabar relasi
untuk memanipulasi konten dalam basis data.
Terdiri atas :
Relational Set UNION
Operators UNION ALL
INTERSECT
MINUS
Tujuan dari UNION adalah menggabungkan hasil dari
dua query sekaligus menghapus duplikasi. Dengan
kata lain, ketika menggunakan UNION, hanya nilai unik
yang digunakan. (serupa dengan SELECT DISTINCT)
Sintaks :
[SQL Statement 1]
UNION UNION
[SQL Statement 2];
Kolom yang dipilih pada [SQL Statement 1] dan [SQL
Statement 2] harus memiliki tipe data yang sama agar
UNION dapat berjalan.
Contoh :
SELECT CUS_LNAME, CUS_FNAME, CUS_PHONE
FROM CUSTOMER
UNION UNION
SELECT CUS_LNAME, CUS_FNAME, CUS_PHONE
FROM CUSTOMER_2;
Tujuan dari perintah SQL UNION ALL adalah
mengkombinasi hasil dari dua quey tanpa menghapus
duplikat apapun.
Sintaks :
[SQL Statement 1]
UNION ALL UNION ALL
[SQL Statement 2];
Intersect bagus untuk menunjukkan nilai spesifik yang
sedang diduplikasi.
Perintah intersect berlaku seperti operator AND (Nilai
INTERSECT hanya dipilih jika terdapat di kedua statemen).
Intersect juga dapat mengenerate info tambahan seperi
menampilkan konsumen pada zip code tertentu.
Sintaks :
[SQL Statement 1]
INTERSECT
[SQL Statement 2];
Contoh :
SELECT CUS_LNAME, CUS_FNAME,
INTERSECT CUS_PHONE
FROM CUSTOMER
INTERSECT
SELECT CUS_LNAME, CUS_FNAME,
CUS_PHONE FROM CUSTOMER_2;
The Minus statement in SQL combines rows from two
queries and returns only the rows that appear in the
first set but not the second.
MINUS Basically it takes all the results from the first SQL
statement, and then subtracts out the ones that are
present in the second SQL statement to get the final
answer.
If the second SQL statement includes results not present
in the first SQL statement, such results are ignored
Sintaks :
[SQL Statement 1]
MINUS
[SQL Statement 2];
MINUS
Contoh :
SELECT CUS_LNAME, CUS_FNAME, CUS_PHONE
FROM CUSTOMER_2
MINUS
SELECT CUS_LNAME, CUS_FNAME, CUS_PHONE
Menggabungkan baris dan hanya memperlihatkan
MINUS baris pertama
Sintaks JOIN digunakan untuk mengkombinasikan baris
dari dua atau lebih tabel, berdasarkan kolom yang
berhubungan diantara mereka.
Terdiri atas :
SQL Join Inner
Outer
Operators Full
Left
Right
Menampilkan record/data yang memiliki nilai yang
sama pada dua buah tabel.
Dengan inner join, tabel akan digabungkan dua arah,
sehingga tidak ada data yang NULL di satu sisi.
Penggambaran :
Inner Join
Sintaks INNER JOIN menentukan record/data yang
memiliki nilai yang sama pada kedua tabel.
Penulisan Sintaks :
SELECT column_name(s)
FROM table1
INNER JOIN table2 ON table1.column_name =
table2.column_name;
Inner Join
Menampilkan record atau data ketika terdapat
persamaan pada salah satu table maupun keduanya.
Terbagi atas 3, yaitu
Outer Join Full
Right
Left
Menampilkan record atau data ketika terdapat
persamaan pada salah satu table maupun keduanya.
Penggambaran :
Full Join
Sintaks :
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2 ON
table1.column_name = table2.column_name;
Catatan :
Full Join FULL OUTER JOIN dapat menampilkan hasil yang sangat
besar.
Menampilkan record atau data ketika terdapat
kecocokan pada table kiri dan cocok dengan record
atau data di sebelah kanan.
Hasil akan menjadi NULL pada sisi kanan, bila tidak ada
kondisi yang cocok.
Left Join
Sintaks :
SELECT column_name(s)
FROM table1
LEFT JOIN table2 ON table1.column_name =
table2.column_name;
Left Join
Menampilkan record atau data ketika terdapat kondisi
yang sesuai pada table kanan dan cocok dengan record
di sebelah kiri.
Hasil akan menjadi NULL pada sisi kiri, bila tidak ada
kondisi yang cocok.
Right Join
Sintaks :
SELECT column_name(s)
FROM table1
RIGHT JOIN table2 ON table1.column_name =
table2.column_name;
Right Join
Subquery merupakan statemen SQL yang memiliki SQL
Subqueries and query lain tertampung di dalamnya.
Sintax yang digunakan biasanya WHERE atau HAVING
Correlated clause.
Queries
Karakteristik subquery :
Subquery merupakan query di dalam query (untuk
statemen SELECT)
Biasanya dituliskan di dalam kurung
Query pertama pada pernyataan SQL dikenal dengan
Subqueries outer query
Query di dalam pernyataan SQL dikenal dengan inner
query
Inner query dieksekusi terlebih dahulu
Output dari inner query digunakan untuk input untuk
outer query
Sintax :
SELECT "column_name1"
FROM "table_name1"
WHERE "column_name2" [Comparison Operator]
(SELECT "column_name3"
FROM "table_name2"
WHERE "condition");
WHERE
Subqueries
[Comparison Operator] dapat berupa operator persamaan
dan pertidaksamaan seperti =, >, <, >=, <=. Dapat juga
berupa operator kata seperti "LIKE".
Penulisan berwarna orange merupakan "inner query,"
sementara penulisan berwarna putih merupakan"outer
query."
Trigger adalah sebuah objek database yang di
asosiasikan dengan sebuah tabel dan akan aktif
(terpicu/trigger) ketika sebuah event terjadi pada tabel
tersebut
Trigger Trigger hanya terjadi ketika ada eksekusi INSERT,
DELETE, dan UPDATE pada tabel yang bersangkutan
Waktu eksekusi trigger yang mungkin terjadi terdiri
dari 2 yaitu BEFORE dan AFTER dari statement SQLnya.
Implementasi trigger yang sering ditemui dalam dunia
nyata adalah untuk mengeset dan mengubah nilai
kolom dalam suatu tabel sehingga validasi nilai dari
tabel tersebut akan terjaga.
Pengertian
Adanya trigger dalam database akan meringankan kita
Trigger dalam pembuatan aplikasi karena di dalam aplikasi
yang kita buat kita tidak perlu lagi untuk melakukan
validasi data.
Application trigger
Terjadi pada saat sebuah kejadian terjadi dengan aplikasi
tertentu.
Database trigger
Jenis Trigger Terjadi pada saat terjadi sebuah perubahan data seperti
DML pada table (INSERT, UPDATE atau DELETE)
Standarisasi (penyeragaman) proses.
Trigger dibuat satu kali dan tersimpan dalam database,
Keuntungan sehingga semua client yang menggunakan database
Penggunaan tersebut sekaligus adalah pengguna Trigger. Dengan
demikian seluruh client akan menggunakan operasi yang
Trigger sama terhadap suatu proses dalam database, karena
Trigger yang dipakai sama.
Menyederhanakan pemrograman.
Apabila Trigger sudah dibuat dalam database server,
seluruh program dalam bahasa apapun, yang mengakses
Keuntungan database tersebut akan secara otomatis menggunakan
Triger yang ada tanpa perlu membuat perintahnya dalam
Penggunaan program aplikasi.
Trigger Mudah diperbaharui.
Apabila Trigger pernah di-update dalam database server,
semua client akan menggunakan perbaruan yang terakhir
Kecepatan dan efisiensi proses.
Oleh karena Trigger disimpan dalam server dalam kode
yang sudah terkompilasi, dan dilaksanakan dalam server
sehingga lalu-lintas jaringan menjadi berkurang.
Keuntungan Memudahkan kerja secara tim.
Apabila Trigger dan Stored Procedure sudah dibuat,
Penggunaan anggota tim kerja dapat menggunakan bahasa
Trigger pemrograman yang berbeda dalam mengaksesnya,
karena Trigger disimpan dan dilaksanakan oleh server,
tanpa melihat
bahasa pemrograman apa yang dipakai oleh pengguna
database.
Trigger adalah object database yang berisi kumpulan
perintah SQL yang akan dieksekusi atau dijalankan
ketika suatu event terjadi.
Dalam satu database kita dapat mendefinisikan lebih
dari satu Trigger, asalkan nama dari masing masing
Konsep Trigger trigger berbeda.
Trigger harus berasosiasi dengan tabel tertentu
sebagai pemicu trigger untuk menentukan kapan
trigger tersebut dieksekusi.
Trigger memiliki referensi New dan OLD.
Trigger dapat mengubah nilai kolom pada tabel ini
Manfaat Trigger dapat memperoleh nilai lama dari baris data
Menggunakan yang telah dihapus atau diubah.
Trigger
Daftar event
untuk aktifasi
trigger
Sintaks :
CREATE [OR REPLACE ] TRIGGER trigger_name
{BEFORE | AFTER | INSTEAD OF }
{INSERT [OR] | UPDATE [OR] | DELETE}
[OF col_name]
ON table_name
[REFERENCING OLD AS o NEW AS n]
Trigger [FOR EACH ROW]
WHEN (condition)
DECLARE
Declaration-statements
BEGIN
Executable-statements
EXCEPTION
Exception-handling-statements
END;
Contoh Trigger
Kondisi :
Menyimpan log file yang berisi data dari baris yang telah
dihapus dari tabel Books
Syntax :
CREATE TRIGGER Books_Delete
Contoh Trigger AFTER DELETE ON Books
(Logging REFERENCING OLD ROW AS Old
Deletions) FOR EACH ROW
INSERT INTO Books_Deleted_Log
VALUES ([Link]);
Catatan :
The Trigger action harus AFTER, karena aksi Trigger
termasuk perubahan statemen SQL-data.
Merupakan hal yang lumrah untuk menggunakan alias
Contoh Trigger "Old" atau "Old_Row" untuk baris lama.
Tidak akan ada log terjadi pada statemen DELETE yang
(Logging tidak memberikan efek pada baris manapaun.
Deletions) OLD adalah alias untuk single old row, sehingga
[Link] merupakan scalar value yang didapatkan dari
TITLE Column baris lama tersebut.
Skenario :
When we add a client, we want the default value for
HOME_TELEPHONE to be the same as the
WORK_TELEPHONE number. The DEFAULT clause is no
good for cases like this, because "DEFAULT <Column
name>" is not a legal option.
Syntax :
Contoh Trigger
(Inserting default CREATE TRIGGER Clients_Insert
expressions) BEFORE INSERT ON Clients
REFERENCING NEW ROW AS New
FOR EACH ROW SET New.home_telephone =
COALESCE(New.home_telephone,New.work_telephone);
Stored Procedure adalah sebuah kelompok kode SQL
yang di simpan di katalog database dan dapat di
panggil kemudian oleh program, trigger atau bahkan
stored procedure.
Stored Sebuah Stored Procedure yang memanggil diri nya
Procedure sendiri di sebut rekursif stored procedure.
Mysql sendiri mendukung penggunaan Stored
Procedure sejak MySQL versi 5.x ke atas.
Meningkatkan performance aplikasi.
Sebuah Stored Procedure di simpan dan di compile di
katalog database yang mana dapat di eksekusi lebih
cepat di bandingkan SQL yang tidak di compile dari
kode aplikasi.
Keuntungan Mengurangi traffic antara aplikasi dan database server.
Stored Aplikasi hanya mengirim nama stored procedure untuk
mengeksekusi SQL.
Procedure Dapat di gunakan kembali dan transparent ke aplikasi
yang ingin menggunakan nya.
Aman.
Dapat mengakibatkan Database server membutuhkan
memory dan prosessor lebih tinggi.
Stored procedure hanya berisi SQL deklaratif, sehingga
sangat sulit untuk menulis sebuah procedure dengan
kompleksitas logika, seperti bahasa pemrograman
yang di gunakan untuk memprogram aplikasi.
Kerugian Stored Stored procedure tidak dapat di debug di hampir
Procedure RDBMS, termasuk MySQL.
Membutuhkan keahlian khusus untuk menulis dan me
maintain stored procedure yang tidak setiap developer
memiliki, sehingga dapat membuat ribet
Untuk membuat stored procedure pada database
digunakan pernyataan CREATE PROCEDURE.
Sintaks :
CREATE PROCEDURE sp_name ([proc_parameter[,...]])
Stored [characteristic ...] routine_body
Procedure
mysql> delimiter //
mysql> create procedure pMhsIlkom(OUT x
varchar(25))
begin
select nama into x from mahasiswa where
kode_prodi='P01';
end
//
mysql> call pMhsIlkom(@Nama);
Contoh select @Nama;
/
Procedure
Hasil Tampilan :
Dari contoh diatas terlihat bahwa parameter “x”
(sebagai OUT) digunakan untuk menampung hasil dari
perintah routine_body. Pernyataan “into x”, inilah yang
mengakibatkan “x” menyimpan informasi nama
(sebagai kolom yang ter-select).
Contoh
Untuk menjalankan procedure digunakan statemen call.
Procedure Pernyataan “call pMhsIlkom(@Nama)” menghasilkan
informasi yang kemudian disimpan pada parameter
“@Nama”. Kemudian untuk menampilkan informasi ke
layar digunakan pernyataan “select @Nama”.