Конспект лекций

Вид материалаКонспект
7.1.Запросы SQL
Запросы на выборку
Запросы с параметрами
Перекрестные запросы
Запросы на изменение
На удаление записи
На обновление записи
На добавление записей
На создание таблицы
7.2.Запросы на изменение
Запрос на удаление
Запрос на обновление записей
Запрос на добавление
Запрос на создание таблицы
Подобный материал:
1   ...   12   13   14   15   16   17   18   19   ...   30

7.1.Запросы SQL


Запрос SQL — это запрос, создаваемый при помощи инструкций SQL. Язык SQL (Structured Query Language) используется при создании запросов, а также для обновления и управления реляционными базами данных, такими как базы данных Microsoft Access.

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

Некоторые запросы, которые называют запросами SQL, невозможно создать в бланке запроса. Для запросов к серверу, управляющих запросов и запросов на объединение необходимо создавать инструкции SQL непосредственно в окне запроса в режиме SQL. Для подчиненного запроса пользователь должен ввести инструкцию SQL в строку Поле или Условие отбора в бланке запроса.

Запросы используются для просмотра, изменения и анализа данных различными способами. Запросы также можно использовать в качестве источников записей для форм, отчетов и страниц доступа к данным. В Microsoft Access есть несколько типов запросов.

Запросы на выборку


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

Запросы с параметрами


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

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

Перекрестные запросы


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

Запросы на изменение


Запросом на изменение называют запрос, который за одну операцию изменяет или перемещает несколько записей. Существует четыре типа запросов на изменение.
  • На удаление записи.   Запрос на удаление удаляет группу записей из одной или нескольких таблиц. Например, запрос на удаление позволяет удалить записи о товарах, поставки которых прекращены или на которые нет заказов. С помощью запроса на удаление можно удалять только всю запись, а не отдельные поля внутри нее.
  • На обновление записи.   Запрос на обновление вносит общие изменения в группу записей одной или нескольких таблиц. Например, на 10 процентов поднимаются цены на все молочные продукты или на 5 процентов увеличивается зарплата сотрудников определенной категории. Запрос на обновление записей позволяет изменять данные в существующих таблицах.
  • На добавление записей.   Запрос на добавление добавляет группу записей из одной или нескольких таблиц в конец одной или нескольких таблиц. Например, появилось несколько новых клиентов, а также база данных, содержащая сведения о них. Чтобы не вводить все данные вручную, их можно добавить в таблицу «Клиенты».
  • На создание таблицы.   Запрос на создание таблицы создает новую таблицу на основе всех или части данных из одной или нескольких таблиц. Запрос на создание таблицы полезен при создании таблицы для экспорта в другие базы данных Microsoft Access или при создания архивной таблицы, содержащей старые записи.

7.2.Запросы на изменение


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

Запрос на удаление


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

При помощи запроса на удаление можно удалить записи из одной таблицы, из нескольких таблиц с отношением «один-к-одному» или из нескольких таблиц с отношением «один-ко-многим», если разрешено каскадное удаление. Например, можно удалить всех клиентов из Твери и сделанные ими заказы. Однако, если для добавления условия требуется включить таблицу на стороне «многие» вместе с таблицей на стороне «один», запрос необходимо выполнить дважды, так как один запрос не позволяет удалить записи из главной таблицы и из связанных таблиц одновременно.

Отношение «один-ко-многим» можно различать в режиме конструктора запроса по изображению связей между таблицами. Если один конец линии связи отмечен символом «бесконечность», то это отношение «один-ко-многим». Если оба конца отмечены цифрой 1, то это отношение «один-к-одному».

Факторы, которые необходимо учитывать при выполнении запроса на удаление записей
  • При удалении записей с помощью запроса на удаление отменить операцию невозможно. Поэтому, прежде чем выполнить такой запрос, необходимо просмотреть выбранные для удаления данные. Для этого на панели инструментов нажмите кнопку Вид и просмотрите запрос в режиме таблицы.
  • Рекомендуется всегда делать резервные копии данных. Таким образом, если были удалены не те записи, их можно восстановить из резервных копий.
  • Иногда при выполнении запроса на удаление также могут быть удалены и некоторые записи из связанных таблиц, не включенных в запрос. Это случается, если в запрос включена только таблица, находящаяся на стороне «один» отношения «один-ко-многим» (Отношение «один-ко-многим». Объединение двух таблиц, в котором значению ключа каждой записи в главной таблице соответствует значение в связанном поле или полях в нескольких записях подчиненной таблицы.), и для этого отношения было установлено каскадное удаление (Каскадное удаление. Средство поддержания целостности данных в связанных таблицах, обеспечивающее удаление всех связанных записей в подчиненной таблице или таблицах при удалении записи в главной таблице.). При удалении записей из данной таблицы будут также удаляться записи из таблицы, находящейся на стороне «многие». 
  • Если запрос на удаление содержит более одной таблицы (например, запрос, удаляющий повторяющиеся записи из одной из таблиц), свойство Уникальные записи (UniqueRecords) этого запроса должно иметь значение Да.

Запрос на обновление записей


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

Запрос на добавление


Запрос на добавление добавляет группу записей из одной или нескольких таблиц в конец одной или нескольких таблиц. Например, появилось несколько новых клиентов, а также база данных, содержащая сведения о них. Чтобы не вводить все данные вручную, их можно добавить в таблицу «Клиенты». Запрос на добавление также полезен при выполнении следующих действий.
  • Добавление полей на основании условий отбора. Например, необходимо добавить имена и адреса клиентов с очень крупными заказами.
  • Добавление записей, если некоторые поля из одной таблицы не существуют в другой. Например, в учебной базе данных «Борей» таблица «Клиенты» содержит 11 полей. Пусть требуется добавить записи из другой таблицы с полями, соответствующими 9 из 11 полям таблицы «Клиенты». Запрос на добавление добавит данные в соответствующие поля и пропустит остальные.

Запрос на создание таблицы


Запрос на создание таблицы создает новую таблицу на основе всех или части данных из одной или нескольких таблиц. Запрос на создание таблицы полезен для выполнения следующих действий.
  • Создание таблицы для экспорта в другую базу данных Microsoft Access (База данных Microsoft Access. Совокупность данных и объектов, относящихся к определенной задаче. Управление данными выполняется ядром базы данных Microsoft Jet.). Например, требуется создать таблицу, содержащую несколько полей из таблицы «Сотрудники», а затем экспортировать эту таблицу в базу данных, используемую отделом кадров.
  • Создание форм, отчетов или страниц доступа к данным (Страница доступа к данным. Опубликованная с помощью Microsoft Access веб-страница, имеющая подключение к базе данных. С помощью страницы доступа к данным можно просматривать, добавлять, изменять и обрабатывать данные, хранящиеся в базе данных. Страницы доступа к данным могут также содержать данные из других источников, таких как Microsoft Excel.), отображающих данные, соответствующие указанному моменту времени. Например, 15 мая 2001 г. требуется создать страницу доступа к данным, отображающую итоговые значения продаж за первый квартал на основании данных, содержавшихся в базовых таблицах на 9:00 1 апреля 2001 г. Страница доступа к данным, основанная на запросе или инструкции SQL (Инструкция/строка SQL. Выражение, определяющее команду SQL, например SELECT, UPDATE или DELETE, и включающее предложения, например WHERE или ORDER BY. Инструкции/строки SQL обычно используются в запросах и в статистических функциях.), извлекает из таблиц последние данные (на 15 мая 2001 г.), а не данные на конкретную дату и время. Чтобы получить данные именно в том виде, который они имели на 9:00 1 апреля 2001 г., создайте запрос на создание таблицы, отбирающий данные на указанный момент времени и сохраняющий их в новой таблице. Затем используйте в качестве основы для страницы доступа к данным эту таблицу, а не запрос.
  • Автоматическое создание резервной копии таблицы с помощью макроса или программы.
  • Создание архивной таблицы, содержащей старые записи. Например, можно создать таблицу, сохраняющую все старые заказы, прежде чем удалить их из текущей таблицы «Заказы».
  • Повышение быстродействия форм, отчетов и страниц доступа к данным, основанных на многотабличных запросах или инструкциях SQL. Например, требуется вывести на печать несколько отчетов, основанных на запросе, включающем пять таблиц, в котором рассчитываются общие итоги. Чтобы ускорить процесс, сначала создайте запрос на создание таблицы, извлекающий нужные записи и сохраняющий их в одной таблице. Затем на базе этой таблицы создайте отчет или укажите ее в инструкции SQL как источник записей (Источник записей. Базовый источник данных для формы, отчета или страницы доступа к данным. В базе данных Microsoft Access источником записей может быть таблица, запрос или инструкция SQL. В проекте Microsoft Access источником записей может быть таблица, представление, инструкция SQL или сохраненная процедура.) для формы, отчета или страницы доступа к данным. Это позволит обойтись без повторных запусков запроса каждый раз, когда требуется открыть форму, отчет или страницу. Однако следует помнить, что после выполнения запроса на создание таблицы данные в этой таблице не изменяются.