membuat table & constraint di oracle

Upload: elirza-halena

Post on 06-Jul-2018

229 views

Category:

Documents


0 download

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');