Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СУБД Oracle / Лекции / Лек_ORAC / L2 / Лекция 2.doc
Скачиваний:
39
Добавлен:
16.04.2013
Размер:
75.26 Кб
Скачать

Создание ограничений

ALTER TABLE table-name MODIFY (column-name constraint [,column-name constraint] [,…])

Отметим, что «UNIQUE» и «PRIMARY KEY» - это почти одно и то же, в обоих случаях автоматически создаётся индекс.

Пример:

CREATE TABLE DEPT (

deptno NUMBER(2) NOT_NULL,

dname VARCHAR2(14),

CONSTRAINT dept_primary_key PRIMARY KEY (DEPTNO));

CREATE TABLE EMP (

empno NUMBER(4) NOT NULL,

ename VARCHAR2(10),

mgr NUMBER(4) CONSTRAINT emp_self_key REFERENCES EMP(EMPNO),

cur_emp VARCHAR2(1) CHECK (cur_emp IN (‘Y’,’N’)),

deptno NUMBER(2) NOT_NULL,

CONSTRAINT emp_foreign_key FOREIGN KEY (DEPTNO) REFERENCES DEPT(DEPTNO),

CONSTRAINT emp_primary_key PRIMARY KEY (EMPNO) );

Посмотреть имеющиеся ограничения можно, можно используя представление USER_CONSTRAINT в словаре системы.

Представление USER_CONS_COLUMNS показывает перечень столбцов, на которых заданы ограничения, а представление USER_INDEXES показывает, какие уникальные индексы созданы для первичных ключей.

Бывает, что ограничения препятствуют вводу данных и их нужно временно отменить оператором:

ALTER TABLE table_name DISABLE CONSTRAINT имя_ограничения [CASCADE]

а затем можно снова включить его оператором:

ALTER TABLE table_name ENABLE CONSTRAINT имя_ограничения

Полное уничтожение ограничения осуществляется:

DROP CONSTRAINT имя_ограничения

По умолчанию строка в родительской таблице не удаляется, если в дочерних таблицах есть связи с этой строкой. Для сохранения ссылочной целостности, удалить такую строку можно только вместе со связанными строками, используя опцию «CASCADE ON DELETE».

Табличные пространства

CREATE TABLESPACE tablespace-name DATAFILE ‘имяфайласполнымпутём’ SIZE n byte/K/M DEFAULT STORAGE (INITIAL nK, NEXT nK, MINEXTENTS n, MAXEXTENTS n) ONLINE;

рисунок

При создании таблиц и индексов можно отнести их в конкретные табличные пространства:

CREATE TABLE table-name (column-name type [constraint] [,column-name type [constraint]] [,…]) [TABLESPACE tablespace-name] [STORAGE параметры]

CREATE [UNIQUE] INDEX index-name ON TABLE table-name (column-name [,column-name] [,…]) [TABLESPACE tablespace-name] [STORAGE параметры]

Посмотреть параметры относящиеся к таблицам, можно в словаре, где есть представление USER_TABLES:

SQL> DESC USER_TABLES

В этом представлении очень много полей, где хранится информация «по умолчанию». Некоторые значения:

Имя поля

default

Описание

PCT_FREE

10

Объем свободного пространства, которое должно быть зарезервировано в блоке на случай применения к строкам операторов UPDATE, которые заполнят поля NULL или увеличат размеры существующих полей типа VARCHAR

PCT_USED

40

Процентная доля свободного места, освободившегося в блоке после удаления строк с помощью DELETE, по достижении которой блок снова может применяться для добавления или обновления данных

INITIAL_EXTENT

10240

Размер первоначального экстента (в блоках) при создании таблицы

NEXT_EXTENT

10240

Размер дополнительного экстента

MIN_EXTENTS

1

Количество первоначальных экстентов при создании таблицы

MAX_EXTENTS

121

Предельное число экстентов для таблицы

При создании таблицы, вместо параметра MAX_EXTENTS часто применяется конструкция UNLIMITED EXTENTS

Посмотреть параметры табличных пространств БД, можно в представлениях DBA_TABLESPACES и DBA_DATA_FILES, но только пользователю с именем “SYSTEM”.

Соседние файлы в папке L2
  • #
    16.04.20133.57 Кб37DEMOBLD.SQL
  • #
    16.04.20132.05 Кб36INSTALL_sales_tracking_database.sql
  • #
    16.04.201310.14 Кб36INSTALL_sales_tracking_objects.sql
  • #
    16.04.201375.26 Кб39Лекция 2.doc
  • #
    16.04.2013200.7 Кб37Рис2.doc