Ограничения уникальности. Значения поля (или набора полей) должны быть уникальными в рамках таблицы. В отличии от первичного ключа unique constraints позволяют вставлять значения null, а также у таблицы может быть несколько unique constraints.
Создадим таблицу студентов
create table test_students(student_id number, student_ticket_number varchar2(20), passport_series varchar2(20), passport_number varchar2(20));
Создадим 2 ограничения уникальности на эту таблицу. Опция "using index" позволяет одновременно проиндексировать поля, на которые накладывается констрейнт.
alter table test_students add constraint uc_test_students1 unique (student_ticket_number) using index;
alter table test_students add constraint uc_test_students2 unique (passport_series, passport_number) using index;
Вставим данные:
SQL> insert into test_students(student_id, student_ticket_number, passport_series, passport_number) values(1, '29740497', '28 02', '485892');
1 row inserted
SQL> insert into test_students(student_id, student_ticket_number, passport_series, passport_number) values(2, '29723789', '28 02', '623784');
1 row inserted
SQL> insert into test_students(student_id, student_ticket_number, passport_series, passport_number) values(3, '29740497', '28 02', '485892');
ORA-00001: unique constraint (STORAGE.UC_TEST_STUDENTS1) violated
SQL> insert into test_students(student_id, student_ticket_number, passport_series, passport_number) values(4, '29719109', '28 02', '623784');
ORA-00001: unique constraint (STORAGE.UC_TEST_STUDENTS2) violated
Констрейнты можно выключать (DISABLE), включать обратно (ENABLE), можно совсем удалять (DROP):
alter table test_students disable constraint uc_test_students1;
alter table test_students enable constraint uc_test_students1;
alter table test_students drop constraint uc_test_students1;