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
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 :
– 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 :
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 :
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 :
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:
0 comments:
Post a Comment