Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информационное обеспечение3.Х.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
806.75 Кб
Скачать
    1. Выбор данных из базы – источник данных запрос

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

    1. Управление структурой базы данных

      1. Типы команд управления структурой

В SQL языке определены три типа команд, которые служат для управления всеми объектами структуры базы данных:

  • CREATE – команда создания объекта;

  • ALTER – изменение объекта;

  • DROP – удаление объекта.

После команды следует ключевое слово, указывающее на тип обрабатываемого объекта:

  • TABLE– таблица;

  • TRIGGER – триггер;

  • VIEW – представление;

  • и т.д.

Далее следует часть, зависимая от команды и типа объекта.

      1. Типы объектов структуры

Основным объектом структуры базы данных является таблица. Следующими по важности объектами являются ключи: первичные, внешние, возможные. Как и все объекты, они могут управляться отдельными командами, но чаще всего эти объекты управляются в рамках команд управления таблицами, что будет показано ниже.

В рамках пособия будут рассмотрены два вспомогательных объекта: представление и триггер.

Представление – это виртуальная таблица, предоставляющая данные одной или более таблиц альтернативным способом. Более узко представление можно определить как, сохраненная в базе команда SELECT, к результатам которой можно обращаться как к таблице из других запросов по имени представления. В действительности представления могут служить не только для предоставления, но и для изменения данных в таблицах, на основе которых формируется представление. Далее будет рассмотрен упрощенный синтаксис команд управления представлениями только с учетом функции предоставления данных.

Триггер – это SQL-команда, выполнение которой инициируется при манипулировании данными таблицы. Каждая из операций над данными таблицы (добавление новой строки, изменения и удаление имеющейся) может сопровождаться вызовом триггера. При этом различают триггеры, вызываемые вместо и после выполнения операции. В команде триггера имеется доступ к старым и новым значениям атрибутов записи. Если триггер вызывается вместо выполняемой операции, то в SQL-команде необходимо в явном виде указать операцию еще раз, при этом имеется возможность переопределить новые значения атрибутов. При вызове команды манипулирования данными из триггера повторное срабатывание триггера блокируется – рекурсивный вызов запрещен. Команда триггера представляет собой SQL-команду, в том числе и составную команду.

      1. Создание таблицы

Для создания таблицы применяется команда CREATE TABLE. Формат команды зависит от конкретной системы управления базой данных. Однако, отличия касаются в первую очередь дополнительных модификаторов полей, базовый синтаксис поддерживается всеми системами управления базами данных.

Формат команды

CREATE TABLE имя_таблицы ( столбец тип_данных [ DEFAULT значение_по_умолчанию ] [ [ CONSTRAINT имя_ограничения ] ограничение_поля ] [, столбец тип_данных [ DEFAULT значение_по_умолчанию ] [ [ CONSTRAINT имя_ограничения ] ограничение_поля ] ] ... [, [CONSTRAINT имя_ограничения] ограничение_таблицы ] ... );

Для каждого столбца обязательно определяется его имя, тип данных, хранящихся в столбце. Остальные модификаторы являются не обязательными. Значение по умолчанию позволяет задать значение, которое присваивается полю при вводе строки (INSERT), если значение явно не указанно.

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

[ NULL | NOT NULL ]

| [ { PRIMARY KEY | UNIQUE }]

| [ [ FOREIGN KEY ] REFERENCES родительская_таблица [(поле_родительской_таблицы) ]]

Первое из трех ограничений определяет возможность задания полю неопределенного значения.

Два других ограничения связаны с понятием ключа. Первое из них – ограничение первичного ключа или задание возможного первичного ключа (UNIQUE). Второе задает ограничение внешнего ключа. Задается имя и поле родительской таблицы (первичный ключ).

Если ограничение поля не задано, то это эквивалентно указанию ограничения NULL, т.е. возможность задания неопределенного значения.

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

{ PRIMARY KEY | UNIQUE }

( поле_таблицы [, поле_таблицы[,..]] )

| FOREIGN KEY

( поле_таблицы [, поле_таблицы[,..]] )

REFERENCES родительская_таблица [ (поле_родительской_таблицы [поле_родительской_таблицы ,...] )

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