Теория для лабораторной работы №1 - "Изучение команд DDL", страница 11

 

Ограничения на столбцы и таблицу

Ограничение {NOT} NULL

NOT NULL определяет, что столбец не может быть пустым.

NULL показывает, что столбец может быть пустым.

Если эти ограничения опущены, то по умолчанию столбец может быть пустым.

Пример.

Следующий оператор изменяет таблицу EMP и определяет и разрешает ограничение NOT NULL для столбца SAL:

ALTER TABLE emp

      MODIFY (sal  NUMBER  CONSTRAINT nn_sal NOT NULL)

 

NN_SAL показывает, что все служащие в таблице имеют зарплату.

Ограничение UNIQUE

Это ограничение определяет, что столбец является уникальным в данной таблице, т.е. нет двух строк в таблице имеющих одинаковые значения для этого столбца.

Уникальный столбец не может быть типа LONG или LONG RAW.

Пример.

Следующий пример создаёт таблицу DEPT и определяет и разрешает уникальный ключ на столбец DNAME:

CREATE TABLE dept

      (deptno  NUMBER(2),

       dname   VARCHAR2(9)  CONSTRAINT unq_dname UNIQUE,

       loc     VARCHAR2(10) )

 

Ограничение UNQ_DNAME определяет столбец DNAME как уникальный ключ.

Можно определить этот ключ другим способом через используя синтаксис ограничения таблицы:

CREATE TABLE dept

      (deptno  NUMBER(2),

        dname   VARCHAR2(9),

       loc     VARCHAR2(10),

               CONSTRAINT unq_dname

               UNIQUE (dname)

      USING INDEX PCTFREE 20

               TABLESPACE user_x

               STORAGE (INITIAL 8K  NEXT 6K) )

Здесь также используется опция USING INDEX для задания памяти для индекса.

Композиция уникальных ключей

Композиция уникальных ключей делает уникальным комбинацию значений нескольких столбцов. Композиционный уникальный ключ может содержать до 16 столбцов. Для задания композиции ключей необходимо использовать синтаксис ограничений на всю таблицу.

Пример.

Пусть имеется таблица DSS, содержащая 2 столбца d1 и d2 целого типа. Создание уникальной композиции этих двух столбцов реализуется следующим оператором: