Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manajemen BAsis Data
Manajemen BAsis Data
View
CREATE VIEW view_name AS
Create SELECT column_name(s)
FROM table_name
WHERE condition
Update
Sintaks View
CREATE VIEW [Products Above Average Price] AS
Create SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)
AS
SELECT ProductID, ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)
Drop
Contoh View
• Database trigger adalah prosedur yang disimpan di
DBMS yang berhubungan dengan tabel yang spesifik.
Trigger
Database trigger dapat digunakan untuk melakukan:
Trigger
Event
• Perubahan database yang mengaktifkan trigger
Condition
• Query atau tes yang berjalan ketika trigger sedang dilakukan
• Bersifat opsional
Action
• Sebuah prosedur yang dieksekusi ketika trigger diaktifkan
dan persyaratannya bernilai benar
Deskripsi Trigger
CREATE [OR REPLACE] TRIGGER trigger_name
{BEFORE|AFTER} triggering_event ON table_name
[FOR EACH ROW]
[WHEN condition]
DECLARE
Declaration statements
BEGIN
Executable statements
EXCEPTION
Exception-handling statements
END;
Sintaks Trigger
CREATE TRIGGER init_count BEFORE INSERT ON Students event
DECLARE
count INTEGER;
BEGIN
count:=0; action
END
Contoh Trigger
CREATE TRIGGER init_count BEFORE INSERT ON Students
DECLARE
count INTEGER;
BEGIN STATEMENT-LEVEL
count:=0; TRIGGER
END
Contoh Trigger
• Digunakan jika action berpengaruh pada individual
change record.
• Menggunakan klausa: FOR EACH ROW
• Klausa WHEN dapat digunakan
Contoh Trigger
CREATE TRIGGER init_count BEFORE INSERT ON Students
DECLARE
count INTEGER;
FOR EACH STATEMENT STATEMENT-LEVEL
BEGIN
count:=0; TRIGGER
END
Contoh Trigger
• Procedure adalah modul yang melakukan sebuah action
atau lebih,
• Tidak perlu mengembalikan nilai
• Sebuah procedure bisa memiliki nol sd. banyak parameter
• Procedure terdiri dari dua bagian:
• Header: berisi nama procedure dan daftar parameter
• Body: semua yang tertulis setelah kata kunci IS atau AS
• Kata kunci REPLACE bersifat opsional
• Jika REPLACE tidak digunakan, saat ingin mengubah kode
dalam procedure maka procedure harus di-drop dulu
kemudian di-create ulang
Procedure
CREATE OR REPLACE PROCEDURE name [(parameter[,
parameter, ...])]
AS
[local declarations]
BEGIN
executable statements
[EXCEPTION
exception handlers]
END [name];
Eksekusi Procedure:
EXECUTE Procedure_name
Sintaks Procedure
CREATE OR REPLACE PROCEDURE Discount
AS Cursor
CURSOR c_group_discount digunakan untuk
IS melakukan
SELECT distinct s.course_no, looping
c.description
FROM section s, enrollment e, course c
WHERE s.section_id = e.section_id
AND c.course_no = s.course_no
GROUP BY s.course_no, c.description,
e.section_id, s.section_id
HAVING COUNT(*) >=8;
BEGIN
Contoh Procedure
FOR r_group_discount IN c_group_discount
LOOP
UPDATE course
SET cost = cost * .95
WHERE course_no =
r_group_discount.course_no;
DBMS_OUTPUT.PUT_LINE
('A 5% discount has been given to'||
r_group_discount.course_no||' '||
r_group_discount.description
);
END LOOP;
END; EXECUTE Discount
Function
CREATE [OR REPLACE] FUNCTION function_name
(parameter list)
RETURN datatype
IS
BEGIN
<body>
RETURN (return_value);
END;
Sintaks Function
CREATE OR REPLACE FUNCTION show_description (i_course_no number)
RETURN varchar2
AS
v_description varchar2(50);
BEGIN
SELECT description
INTO v_description
FROM course
WHERE course_no = i_course_no;
RETURN v_description;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
RETURN('The Course is not in the database');
WHEN OTHERS
THEN
RETURN('Error in running show_description');
END;
Contoh Function
SET SERVEROUTPUT ON Anonymous block
DECLARE
v_description VARCHAR2(50);
BEGIN
v_description := show_description(&sv_cnumber);
DBMS_OUTPUT.PUT_LINE(v_description);
END;
SQL statement
SELECT course_no, show_description(course_no)
FROM course;
Pemanggilan Function
Latihan
1. Buatlah view untuk menampilkan customers dengan
gaji dan usia tertentu
2. Buatlah trigger yang digunakan untuk menampilkan
data perbedaan gaji customers jika dilakukan perubahan
pada basis data
3. Buatlah fungsi yang digunakan untuk menghitung
jumlah customers
4. Buatlah procedure untuk menampilkan data customers
yang memiliki usia di atas 25 tahun
Latihan