Modul Pemrograman Database I
Modul Pemrograman Database I
1
PENDAHULUAN
Oracle 10g database merupakan sebuah DBMS yang berbentuk relational Object,
saat ini banyak perusahaan-perusahaan menggunakan Oracle ini karena Oracle memang
terbukti tangguh untuk pengolahan data yang sangat komplek.
SQL Statements :
INSERT
UPDATE DATA MANIPULATION LANGUAGE (DML)
DELETE
MERGE
CREATE
ALTER
DROP DATA DEFENITION LANGUAGE (DDL)
RENAME
TRUNCATE
COMMIT
ROLLBACK TRANSACTION CONTROL
SAVEPOINT
1
Pemrograman Database I Universitas Dinamika Bangsa
2
Pemrograman Database I Universitas Dinamika Bangsa
2
WRITING BASIC
SQL SELECT STATEMENTS
Perioritas : * / + -
3
Pemrograman Database I Universitas Dinamika Bangsa
Input :
7. Duplikasi Baris :
Input :
4
Pemrograman Database I Universitas Dinamika Bangsa
Input :
DESC departments
5
Pemrograman Database I Universitas Dinamika Bangsa
3
RESTRICTING and SORTING DATA
1. Mengunakan WHERE Clause :
Syntax :
Logical Conditions :
Operator Meaning
AND RETURN True if both component condition are true
OR Return True if either component condition is true
6
Pemrograman Database I Universitas Dinamika Bangsa
Rules of Precedence :
Order Evaluated Operator
1 Arithmetic operator ( * / + - )
2 Concatenation operator ( || )
3 Comparison Conditions ( = > < >= <= <> )
4 IS [NOT] NULL, LIKE, [NOT] IN
5 [NOT] BETWEEN
6 Not Logical condition
7 And Logical condition
8 Or Logical Condition
Example :
a. Contoh Pengunaan = untuk Numeric
Input :
SELECT Last_name, Department_id from employees
WHERE department_id= 41
c. Contoh Pengunaan BETWEEN
Input :
SELECT Last_name, salary FROM employees
WHERE salary BETWEEN 1500 AND 3500
d. Contoh Pengunaan IN
Input :
7
Pemrograman Database I Universitas Dinamika Bangsa
Input :
SELECT last_name, Manager_id FROM employees
WHERE manager_id IS NULL
8
Pemrograman Database I Universitas Dinamika Bangsa
Input :
SELECT Last_name, Department_id, salary, userid FROM employees
WHERE department_id= 41
OR department_id= 50
AND salary > 1400
k. Contoh Pengunaan Rules of Precedence 2
Input :
SELECT Last_name, Department_id, salary, userid FROM employess
WHERE ( department_id= 41
OR department_id= 50 )
AND salary > 1400
Input :
9
Pemrograman Database I Universitas Dinamika Bangsa
4
SINGLE-ROW FUNCTIONS
10
Pemrograman Database I Universitas Dinamika Bangsa
Can be nested
Syntax :
1. General Functions :
NVL
NVL2
NULLIF
COALSECE
CASE
DECODE
a. Case-manipulation functions
11
Pemrograman Database I Universitas Dinamika Bangsa
INITCAP converts alpha character values to uppercase for the first letter of
each word, all other letters in lowercase
Contoh 1:
Function Result
Contoh 2 :
Input :
AS “EMPLOYEE DETAILS”
FROM employees
b. Character-manipulation functions
TRIM enable you to trim heading or trailing characters (or both) from a
character string
12
Pemrograman Database I Universitas Dinamika Bangsa
Contoh 1 :
FUNCTION RESULT
SUBSTR(‘HelloWorld’,1,5) Hello
LENGTH(‘HelloWorld’) 10
INSTR(‘HelloWorld’, ‘W’) 6
LPAD(salary,10,’*’) *****24000
Contoh 2 :
Input :
FROM employees
3. Number Function
MOD(1600,300) =100
13
Pemrograman Database I Universitas Dinamika Bangsa
Contoh 1 :
Input :
FROM dual
19 94 06 07 5 10 43
Date
Time
Input :
Input :
14
Pemrograman Database I Universitas Dinamika Bangsa
C. Date Functions
Function Description
Contoh :
* LAST_DAY(’01-FEB-95’) = ’28-FEB-95’
Input :
15
Pemrograman Database I Universitas Dinamika Bangsa
Input :
From employees
9 = Represents a number
Input :
FROM employees
Output :
Syntax :
16
Pemrograman Database I Universitas Dinamika Bangsa
TO_NUMBER(char[,’format_model’])
TO_DATE(char[,’format_model’])
Example :
RR Date Format
Example :
Input :
from employees
GENERAL FUNCTION
Tehese functions work with any data type and pertain to using null value.
17
Pemrograman Database I Universitas Dinamika Bangsa
NVL Function :
NVL(commission_pct,0)
NVL(hire_date,’01-JAN-97’)
NVL(job_id,’No Job Yet)
Example :
Input :
Input :
NVL2 Function :
Input :
18
Pemrograman Database I Universitas Dinamika Bangsa
from employees
NULLIF Function :
Input :
From employees
COALESCE Function :
Input :
From employees
Order By commission_pct
Conditional Expressions :
- CASE expression
- DECODE function
Syntax :
19
Pemrograman Database I Universitas Dinamika Bangsa
ELSE else_expr]
END
Example :
Input :
FROM Employees
DECODE Function :
Facilitates conditional inquiries by doing the work of a CASE or IF-YHEN-ELSE
Statement :
Syntax :
DECODE (col / expression, search1, result1
[,search2, result2, …..]
[, default])
Input :
Select last_name, department_id, Salary,
20
Pemrograman Database I Universitas Dinamika Bangsa
21
Pemrograman Database I Universitas Dinamika Bangsa
DISPLAYING DATA
FROM MULTIPLE TABLE
Memahami Join
Salah satu fitur SQL yang paling berguna adalah kemampuan untuk mengabungkan tabel
on-the-fly dengan query-query yang mendapatkan kembali data, anda perlu memahami
dengan baik join dan syntax join, tetapi sebelum mempelajari ini anda harus terlebih
dahulu memahami tabel relasional dan rancangan database relasional.
Berikut sebuah contoh pengabungan tabel-tabel tanpa where caluse yang menyebabkan
terjadinya Cartesian Product.
Cartesian Product adalah : Hasil yang dikembalikan oleh sebuah tabel relasional
tanpa kondisi JOIN. Jumlah baris yang didapatkan kembali akan menjadi jumlah baris
dalam tabel pertama dikalikan dengan jumlah baris pada tabel kedua.
Input :
Select last_name, name
From employees, departmets
Jika dilihat dari hasil diatas terdapat 300 rows padahal didalam contoh diatas datanya
hanya sebanyak 25 rows, hal diatas terjadi karena tidak adanya Filter sehingga dalam
prosesnya komputer mengkombinasikan kedua tabel diatas.
Oracle SQL:1999
Equijoin Natural or Inner Join
Outerjoin Left Outer Join
Selfjoin Join ON
Nonequijoin Join Using
Cartesian Product Cross Join
22
Pemrograman Database I Universitas Dinamika Bangsa
Example :
Input :
Select employees.department_id, employees.last_name,departments, departments.name
From employees, Departments
Where Employees.Department_id=departments
23
Pemrograman Database I Universitas Dinamika Bangsa
(Jelas bagi kita ternyata hasilnya sama dengan yang tidak menggunakan kolom alias)
Natural Join : Kapanpun tabel digabungkan, sedikitnya ada satu kolom yang akan
muncul pada lebih dari satu tabel (kolom akan digabungkan). Penggabungan standar
mengembalikan semua data, bahkan banyak kejadian pada kolom yang sama. Natural
Join hanya mengurangi kejadian tersebut sehingga hanya satu pada setiap kolom yang
dikembalikan.
Creating Natural Joins
The NATURAL JOIN clause based on all columns in the two table that have the
same name
It select rows from the two tables that have equal values in all matched colums
If the columns having the same names have different data types, then an error is
returned
Input :
Outer Join : Kebanyakan join menghubungkan baris-baris dalam satu tabel dengan
baris-baris tabel lainnya. Tetapi kadang-kadang Anda perlu memasukkan baris yang
tidak mempunyai baris-baris yang berhubungan.
Example :
24
Pemrograman Database I Universitas Dinamika Bangsa
Input :
Select e.department_id, e.last_name,d.id,d.name
From employeese, Departments d
Where e.Department_id(+)=d.id
Hasil Bandingkan saja saat latihan
Input :
Select last_name, name
From employees
Cross join departments
6
AGGREGATING DATA
25
Pemrograman Database I Universitas Dinamika Bangsa
Pada kasus seleksi data seringkali diminta untuk menampilkan atau memilih sekumpulan
data berdasarkan kelompok data tertentu. Untuk menyelesaikan masalah tersebut, SQL
menyediakan perintah atau sintax Group By. Pada pengelompokan data biasanya
disertakan bersama Aggregate Function. Dalam hal ini implementasinya, Aggregate
Function harus diikuti group by bila terdapat field lain yang dijadikan sebagai kriteria
pengelompokkan.
General Syntax :
26
Pemrograman Database I Universitas Dinamika Bangsa
A. Penggunaan AVG
Fungsi ini digunakan untuk mencari harga rata-rata dari sekumpulan data yang ada.
B. Penggunaan COUNT( )
Fungsi ini digunakan untuk mencari cacah atau banyaknya data.
Input :
Contoh lain :
Input :
Select min(salary), max(salary), sum(salary)
27
Pemrograman Database I Universitas Dinamika Bangsa
From employees
where userid LIKE 'e%'
Bisa juga menggunakan where clause dan Group by caluse serta Having, seperti
contoh-contoh berikut :
Input :
Input :
Select department_id, Max(salary)
From employees
Group By department_id
28
Pemrograman Database I Universitas Dinamika Bangsa
From employees
Group By department_id
having max(salary) >1500
Order By department_idDesc
7
SUBQUERIES
29
Pemrograman Database I Universitas Dinamika Bangsa
Subquery adalah Query didalam query. Artinya seleksi data berdasarkan hasil seleksi data
yang telah ada. Sintax SQL nya sama syntax SQL pada umumnya, tetapi kondisi setelah
where diikuti dengan query baru atau subquery. Syntaxnya :
SELECT nama_field-1,…..,nama_field-n
FROM nama_tabel
WHERE kriteria (SELECT nama_field-1, ……., nama_field-n
FROM nama_tabel
WHERE kriteria)
Contoh :
Input :
Select Last_name, salary, department_id, manager_id
From employees
where salary =
(Select salary
From employees
Where department_id=10)
30
Pemrograman Database I Universitas Dinamika Bangsa
From employees
where salary =
(Select salary
From employees
Where department_id=10)
AND manager_id =
(Select manager_id
From employees
Where department_id=10)
Contoh Menggunakan Function dalam Subqueries:
Input :
Select last_name, Department_id, salary
31
Pemrograman Database I Universitas Dinamika Bangsa
From employees
Where salary = (Select MIN(salary)
FROM employees)
Keterangan :
Menampilkan siapa yang mempunyai gaji yang paling kecil tiap department dengan
pembanding adalah diatas dari gaji orang di department_id=43.
32
Pemrograman Database I Universitas Dinamika Bangsa
Contoh :
Input :
Select Department_id, Last_name, salary
From Employees
Where department_id=&Department_Id
Output :
Substitution Variables
Variable Value
department_id 41
OK Cancel
Variable Value
33
Pemrograman Database I Universitas Dinamika Bangsa
Nagayama
nama
OK Cancel
Variable Value
salary
column_name
salary > 1500
condition
order_column last_name
OK Cancel
9
Creating and Managing Tables
34
Pemrograman Database I Universitas Dinamika Bangsa
Sebelum membahas cara membuat tabel Anda harus mengenal terlebih dahulu tipe
data yang ada dalam Oracle. Type-type data dalam Oracle sebagai berikut :
1. CHAR(n)
Mendefenisikan string sepanjang n karakter, Bila N tidak disertakan,
panjang karakter adalah 1.
2. VARCHAR(n)
Mendefenisikan string yang panjangnya bisa berubah-ubah sesuai dengan
kebutuhan, namun string tersebut dibatasi sebanyak n karakter. Oracle
merekomendasikan varchar2.
3. VARCHAR2(n)
Mendefenisikan string yang panjangnya bisa berubah-ubah sesuai dengan
kebutuhan, namun string tersebut dibatasi sebanyak n karakter. Maksimum
karakter pada varchar2 adalah 2000 karakter.
4. LONG
Mendefenisikan tipe data binary, maksimum 2 Gygabyte, disimpan dalam
format internal Oracle.
5. LONG RAW
Sama dengan long yaitu mendefenisikan tipe data binary, maksimum 2
Gigabyte, tidak dikonversi oleh Oracle (data mentah apa adanya
6. DATE
Mendefenisikan tanggal, menyimpan tahun, bulan, hari, jam, menit dan
detik.
7. NUMBER(n,p)
Mendefenisikan angka pecahan, fixed decimal atau floating point, Nilai n
adalah jumlah bytes total dan p adalah presisi angka di belakang koma.
Type-type data lainnya :
BLOB : Binary large Object
CLOB : Character Large Object
UCLOD : Unicode Character large object / BFILE
35
Pemrograman Database I Universitas Dinamika Bangsa
CREATE TABLE :
Syntax :
CREATE TABLE nama_tabel (
Nama field ke-1 tipe data (lebar_field),
……….
……….
Nama field ke-n tipe_data (lebar_field),
);
36
Pemrograman Database I Universitas Dinamika Bangsa
Soal :
Buatlah tabel barang dengan field Kode_barang char(6), nama_barang
varchar2(25), satuan_barang varchar(20) dan stok_barang number(4), primary
key adalah kode_barang
Input :
Create table barang (
kode_barang char(6) ,
nama_barang varchar2(25),
37
Pemrograman Database I Universitas Dinamika Bangsa
satuan_barang varchar2(20),
stok_barang number(4),
constraint pk_barang primary key(kode_barang)
);
Output :
Table created.
Soal :
Buatlah table suplier dengan filed kode_suplier char(5), nama_suplier varchar2(30),
alamat_suplier varchar2(30), kota_suplier varchar(15), telepon_suplier varchar2(15)
dimana nomor telepon unique, primary key (PK) adalah field kode_suplier.
Input :
Create table suplier (
kode_suplier char(5),
nama_suplier varchar2(30),
alamat_suplier varchar2(30),
kota_suplier varchar2(15),
telepon_suplier varchar2(15) unique,
constraint pk_suplier primary key(kode_suplier)
);
Output :
Table Created.
Soal :
Buatlah table customer dengan field kode_customer char(6), nama_customer
varchar2(30), alamat_customer varchar2(30), kota_customer varchar2(15),
telepon_customer varchar2(15) unique dan primary key (PK) adalah field
kode_customer.
Input :
Create table customer (
38
Pemrograman Database I Universitas Dinamika Bangsa
kode_customer char(6),
nama_customer varchar2(30),
alamat_customer varchar2(30),
kota_customer varchar2(15),
telepon_customer varchar2(15) unique,
constraint pk_customer primary key(kode_customer)
);
Output :
Table Created.
Soal :
Buatlah table pasok dengan field kode_pasok char(10), kode_barang char(6),
kode_suplier char(5), tanggal_pasok date, jumlah_pasok number(4). Primary Key
(PK) adalah field kode_pasok, kode_barang dan kode_suplier. Foreign Key (FK)
adalah field kode_barang dan kode_suplier.
Input :
Create table pasok (
kode_pasok char(10),
kode_barang char(6),
kode_suplier char(5),
tanggal_pasok date,
jumlah_pasok number(4),
constraint pk_pasok primary key(kode_pasok,
kode_barang, kode_suplier),
constraint fk_pasok_barang foreign key(kode_barang)
references barang(kode_barang),
constraint fk_pasok_suplier foreign key(kode_suplier)
references suplier(kode_suplier)
);
Output :
Table created
39
Pemrograman Database I Universitas Dinamika Bangsa
Soal :
Buatlah table pembelian dengan field kode_pembelian char(10), kode_barang
char(6), kode customer char(6), tanggal_pembelian date, jumlah_pembelian
number(4). Primay Key adalah field kode_pembelian, kode_barang dan
kode_customer. Foreign key (FK) adalah field kode_barang dan kode_customer.
Input :
Output :
Table created.
Keterangan :
- fk_pasok_barang : foreign key tabel pasok yang mengacu pada tabel
barang
40
Pemrograman Database I Universitas Dinamika Bangsa
Untuk menampilkan struktur tabel gunakan perintah describe/desc [nama tabel], seperti
berikut ini :
1. Desc barang;
2. Desc suplier;
3. Desc customer;
41
Pemrograman Database I Universitas Dinamika Bangsa
NAMA_CUSTOMER VARCHAR2(30)
ALAMAT_CUSTOMER VARCHAR2(30)
KOTA_CUSTOMER VARCHAR2(15)
TELEPON_CUSTOMER VARCHAR2(15)
4. Desc Pasok;
5. Desc pembelian;
Keterangan :
- Ada 5 tabel masing-masing adalah tabel barang, tabel suplier, tabel
customer, tabel pasok, dan tabel pembelian. Tabel barang dan tabel
suplier dijadikan tabel acuan oleh tabel pasok. Artinya didalam tabel
pasok ada field yang berasal dari tabel barang (yaitu kode_barang) dan
ada field yang berasal dari tabel suplier (yaitu kode_suplier). Field
kode_barang (PK tabel barang) dan kode_suplier (pk tabel suplier)
menjadi foreign key/FK pada tabel pasok yang diberi nama masing-
masing fk_pasok_barang dan fk_pasok_suplier.
- Relasi yang lain adalah antara tabel barang dan tabel customer yang
dihubungkan oleh tabel relasi pembelian. Jadi tabel pembelian di sini
42
Pemrograman Database I Universitas Dinamika Bangsa
mengacu pada tabel barang dan tabel customer. Oleh karena itu maka
kode_barang (PK Tabel barang) dan kode_customer (PK tabel customer)
menjadi foreign key/FK pada tabel pembelian yang masing-masing
diberi nama fk_pembelian_barang dan fk_pembelian_customer.
Untuk tabel pasok memiliki 3 PK, yaitu kode_pasok, kode_barang, dan
kode_suplier. Sedangkan tabel pembelian memiliki 3 PK yaitu :
kode_pembelian, kode_barang dan kode_customer.
Mengubah tabel berarti mengubah struktur dari tabel tersebut. Ada beberapa
kemungkinan dalam melakukan perubahan yaitu mengubah dalam arti menghapus salah
satu atau beberapa field pada tabel tersebut atau dalam arti menambah satu atau beberapa
field pada tabel tersebut.
Syntax adalah :
Input :
Desc barang
Output :
43
Pemrograman Database I Universitas Dinamika Bangsa
Sekarang Anda diminta untuk merubah field satuan_baang dari varchar2(20) menjadi
char(5).
Caranya :
Input :
Alter table barang
Modify SATUAN_BARANG char(5)
Input :
Desc Barang
Output :
Contoh 2 :
Ubahlah tipe data untuk field stok barang dari number(4) menjadi number(2).
Input :
Alter table barang
44
Pemrograman Database I Universitas Dinamika Bangsa
Output :
Contoh 3 :
Tambahkan satu field pada tabel barang dengan ketentuan :
- nama field : keterangan
- tipe data : varchar2
- lebar data : 15
Input :
Alter table barang
Add keterangan varchar(15)
Input :
Desc Barang
Output :
45
Pemrograman Database I Universitas Dinamika Bangsa
Output :
Table altered.
Syntax :
DROP TABLE nama_table
Drop table akan berhasil jika tabel yang dihapus adalah tabel yang tidak ada relasinya
(tabel yang berdiri sendiri). Jika anda menghapus table yang punya relasi maka perintah
Drop ini tidak akan berhasil.
Sebagai contoh :
Input :
Output :
Jelas tidak bisa karena adanya reference dengan table yang lain.
Jika Anda ingin menghapus tabel tersebut maka relasinya hapus dulu, contoh disini
hapuslah table pasok dan pembelian baru setelah itu anda bisa menghapus tabel barang,
customer dan suplier yang merupakan tabel acuan atau reference.
Input :
Drop Table Pasok
46
Pemrograman Database I Universitas Dinamika Bangsa
Output :
Table dropped.
Input :
Drop Table Pembelian
Output :
Table dropped
Sehingga jika lihat tabel dengan perintah Select * from tab maka yang tinggal adalah :
Tabel barang, customer, suplier. Sekarang anda diminta untuk mencoba menghapus table
barang, customer, suplier.
Input :
Drop Table Barang
Output :
Table dropped
Input :
Drop Table customer
Output :
Table dropped
Input:
Drop table suplier
Output :
Table dropped
Sekarang Anda diminta untuk membuat kesemua tabel diatas kembali yaitu tabel barang,
suplier, customer, pembelian, pasok.
47
Pemrograman Database I Universitas Dinamika Bangsa
Contoh :
Input :
RENAME barang to brg
Output :
Table renamed.
Output :
Table truncated.
10
Manipulating Data
Pada Manipulating data ini akan dibahas beberapa hal yaitu :
48
Pemrograman Database I Universitas Dinamika Bangsa
1. INSERT
2. UPDATE
3. DELETE
4. MERGE
Ad. 1 INSERT (Memasukkan Data)
Pada prinsipnya insert bertujuan untuk mengisikan data/record ke dalam suatu tabel.
Pengisian data ini bisa satu record penuh atau hanya sebagian saja.
Syntax :
INSERT INTO nama_tabel (nama field ke-1, ………,nama field ke-n)
VALUES (nilai_field ke-1, ……..,nilai_field ke-n)
Keterangan :
- (nama field ke-1, ………, nama field ke-n) adalah nama field yang ada
pada tabel dan sifatnya opsional.
- (nilai_field ke-1, ……..,nilai_field ke-n) adalah isi dari field pada tabel
dan harus diisi.
Input :
Insert Into barang(kode_barang,nama_barang,Satuan_barang,stok_barang)
Values(‘BRG-1’,’Televisi’,’Unit’,10)
49
Pemrograman Database I Universitas Dinamika Bangsa
Output :
Selanjutnya Anda diminta untuk mengisi / menambahkan data sebagai berikut dan diisi
sekaligus.
Kode_barang : BRG-2 BRG-3 BRG-4
Nama_barang : Kulkas Tape Recorder VCD
Satuan Barang : Unit Unit Unit
Stok_barang : 10 20 20
Input :
Insert Into Barang (Kode_barang,Nama_barang,Satuan_barang,Stok_barang)
Values (‘BRG-2’,’Kulkas’,’Unit’,10);
Insert Into Barang (Kode_barang,Nama_barang,Satuan_barang,Stok_barang)
Values (‘BRG-3’,’Tape Recorder’,’Unit’,20);
Insert Into Barang (Kode_barang,Nama_barang,Satuan_barang,Stok_barang)
Values (‘BRG-4’,’VCD’,’Unit’,20);
Creating a SCRIPTS :
Anda juga bisa membuat Script sehingga bisa membuat semacam form nya, seperti
contoh berikut :
Input :
Insert Into barang
(Kode_barang,Nama_barang,Satuan_barang,Stok_barang)
Values('&Kode_barang','&Nama_barang','&Satuan_barang',&Stok_barang)
Output :
Substitution Variables
Variable Value
50
Pemrograman Database I Universitas Dinamika Bangsa
BRG-5
kode_barang
Komputer
nama_barang
satuan_barang Unit
10
stok_barang
OK Cancel
Mengcopy isi table lain ke table yang baru dibuat dengan mengambil sebagian isinya.
Misal : Sebuah tabel memiliki struktur Field A,B,C,D sedangkan Table yang baru
memiliki Struktur Field B,C,D, disini diasumsikan bahwa table yang baru isinya sama
dengan table sebelumnya maka bisa dicopy saja dengan cara sebagai berikut :
Input :
Dan disini juga bisa menggunakan Where Clause jika ada penyaringan terhadap record
yang akan dicopykan.
Syntax :
UPDATE nama_table
SET nama_field = data_baru
WHERE nama_field_kunci = Kode_kunci
51
Pemrograman Database I Universitas Dinamika Bangsa
Contoh :
Disini kita input dulu sebuah data kedalam tabel barang tetapi disengajakan untuk
ditinggalkan dan kemudian diisi ulang dengan cara UPDATE.
(Diasumsikan data sudah di input) dengan hasil sebagai berikut :
Input :
Output :
Input :
Update Barang
Set Satuan_barang=’Unit’
Where Kode_barang=’BRG-6’
Ouput :
52
Pemrograman Database I Universitas Dinamika Bangsa
6 rows selected.
Input :
Update barang
set nama_barang='AC National'
Where kode_barang='BRG-6'
Output :
KODE_B NAMA_BARANG SATUAN_BARANG STOK_BARANG
BRG-1 Televisi Unit 10
BRG-2 Kulkas Unit 10
BRG-3 Tape Recorder Unit 20
BRG-4 VCD Unit 20
BRG-5 Komputer Unit 10
BRG-6 AC National Unit 10
6 rows selected.
53
Pemrograman Database I Universitas Dinamika Bangsa
Anda tidak bisa langsung begitu saja menghapus isi sebuah tabel reference sebelum Anda
menghapus isi dari tabel yang mengacu pada tabel tersebut. Jika Anda ingin disetiap
menghapus isi tabel tidak terganggu dengan adanya reference maka bisa menambahkan
On Delete Cascade pada saat create tabel seperti contoh berikut ini : (Tabel Pasok dan
Tabel Pembelian)
Create table pasok (
kode_pasok char(10),
kode_barang char(6),
kode_suplier char(5),
tanggal_pasok date,
jumlah_pasok number(4),
constraint pk_pasok primary key(kode_pasok,
kode_barang, kode_suplier),
constraint fk_pasok_barang foreign key(kode_barang)
references barang(kode_barang) on delete cascade,
constraint fk_pasok_suplier foreign key(kode_suplier)
references suplier(kode_suplier) on delete cascade
);
54
Pemrograman Database I Universitas Dinamika Bangsa
kode_barang, kode_customer),
constraint fk_pembelian_barang foreign key(kode_barang)
references barang(kode_barang) on delete cascade,
constraint fk_pembelian_customer foreign key(kode_customer)
references customer(kode_customer) on delete cascade
);
Input :
Delete from barang
Where kode_barang='BRG-6'
Output :
Syntax :
Merge Into table_name AS table_alias
Using (table/view/sub_query) AS alias
55
Pemrograman Database I Universitas Dinamika Bangsa
ON (join condition)
WHEN MATCHED THEN
UPDATE SET
Col1 = col_vall,
Col2 = col2_val
WHEN NOT MATCHED THEN
Insert (column_list)
VALUES (column_values);
Input :
Merge Into copy_emp c
Using employeese
ON (c.department_id=e.department_id)
WHEN MATCHED THEN
UPDATE SET
c.first_name = e.first_name,
56
Pemrograman Database I Universitas Dinamika Bangsa
c.last_name = e.Last_name
WHEN NOT MATCHED THEN
Insert Values(e.first_name,e.Last_name,e.department_id)
Output :
Alexander Markarian 43
Chad Newman 43
Ben Biri 43
Radha Patel 34
Mai Nguyen 34
Andre Dumas 35
25 rows selected.
TRANSACTION CONTROL
1. COMMIT
Syntax :
COMMIT
Jika Anda melakukan Insert atau Update tetapi tidak di Commit maka
penambahan data dan perubahan data yang telah dilakukan tidak akan disimpan.
2. ROLLBACK
57
Pemrograman Database I Universitas Dinamika Bangsa
Syntax:
ROLLBACK
3. SAVEPOINT
Update barang
Where kode_barang='BRG-6';
58
Pemrograman Database I Universitas Dinamika Bangsa
Select * from barang ( lihat hasilnya , yang dirollback hanya transaksi terakhir sedangkan
yang sudah di savepoint tidak ter rollback)
Selanjuntya jika anda ingin pembuktian, ulangi perintah diatas dan jangan lakukan
savepoint dan selanjutnya lakukan rollback dan lihat hasilnya, maka anda akan melihat
bahwa yang diupdate pun di rollback.
1. GRANT
Perintah Grant digunakan untuk membuat otoritas atau hak akses terhadap
seorang user. Dalam hal ini berarti seorang user hanya diperbolehkan melakukan
transaksi selama transaksi tersebut merupakan hak dia.
Syntax
GRANT hak_akses
ON nama _tabel
TO nama_user
Keterangan :
- Hak Akses , Yaitu hak-hak yang dapat diberikan kepada seorang user,
yang meliputi :
insert
- Nama_Tabel, yaitu nama tabel yang akan diberikan kepada seorang user
untuk hak akses tertentu.
59
Pemrograman Database I Universitas Dinamika Bangsa
Penjelasan diatas adalah diperuntukkan untuk table yang ada, berikut dijelaskan hak-hak
yang bisa dilakukan seorang user tetapi sebelumnya dibahas dulu cara Create User.
Create User :
Syntax :
IDENTIFIED BY password
Contoh :
IDENTIFIED BY sunoto
Syntax :
Privileges :
60
Pemrograman Database I Universitas Dinamika Bangsa
- RESOURCE
- UNLIMITED TABLESPACE
- CONNECT
Contoh :
TO akwan
What is a Role ?
A role is a named group of related privileges that can be granted to the user. This
methods makes it easier to revoke an maintain privileges.
Syntax :
Contoh :
Syntax :
61
Pemrograman Database I Universitas Dinamika Bangsa
Contoh :
IDENTIFIED BY sunoto02
2. REVOKE
Syntax :
REVOKE hak_akses
ON Objek
[CASCADE CONSTRAINTS]
Contoh :
ON s_customer
FROM akwan
62