Bagaimana Cara Menggunakan Check Constraint Pada Oracle

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:
  1. 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.

  2. 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

Jika Anda rasa artikel ini bermanfaat, saya sangat berterima kasih bila Anda mau membagikannya ke teman. Jangan lupa dapatkan update artikel terbaru dari Naura-Lab melalui email:

1 comments:

Kalau semisal membuat tabel email yang dimana kalau di isi harus mengandung (@) dan (.) gimana ka

Reply

Post a Comment