0% menganggap dokumen ini bermanfaat (0 suara)
58 tayangan

05 Database Language

Bahasa basis data umumnya dapat ditempelkan ke bahasa pemrograman lain dan digunakan untuk mendefinisikan skema basis data, manipulasi data, serta mengendalikan struktur internal basis data.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
58 tayangan

05 Database Language

Bahasa basis data umumnya dapat ditempelkan ke bahasa pemrograman lain dan digunakan untuk mendefinisikan skema basis data, manipulasi data, serta mengendalikan struktur internal basis data.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 86

Bahasa Basis Data (Database

Language)
Cempaka Ananggadipa Swastyastu S.Kom 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 (Old.title);
 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


OLD.TITLE 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”.

Anda mungkin juga menyukai