Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Субд_Учебное_пособие (Бойченко, Туманова).doc
Скачиваний:
203
Добавлен:
02.03.2016
Размер:
8 Мб
Скачать
☆

2.3. Язык запросов sql

Запрос SQL – это запрос, создаваемый при помощи инструкций SQL (выражения, определяющего команду SQL, например SELECT, UPDATE или DELETE, и включающего предложения, например WHERE или ORDER BY; обычно используются в запросах и в статистических функциях). Язык SQL (Structured Query Language) используется при создании запросов, а также для обновления и управления реляционными базами данных, такими как базы данных Microsoft Access.

Когда пользователь создает запрос в режиме Конструктор запроса, Microsoft Access автоматически создает эквивалентную инструкцию SQL. Фактически, для большинства свойств запроса, доступных в окне свойств в режиме конструктора, имеются эквивалентные предложения или параметры языка SQL, доступные в режиме SQL (окна, в которых выводится инструкция SQL текущего запроса или которые используются для создания запроса SQL (запроса на объединение, запроса к серверу или управляющего запроса). При создании запроса в режиме Конструктор запросов Microsoft Access автоматически создает эквивалентную инструкцию SQL в режиме SQL. При необходимости пользователь имеет возможность просматривать и редактировать инструкции SQL в режиме SQL. После внесения изменений в запрос в режиме SQL его вид в режиме конструктора может измениться.

  1. Запрос на объединение объединяет поля из двух или нескольких таблиц или запросов в одно поле в результатах запроса. Такие запросы обычно используют для объединения данных из двух таблиц.

  2. Запросы к серверу отправляют команды непосредственно в базы данных ODBC, такие как Microsoft FoxPro, причем используются только команды, поддерживаемые сервером. Например, запрос к серверу можно использовать для загрузки записей или изменения данных. Запросы к серверу позволяют работать непосредственно с таблицами на сервере, не прибегая к их связыванию. Запросы к серверу также рекомендуется использовать для запуска сохраненных процедур на сервере ODBC.

  3. Управляющий запрос создает, удаляет или изменяет таблицы или создает индексы в таблице базы данных. Например, в следующем управляющем запросе инструкция CREATE TABLE используется для создания таблицы «Друзья». Приведенная инструкция определяет имена и типы данных для полей таблицы и создает для поля «Код» индекс, делающий это поле ключевым.

CREATE TABLE Друзья ([Код] integer, [Фамилия] text, [Имя] text, [Дата рождения] date, [Телефон] text, [Заметки] мемо, CONSTRAINT [Индекс1] PRIMARY KEY ([Код]));

  1. Подчиненный запрос представляет собой инструкцию SQL SELECT, вложенную в запрос на выборку или запрос на изменение. Чтобы определить новое поле, данную инструкцию можно ввести в строку Поле в бланке запроса. Чтобы указать для данного поля условие отбора, введите инструкцию в строку Условие отбора. Подчиненные запросы используются для следующего:

  • проверка наличия результатов подчиненного запроса (используются зарезервированные слова EXISTS или NOT EXISTS);

  • поиск значений в основном запросе, которые равны, превышают или меньше значений, возвращаемых подчиненным запросом (используются зарезервированные слова ANY, IN или ALL);

  • создания подчиненных запросов внутри подчиненных запросов (вложенные запросы).

Можно выделить несколько классов команд SQL: определения данных, манипулирования данными, управления транзакциями, управления данными (доступами к ним). Последние два класса инструкций применяются в запросах к SQL-серверам, а первые два класса – и в запросах к локальным СУБД.

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

Таблица 2.1