Constraint pada Oracle

Constraint adalah batasan atau aturan yang ada pada table. Constraint mencegah penghapusan data dari suatu table yang mempunyai keterkaitan dengan table yang lain. Misal terdapat keterkaitan antara table department dengan table pegawai. Dimana pada table pegawai menyimpan informasi kolom nomer department yang juga terdapat pada table department. Jika baris dengan nomer department ‘10’ akan dihapus dari table department, sedangkan terdapat data pegawai yang bekerja pada department tersebut, maka dengan adanya constraint antara dua table, penghapusan tersebut tidak bisa dilakukan.
Oracle menyediakan beberapa tipe constraint berikut :
NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK
Pembahasan :
– Constraint NOT NULL 
Suatu kolom yang didefinisikan dengan constraint NOT NULL tidak boleh berisi nilai NULL. Kolom yang befungsi sebagai kunci primer (primary key) otomatis tidak boleh NULL. Contoh penggunaan constarint ini :
CREATE TABLE employees(
 employee_id    NUMBER(6),
 last_name      VARCHAR2(25) NOT NULL,
 salary         NUMBER(8,2),
 commission_pct NUMBER(2,2),
– Constraint UNIQUE
Constraint UNIQUE mendefinisikan suatu kolom menjadi bersifat unik. Contoh penggunaan constarint UNIQUE :
CREATE TABLE employees(
 employee_id      NUMBER(6),
 last_name        VARCHAR2(25) NOT NULL,
 email            VARCHAR2(25),
 salary           NUMBER(8,2),
 commission_pct   NUMBER(2,2),
 hire_date        DATE NOT NULL,
...
 CONSTRAINT emp_email_uk UNIQUE(email));

– Constraint PRIMARY KEY 

Constraint PRIMARY KEY membentuk key yang unik untuk suatu table. Kolom yang didefinisikan sebagai PRIMARY KEY akan mengidentifikasi suatu baris data menjadi unik.
CREATE TABLE   departments(
 department_id           NUMBER(4),
 department_name      VARCHAR2(30)
 CONSTRAINT        dept_name_nn NOT NULL,
 manager_id               NUMBER(6),
 location_id                NUMBER(4),
 CONSTRAINT        dept_id_pk PRIMARY KEY(department_id));
– Constraint FOREIGN KEY 
FOREIGN KEY constraint didefinisikan pada suatu kolom yang ada pada suatu table, dimana kolom tersebut juga dimiliki oleh table yang lain sebagai suatu PRIMARY KEY. Contoh penggunaannya adalah :
CREATE TABLE employees(
 employee_id      NUMBER(6),
 last_name        VARCHAR2(25) NOT NULL,
 email            VARCHAR2(25),
 salary           NUMBER(8,2),
 commission_pct   NUMBER(2,2),
 hire_date        DATE NOT NULL,
...
 department_id    NUMBER(4),
 CONSTRAINT emp_dept_fk FOREIGN KEY (department_id)
 REFERENCES departments(department_id),
 CONSTRAINT emp_email_uk UNIQUE(email));
– Constraint CHECK 
Constraint CHECK digunakan untuk mendefinisikan suatu kondisi yang harus dipenuhi oleh tiap baris data dalam table. Contoh syntaxnya adalah :
ALTER TABLE order_status2 ADD CONSTRAINT order_status2_status_ck
CHECK (status IN ('PLACED', 'PENDING', 'SHIPPED'));
Selanjutnya dicoba dilakukan insert ke tabel.
INSERT INTO order_status2 (   id, status, last_modified, modified_by ) 
VALUES (  2, 'CLEARED', '01-JAN-2005', 2);
Akan keluar error,karena field status hanya boleh dimasuki oleh string PLACED,PENDING atau SHIPPED.
Sumber:
Share on Google Plus
    Blogger Comment

0 comments:

Post a Comment