CONSTRAINT groups_uk UNIQUE (num_gr,form),



CHECK (form in(‘Д ’,’З ’))

);

       Команда создает таблицу GROUPS. Столбцы –id (уникальный идентификатор), num_gr(номер группы, например, 3091), form(форма обучения, дневная (Д) или заочная (З)).

CREATE TABLE students

(id NUMBER CONSTRAINT stud_pk PRIMARY KEY,

Surname VARCHAR2 (100) not null,

Name VARCHAR2 (100) not null,

Patron VARCHAR2 (100) not null,

Gr_id number(5) not null,

CONSTRAINT stud_gr_id_fk FOREIGN KEY (gr_id)           REFERENCES groups( id) ON DELETE CASCADE

);

Команда создает таблицу STUDENTS. Столбцы –id (уникальный идентификатор), surname – фамилия, name – имя, patron – отчество студента, gr_id – внешний ключ, ссылающийся на первичный ключ таблицы GROUPS. Проще говоря, каждый студент из таблицы STUDENTS учится в какой-то группе из таблицы GROUPS. При удалении группы, удаляется и информация о всех студентах, в ней обучающихся (это только для примера, необходимости в этом нет, скорее наоборот, группу с обучающимися в ней студентами удалять не следует).

 

Изменение таблиц и ограничений

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

Добавление столбца.

ALTER TABLE таблица

ADD (столбец тип_данных [ DEFAULT выражение] [ NOT NULL]

     [, столбец тип _данных ] …);

Пример:

ALTER TABLE groups

ADD (birthday DATE );

 

Изменение столбца

ALTER TABLE таблица

MODIFY (столбец тип _данных [DEFAULT выражение ] [NOT NULL]

     [, столбец тип_данных] …);

 

Добавление ограничений

ALTER TABLE таблица

ADD [ CONSTRAINT ограничение] тип (столбец);

 

Удаление ограничений

ALTER TABLE таблица

DROP PRIMARY KEY | UNIQUE (столбец)|

       CONSTRAINT ограничение [ CASCADE];

Если используется параметр CASCADE, то одновременно удаляются и все зависимые ограничения.

 

Разрешение и запрет ограничений.

С помощью команды ALTER TABLE с предложениями ENABLE и DISABLE можно разрешать и запрещать действия ограничений, не удаляя их.

ALTER TABLE таблица

DISABLE | ENABLE CONSTRAINT ограничение [CASCADE];

Удаление таблицы

DROP TABLE таблица [CASCADE CONSTRAINTS];

Если используется параметр CASCADE CONSTRAINTS, то удаляются и все зависимые ссылочные ограничения.

 

Переименование таблицы

RENAME old_name TO new_name;

Усечение таблицы.

TRUNCATE TABLE таблица;

Это команда для удаления всех строк таблицы и освобождения памяти, отведенной под таблицу. Командой DELETE (рассматриваемой далее) также можно удалить все строки таблицы, но она не освобождает память, отведенную под таблицу.

 

Последовательности

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

Синтаксис:

 

CREATE SEQUENCE [схема.]имя_последовательности

[INCREMENT BY приращение]

[START WITH начальное_значение]

[MAXVALUE наибольшее_значение | NOMAXVALUE]

[MINVALUE наименьшее_значение | NOMINVALUE]

[CYCLE | NOCYCLE]

[CACHE число_элементов | NOCACHE]

[ORDER | NOORDER]

 

 • INCREMENT BY определяет интервал между последовательными номерами. Значением по умолчанию является 1, параметр приращения может быть любым целым

• START WITH параметром начальное_значение задает первый генерируемый номер.

• MAXVALUE параметром наибольшее_значение задает максимальное значение, которое будет генерироваться последовательностью. Отсутствие верхней границы указывается ключевым словом NOMAXVALUE, которое определяет для убывающих последовательностей значение -1, а для возрастающих последовательностей 1027.

• MINVALUE параметром наименьшее_значение задает минимальное число, которое будет генерироваться последовательностью. Отсутствие нижней границы указывается ключевым словом NOMINVALUE, которое определяет для убывающих последовательностей значение 1026, а для возрастающих последовательностей 1.

• NOCYCLE является значением, используемым по умолчанию, и означает завершение генерирования последовательности по достижении конца последовательности. Если при определении последовательности указан параметр CYCLE, то после достижения очередным членом последовательности значения наибольшее_значение (для возрастающих последовательностей) выдается значение параметра наименьшее_значение.

• CACHE указывает на использование техники кеширования, что обеспечивает более быструю генерацию элементов последовательности. число элементов определяет количество элементов области кеша, это число не должно превышать разницы между MAXVALUE и MINVALUE.

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

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

Пример создания последовательности:

CREATE SEQUENCE Seq_ Groups

При использовании последовательности:

• для выбора следующего номера - использовать вызов типа Seq_ Groups.NEXTVAL

• для выбора текущего номера - вызов тип Seq_ Groups.CURRVAL

• для выбора в переменную PL/SQL - вызов типа

SELECT Seq_Groups.CURRVAL INTO my_per FROM DUAL

где из последовательности Seq_ Groups выбирается новое значение в переменную my_per.

Псевдостолбец NEXTVAL используется для генерирования очередного номера из указанной последовательности.

Обращение имеет к NEXTVAL синтаксис:

Имя_последовательности.NEXTVAL;

 

Псевдостолбец CURVAL используется для ссылки на текущее значение последовательного номера, до ссылки на

CURVAL в текущем сеансе NEXTVAL должен быть использован хотя бы один раз.

 

Обращение к CURVAL имеет синтаксис:

Имя_последовательности.CURVAL;

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

 

Для удаления последовательности используется команда DROP SEQUENCE. Для

 

Оператор удаления последовательности имеет следующий синтаксис:

DROP SEQUENCE [схема.]имя_последовательности

 

Обработка данных.

Язык манипулирования данными (DML) является сердцем SQL. Для каждого добавления, изменения или удаления данных из базы данных выполняется команда DML. Совокупность команд DML, результаты действия которых еще не стали постоянными, называется транзакцией.

Вставка строк в таблицу.

 

INSERT INTO таблица [(столбец [, столбец…])]

VALUES (значение [, значение …])

Пример:

INSERT INTO groups

VALUES ( Seq_Groups .NEXTVAL, ’INF-13-1’,’Д ’)

или


Дата добавления: 2018-10-26; просмотров: 146; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!