Apa itu Check Constraint?
Check constraint digunakan untuk memvalidasi data yang masuk apakah sesuai dengan kondisi yang telah ditentukan atau tidak. Check constraint selalu bernilai true atau false. Jika bernilai true artinya data boleh dimasukkan, sedangkan bila bernilai false data ditolak.Misalkan, sebuah kolom Gender di table Pegawai mempunyai constraint Check yaitu hanya boleh diisi oleh karakter 'L' untuk laki-laki, dan 'P' untuk perempuan, maka ketika ada data yang tidak sesuai selain 'L' dan 'P', maka akan ditolak.
Ketika Anda mencoba untuk memasukkan data yang tidak sesuai dengan kondisi pada Check constraint, maka akan keluar error message "ORA-02290: check constraint xxx violated".
Mendefiniskan Constraint
Ketika Anda membuat sebuah table, Anda dapat langsung mendefinisikan Check constraint dengan dua cara, yaitu:- Mendefinisikan Check constraint pada level kolom/field.
Anda dapat langsung memberikan Check constraint dengan menambahkan langsung pada atribut di kolom atau field. Sintaknya adalah sebagai berikut:
SQL> CREATE TABLE nama_table( nama_kolom tipe_data[(size)] [ NULL | NOT NULL ] CHECK (nama_kolom kondisi), nama_kolom tipe_data[(size)] [ NULL | NOT NULL ] CHECK (nama_kolom kondisi), .... );
Contoh:
SQL> CREATE TABLE pegawai( 2 kode_pegawai VARCHAR2(5) NOT NULL, 3 nama_pegawai VARCHAR2(40) NOT NULL, 4 gender CHAR(1) NOT NULL CHECK(gender IN('L','P')), 5 department VARCHAR2(40) NOT NULL CHECK(department = 'IT')); Table created.
Keterangan:
- Data yang masuk pada kolom gender hanya boleh data karakter 'L' atau 'P'
- Data yang masuk pada kolom department hanya boleh department 'IT'
- Ketika anda tidak memberikan nama pada constraint Check, secara default Oracle akan memberikan nama Check constraint dengan nama SYS_C0xxx.
- Mendefinisikan Check constraint pada level table
Anda dapat mendefinisikan Check constraint pada level table dengan menggunakan perintah dibawah ini:
SQL> CREATE TABLE nama_table( nama_kolom tipe_data[(size)] [ NULL | NOT NULL ], nama_kolom tipe_data[(size)] [ NULL | NOT NULL ], ..., CHECK ( nama_kolom kondisi), CHECK ( nama_kolom kondisi), ... );
Contoh:
SQL> CREATE TABLE pegawai( 2 kode_pegawai VARCHAR2(5) NOT NULL, 3 nama_pegawai VARCHAR2(40) NOT NULL, 4 gender CHAR(1), 5 department VARCHAR2(40), 6 CHECK(gender IN('L','P')), 7 CHECK(department = 'IT') 8 ); Table created.
Menambahkan Check Constraint dengan Alter Table
Check constraint tidak hanya Anda buat ketika membuat sebuah table. Anda juga bisa membuat Check constraint setelah table selesai dibuat. Tujuannya adalah ketika Anda lupa untuk memberikan Check constraint pada table.Anda dapat menambahkan Check constraint dengan perintah "ALTER TABLE ADD CONSTRAINT". Sintaknya adalah sebagai berikut:
SQL> ALTER TABLE nama_table ADD CONSTRAINT nama_constraint CHECK(nama_kolom kondisi);
Contoh:
SQL> ALTER TABLE pegawai ADD CONSTRAINT check_gender CHECK(gender IN('L','P'));
Menampilkan Check Constraint
Anda dapat menampilkan daftar Check constraint pada suatu table dengan menggunakan query dibawah ini:SQL> SELECT constraint_name, constraint_type 2 FROM all_constraints 3 WHERE table_name = 'PEGAWAI' 4 AND constraint_type = 'C'; CONSTRAINT_NAME C ------------------------------ - SYS_C0053561 C SYS_C0053562 C SYS_C0053563 C SYS_C0053564 C
Keterangan:
- table_name = 'PEGAWAI' adalah nama table dimana Check constraint dibuat. Nama table harus huruf kapital.
- constraint_type = 'C', adalah tipe dari Check constraint.
Menghapus Constraint Dengan Alter Table
Anda dapat menghapus Check constraint pada suatu table dengan menggunakan perintah dibawah ini:SQL> ALTER TABLE nama_table DROP CONSTRAINT nama_constraint;
Contoh:
SQL> ALTER TABLE pegawai 2 DROP CONSTRAINT SYS_C0053564; Table altered.
Referensi
Sekian tutorial Bagaimana Cara Menggunakan Check Constraint di Oracle. Semoga bermanfaat & Selamat Belajar database Oracle.
Jika Anda menyukai tutorial ini, silahkan anda share dan bagikan dengan teman-teman Anda, dan jika Anda ingin berdiskusi tentang judul tutorial diatas, atau pun mau bertanya tentang tutorial ini silahkan Anda untuk menggunakan fasilitas komentar untuk berdiskusi dan bertanya di blog ini.
Salam,
Naura-Lab
1 comments:
Kalau semisal membuat tabel email yang dimana kalau di isi harus mengandung (@) dan (.) gimana ka
ReplyPost a Comment