Apa yang bukan batasan Null di Oracle
Batasan Not Null di Oracle digunakan untuk menegakkan nilai bukan null di kolom dalam tabel. Jadi jika Anda mencoba memasukkan null ke dalam kolom itu, itu akan menimbulkan kesalahan.
Cara membuat batasan bukan nol
Batasan bukan nol ditentukan pada pembuatan tabel atau Anda dapat memodifikasi tabel, nanti, agar kolom diubah menjadi Bukan nol. Mari kita lihat contohnya.
Pembuatan tabel
Bukan batasan nol yang ditentukan sebaris dengan kolom.
SQL> CREATE TABLE "EMP" ("EMPNO" NUMBER(4,0) Not Null, "ENAME" VARCHAR2(10) Not null, "JOB" VARCHAR2(9), "MGR" NUMBER(4,0), "HIREDATE" DATE, "SAL" NUMBER(7,2) , "COMM" NUMBER(7,2), "DEPTNO" NUMBER(2,0) ); Table created.
Di sini kita telah mendefinisikan dua batasan bukan nol pada tabel emp. Kita dapat memeriksa batasan Not null pada tabel menggunakan kueri di bawah ini
SQL> column CONSTRAINT_NAME format a20 SQL> column SEARCH_CONDITION format a50 SQL> SELECT Constraint_name, Search_condition FROM User_constraints WHERE Table_name = 'EMP' AND Constraint_type = 'C';
Batasan Not Null juga didefinisikan sebagai batasan pemeriksaan dan memiliki kondisi pencarian sebagai nama kolom bukan null
Menambahkan Bukan kendala setelah pembuatan tabel
Kita dapat memodifikasi tabel untuk menambahkan batasan bukan nol
SQL> alter table emp modify ("HIREDATE" not null); Table altered.
Jika kita memiliki data null di kolom yang ada maka pernyataan ini akan gagal
SQL> SELECT Constraint_name, Search_condition FROM User_constraints WHERE Table_name = 'EMP' AND Constraint_type = 'C'
Kami juga dapat memberikan nama khusus pada batasan Not Null. Berikut adalah contoh untuk mendemonstrasikannya
SQL> CREATE TABLE "EMP" ("EMPNO" NUMBER(4,0) Constraint EMP_NOTNULL Not Null, "ENAME" VARCHAR2(10) Not null, "JOB" VARCHAR2(9), "MGR" NUMBER(4,0), "HIREDATE" DATE, "SAL" NUMBER(7,2) , "COMM" NUMBER(7,2), "DEPTNO" NUMBER(2,0) ); Table created. SQL> column CONSTRAINT_NAME format a20 SQL> column SEARCH_CONDITION format a50 SQL> SELECT Constraint_name, Search_condition FROM User_constraints WHERE Table_name = 'EMP' AND Constraint_type = 'C';
SQL> alter table emp modify ("HIREDATE" Constraint H_NOTNULL Not Null); Table altered. SQL> SELECT Constraint_name, Search_condition FROM User_constraints WHERE Table_name = 'EMP' AND Constraint_type = 'C';
Cara menghilangkan batasan Not Null
Kita perlu memodifikasi kolom untuk menerima nilai null
SQL>alter table emp modify "HIREDATE" Null; Table altered. SQL> SELECT Constraint_name, Search_condition FROM User_constraints WHERE Table_name = 'EMP' AND Constraint_type = 'C';
Kita dapat menghapus batasan not null menggunakan perintah alter table drop constraint juga
SQL> alter table emp drop constraint EMP_NOTNULL ; Table altered; SQL> SELECT Constraint_name, Search_condition FROM User_constraints WHERE Table_name = 'EMP' AND Constraint_type = 'C';
Cara menambahkan batasan not null pada kolom yang berisi nilai null
Jika Anda mencoba menambahkan batasan bukan nol pada kolom yang berisi nilai nol, maka perintah itu akan gagal karena akan memvalidasi semua baris semua baris yang ada untuk batasan bukan nol. Terkadang kami ingin mempertahankan nilai nol yang ada dan memeriksa baris berikutnya yang berisi nilai bukan nol untuk kolom ini, kemudian, dalam kasus itu, kami dapat mengaktifkan batasan dengan klausa novalidate. Dengan klausa ini, itu tidak akan memeriksa baris yang ada, tetapi baris yang akan datang akan diperiksa
alter table emp modify "HIREDATE" not Null novalidate;
Baca Juga
lepaskan kunci utama oracle
Kunci asing di oracle
Konstrain Kunci Unik di Oracle
cara memeriksa semua batasan pada tabel di oracle
oracle mengubah tabel memodifikasi tipe kolom
https://docs.Oracle.com/cd/B28359_01/server.111/b28310/general005.htm#ADMIN11554