membuat table & constraint di oracle
TRANSCRIPT
-
8/16/2019 Membuat table & Constraint di Oracle
1/15
1
SQL MENGGUNAKAN ORACLE
STUDI KASUS : TOSERBA
BASIS DATA LANJUT
Oleh :
ELIRZA HALENA
1407121038
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS RIAU
PEKANBARU
2 0 1 6
-
8/16/2019 Membuat table & Constraint di Oracle
2/15
2
STUDI KASUS : TOSERBA
1.
RELASI TABELBerikut adalah relasi antar tabel yang akan digunakan pada studi kasus toserba ini:
2.
MEMBUAT TABEL & CONSTRAINT (Primary Key, Not Null,
Unique)
2.1 Tabel Barang
Sintak diatas adalah sintak SQL untuk membuat sebuah tabel barang
yang memiliki kolom id barang, id kategori, nama barang, harga beli, harga
jual, dan stok, dimana tiap masing-masing kolom diberi tipe data dan ukuran
masing-masing. Pada kolom id_barang ditambahkan constraint PRIMARY
CREATE TABLE barang (
id_barang varchar2 (10)CONSTRAINT id_br PRIMARY
KEY,
id_kategori number (10) NOT NULL,
nama_barang varchar2(10),harga_beli number (10),
harga_jual number (10),
stok number (4)
);
-
8/16/2019 Membuat table & Constraint di Oracle
3/15
3
KEY sehingga data di kolom tersebut tidak boleh kosong (NOT NULL) dan
juga harus bersifat unik (UNIQUE). Selanjutnya pada kolom id_kategori juga
ditambahkan constraint NOT NULL sehingga kolom tersebut tidak boleh
kosong saat pengisian data.
Berikut screenshoot pada run SQL command line :
2.2 Tabel Detail Penjualan
Sintak diatas adalah sintak SQL untuk membuat sebuah tabel detail
penjualan yang memiliki kolom id penjualan, id barang, dan jml (jumlah
penjualan barang), dimana tiap masing-masing kolom diberi tipe data dan
ukuran masing-masing.
Pada tabel ini menggunakan 2 kolom sebagai PRIMARY KEY yaitu
id_penjualan dan id_barang sehingga 2 kolom tersebut akan memiliki sifat
NOT NULL dan UNIQUE
Berikut screenshoot pada run SQL command line :
CREATE TABLE detail_penjualan (
id_penjualan varchar2 (12),
id_barang varchar2 (10),
jml number (4),
PRIMARY KEY (id_penjualan, id_barang)
);
-
8/16/2019 Membuat table & Constraint di Oracle
4/15
4
2.3 Tabel Penjualan
Sintak diatas adalah sintak SQL untuk membuat sebuah tabel penjualan
yang memiliki kolom id penjualan, dan tgl (keterangan tanggal dilakukannya
penjualan barang), dimana tiap masing-masing kolom diberi tipe data dan
ukuran masing-masing.
Pada kolom id_penjualan ditambahkan constraint PRIMARY KEY
sehingga kolom tersebut tidak boleh kosong (NOT NULL) dan juga harus
bersifat unik (UNIQUE).
Berikut screenshoot pada run SQL command line :
2.4 Tabel Detail Pembelian
Sintak diatas adalah sintak SQL untuk membuat sebuah tabel detail
pembelian yang memiliki kolom id pembelian, id barang, dan jml (jumlah
pembelian barang), dimana tiap masing-masing kolom diberi tipe data dan
ukuran masing-masing. Pada tabel ini menggunakan 2 kolom sebagai
PRIMARY KEY yaitu id_pembelian dan id_barang sehingga 2 kolom
tersebut akan memiliki sifat NOT NULL dan UNIQUE
Berikut screenshoot pada run SQL command line :
CREATE TABLE penjualan (id_penjualan varchar2(12)CONSTRAINT id_pj PRIMARYKEY,
tgl date);
CREATE TABLE detail_pembelian (id_pembelian varchar2 (12),id_barang varchar (10),jml number (4),PRIMARY KEY (id_pembelian, id_barang));
-
8/16/2019 Membuat table & Constraint di Oracle
5/15
5
2.5 Tabel Pembelian
Sintak diatas adalah sintak SQL untuk membuat sebuah tabel
pembelian yang memiliki kolom id pembelian, id_suplier dan tgl (keterangan
tanggal dilakukannya pembelian barang), dimana tiap masing-masing kolom
diberi tipe data dan ukuran masing-masing.
Pada kolom id_pembelian ditambahkan constraint PRIMARY KEY
sehingga kolom tersebut tidak boleh kosong (NOT NULL) dan juga harus
bersifat unik (UNIQUE). Selanjutnya pada kolom id_suplier juga
ditambahkan constraint NOT NULL sehingga kolom tersebut tidak boleh
kosong saat pengisian data.
Berikut screenshoot pada run SQL command line :
2.6 Tabel Kategori
Sintak diatas adalah sintak SQL untuk membuat sebuah tabel kategori
yang memiliki kolom id kategori, dan nama kategori, dimana tiap masing-
masing kolom diberi tipe data dan ukuran masing-masing.
Pada kolom id_kategori ditambahkan constraint PRIMARY KEY
sehingga kolom tersebut tidak boleh kosong (NOT NULL) dan juga harus
bersifat unik (UNIQUE).
CREATE TABLE pembelian (id_pembelian varchar(12)CONSTRAINT id_pl PRIMARY
KEY,
id_suplier number (10) NOT NULL,tgl date
);
CREATE TABLE kategori (id_kategori number(11)CONSTRAINT id_kt PRIMARY
KEY,nama_kategori varchar2(15)
);
-
8/16/2019 Membuat table & Constraint di Oracle
6/15
6
Berikut screenshoot pada run SQL command line :
2.7 Tabel Suplier
Sintak diatas adalah sintak SQL untuk membuat sebuah tabel suplier
yang memiliki kolom id suplier, nama supplier, alamat, dan no telp dari
supplier, dimana tiap masing-masing kolom diberi tipe data dan ukuran
masing-masing.
Pada kolom id_suplier ditambahkan constraint PRIMARY KEY
sehingga kolom tersebut tidak boleh kosong (NOT NULL) dan juga harus
bersifat unik (UNIQUE). Selanjutnya pada kolom no_telp juga ditambahkan
constraint UNIQUE sehingga dengan pengisian data dikolom tersebut tidak
boleh memiliki nilai yang sama.
Berikut screenshoot pada run SQL command line :
CREATE TABLE suplier (id_suplier number(10)CONSTRAINT id_sp PRIMARYKEY,
nama_suplier varchar2(15),alamat varchar2 (15),no_telp varchar2(12)UNIQUE
);
-
8/16/2019 Membuat table & Constraint di Oracle
7/15
7
3. MENAMBAHKAN FOREIGN KEY KE TABEL
Penambahan constraint Foreign Key hanya untuk tabel yang bersifat tabel child
atau tabel yang mendapat referensi dari tabel parent.
3.1
Tabel Barang Sebagai Tablechild
Penjelasan :
Sintak diatas adalah sintak untuk menambahkan foreign key ke tabel
barang. Tabel barang memiliki relasi dengan tabel kategori dan yang
merelasikan itu adalah kolom id_kategori. Tabel barang merupakan tabel child
dari tabel kategori yang sebagai tabel parent .
Sintak diatas mempunyai arti menambahkan constraint ke tabel barang
(tabel child ) yang bernama fk_barang_kategori berupa foreign key yaitu
id_kategori, dimana nilai merupakan referensi dari tabel kategori (tabel
parent ).
3.2 Tabel Detail Penjualan Sebagai Table child
ALTER TABLE barang ADD CONSTRAINT fk_barang_kategori
FOREIGN KEY (id_kategori) REFERENCES kategori
(id_kategori)ON DELETE CASCADE;
ALTER TABLE detail_penjualan ADD CONSTRAINT
fk_detailpenjualan_barang FOREIGN KEY (id_barang)
REFERENCES barang (id_barang)ON DELETE CASCADE;
ALTER TABLE detail_penjualan ADD CONSTRAINT
fk_detailpenjualan_penjualan FOREIGN KEY
(id_penjualan) REFERENCES penjualan ON DELETE
CASCADE;
-
8/16/2019 Membuat table & Constraint di Oracle
8/15
8
Penjelasan :
Tabel detail_penjualan memiliki relasi dengan tabel barang (relasi oleh
kolom id_barang) dan tabel penjualan (relasi oleh kolom id_penjualan).
Sintak pertama adalah menambahkan constraint ke tabel
detail_penjualan (tabel child ) yang bernama fk_detailpenjualan_barang
berupa foreign key yaitu id_barang, dimana nilai merupakan referensi dari
tabel barang (tabel parent ).
Sintak kedua adalah menambahkan constraint ke tabel detail_penjualan
(tabel child ) yang bernama fk_detailpenjualan_penjualan berupa foreign key
yaitu id_penjualan, dimana nilai merupakan referensi dari tabel penjualan
(tabel parent ).
3.3 Tabel Detail Pembelian Sebagai Table child
Sintak SQL :
Penjelasan :
Tabel detail_pembelian memiliki relasi dengan tabel barang (relasi oleh
kolom id_barang) dan tabel pembelian (relasi oleh kolom id_pembelian).
Sintak pertama adalah menambahkan constraint ke tabel
detail_pembelian (tabel child ) yang bernama fk_detailpembelian_barang
ALTER TABLE detail_pembelian ADD CONSTRAINT
fk_detailpembelian_barang FOREIGN KEY (id_barang)
REFERENCES barang (id_barang)ON DELETE CASCADE;
ALTER TABLE detail_pembelian ADD CONSTRAINT
fk_detailpembelian_pembelian FOREIGN KEY
(id_pembelian) REFERENCES pembelian (id_pembelian)ON DELETE CASCADE;
-
8/16/2019 Membuat table & Constraint di Oracle
9/15
9
berupa foreign key yaitu id_barang, dimana nilai merupakan referensi dari
tabel barang (tabel parent ).
Sintak kedua adalah menambahkan constraint ke tabel
detail_pembelian (tabel child ) yang bernama fk_detailpembelian_pembelian
berupa foreign key yaitu id_pembelian, dimana nilai merupakan referensi dari
tabel pembelian (tabel parent ).
3.4 Tabel Pembelian Sebagai Table child
Penjelasan :
Sintak diatas adalah sintak untuk menambahkan foreign key ke tabel
pembelian. Tabel pembelian memiliki relasi dengan tabel suplier dan yang
merelasikan itu adalah kolom id_suplier. Tabel pembelian merupakan tabel
child dari tabel suplier yang sebagai tabel parent .
Sintak diatas mempunyai arti menambahkan constraint ke tabel
pembelian (tabel child ) yang bernama fk_pembelian_suplier berupa foreign
key yaitu id_suplier, dimana nilai merupakan referensi dari tabel supplier
(tabel parent ).
ALTER TABLE pembelian ADD CONSTRAINT
fk_pembelian_suplier FOREIGN KEY (id_suplier)
REFERENCES suplier (id_suplier)ON DELETE CASCADE;
-
8/16/2019 Membuat table & Constraint di Oracle
10/15
10
4. MENAMBAHKAN CONSTRAINT : Check KE TABEL
4.1 Tabel Barang
Penjelasan :
Sintak diatas adalah sintak untuk menambahkan constraint check pada
tabel barang. Check digunakan sebagai syarat pengisian data dimana syarat
pertama adalah nilai data dari kolom harga_beli harus antara 1000 sampai
dengan 1000000, syarat kedua adalah nilai data dari kolom harga_jusl harus
antara 1500 sampai dengan 1500000, dan syarat ketiga adalah nilai data dari
kolom stok harus antara 30 sampai dengan 9999,
4.2 Tabel Detail Penjualan
Penjelasan :
ALTER TABLE barang ADD CONSTRAINT ck_barang CHECK
(harga_beli >= 1000 and harga_beli = 1500 and harga_jual = 30 and stok 0 and jml
-
8/16/2019 Membuat table & Constraint di Oracle
11/15
11
Sintak diatas adalah sintak untuk menambahkan constraint check pada
tabel detail_penjualan. Check digunakan sebagai syarat pengisian data dimana
nilai data dari kolom jml harus lebih besar dari 0 hingga batas 9999.
4.3 Tabel Detail Pembelian
Penjelasan :
Sintak diatas adalah sintak untuk menambahkan constraint check pada
tabel detail_pembelian. Check digunakan sebagai syarat pengisian data dimana
nilai data dari kolom jml harus lebih besar dari 0 hingga batas 9999.
ALTER TABLE detail_pembelian ADD CONSTRAINT ck_jml2
CHECK (jml > 0 and jml
-
8/16/2019 Membuat table & Constraint di Oracle
12/15
12
5. MENAMBAHKAN DATA KE TABEL
Untuk melakukan kemudahan pengisian data, dalam pengisian data dahulukan
untuk melakukan pengisian terhadap tabel parent karena data di table child
merupakan referensi dari tabel parent.5.1.1 Tabel Suplier
5.1.2 Tabel Pembelian
INSERT INTO suplier VALUES('1','PT.INDOFOOD','Pekanbaru','081372789405');
INSERT INTO suplier VALUES('2','PT.sejahtera','Jakarta','085278545477');
INSERT INTO suplier VALUES('3','Indogrosir','Padang','087812345432');
INSERT INTO suplier VALUES
('4','PT.Harja','Pekanbaru','081371729111');
INSERT INTO suplier VALUES('5','PT.Yogya','Duri','082134129087');
INSERT INTO pembelian VALUES ('pl1',1,'11-Apr-2016');
INSERT INTO pembelian VALUES ('pl2',2,'12-Apr-2016');
INSERT INTO pembelian VALUES ('pl3',3,'13-Apr-2016');
INSERT INTO pembelian VALUES ('pl4',4,'15-Apr-2016');
INSERT INTO pembelian VALUES ('pl5',5,'16-Apr-2016');
-
8/16/2019 Membuat table & Constraint di Oracle
13/15
13
5.1.3 Tabel Penjualan
5.1.4 Tabel Kategori
INSERT INTO penjualan VALUES ('PJ1','20-Apr-2016');
INSERT INTO penjualan VALUES ('PJ2','21-Apr-2016');
INSERT INTO penjualan VALUES ('PJ3','22-Apr-2016');
INSERT INTO penjualan VALUES ('PJ4','23-Apr-2016');
INSERT INTO penjualan VALUES ('PJ5','24-Apr-2016');
INSERT INTO kategori VALUES('11','minuman');
INSERT INTO kategori VALUES('12','makanan');
INSERT INTO kategori VALUES('13','bumbu dapur');
-
8/16/2019 Membuat table & Constraint di Oracle
14/15
14
5.1.5 Tabel Barang
5.1.6
Tabel Detail Penjualan
INSERT INTO barang VALUES
('brg1',11,'indomie','2000','3000','100');
INSERT INTO barang VALUES('brg2',11,'Roti','1500','2000','200');
INSERT INTO barang VALUES ('brg3',12,'coca-cola','5000','7000','150');
INSERT INTO barang VALUES('brg4',12,'Fanta','6500','8000','100');
INSERT INTO barang VALUES ('brg5',13,'minyakgoreng','18000','20000','250');
INSERT INTO detail_penjualan VALUES ('pj1','brg1','25');
INSERT INTO detail_penjualan VALUES('pj2','brg2','10');
INSERT INTO detail_penjualan VALUES('pj3','brg3','20');
INSERT INTO detail_penjualan VALUES('pj4','brg4','25');
INSERT INTO detail_penjualan VALUES('pj5','brg5','30');
-
8/16/2019 Membuat table & Constraint di Oracle
15/15
15
5.1.7 Tabel Detail Pembelian
INSERT INTO detail_pembelian VALUES
('pl1','brg1','40');
INSERT INTO detail_pembelian VALUES
('pl2','brg2','50');
INSERT INTO detail_pembelian VALUES
('pl3','brg3','50');
INSERT INTO detail_pembelian VALUES
('pl4','brg4','60');
INSERT INTO detail_pembelian VALUES
('pl5','brg5','100');