
Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Саратовский государственный технический университет
Балаковский институт техники, технологии и управления
СОЗДАНИЕ ЗАПРОСОВ НА ВЫБОРКУ ПРИ ПОМОЩИ
SQL-ИНСТРУКЦИЙ В microsoft access 2007
Методические указания к выполнению лабораторной работы
по дисциплине «Автоматизированные информационно-управляющие системы»
для студентов специальности
220201.65 «Управление и информатика в технических системах»
заочной формы обучения
Одобрено
редакционно-издательским советом
Балаковского института техники,
технологии и управления
Балаково 2010
Цель работы: цель выполнения лабораторной работы заключается в изучении основ языка SQL, изучении компонент языка SQL, получении навыков по созданию простейших SQL-запросов с использованием операторов, созданию запросов в режиме SQL с использованием агрегатных функций.
ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
В середине 1980-х годов Национальный институт стандартизации США начал разрабатывать первый стандарт языка SQL, который был опубликован в 1986 г. Дальнейшие разработки были отражены в следующих версиях стандарта SQL (1989г., 1992г., 1999г., 2003г.).
SQL содержит следующие компоненты:
-
Средства администрирования данных;
-
Средства управления транзакциями;
-
Операторы определения данных DDL (Data Definition Language);
-
Операторы манипулирования данными DML (Data Manipulation Language).
Администрирование данных предполагает создание БД, предоставление прав доступа, назначение и изменение пароля и т.д.
Транзакция – это неделимая, с точки зрения воздействия на СУБД, последовательность операций манипулирования данными. Транзакция либо выполняется целиком и переводит БД из одного целостного состояния в другое целостное состояние, либо, если по каким-либо причинам одно из действий транзакции невыполнимо или произошло нарушение работы системы, БД возвращается в исходное состояние, предшествовавшее началу транзакции (происходит откат транзакции).
Операторы определения данных позволяют создать, изменить или удалить таблицу, создать индекс (средства быстрого поиска данных), организовать работу различных пользователей.
Операторы манипулирования данными позволяют добавлять, удалять или обновлять записи.
Язык запросов позволяет организовать отбор данных по указанным пользователем критериям.
При работе на локальной рабочей станции в MS Access практически не используются три первых компонента SQL. Создание базы данных, назначение пароля, добавление и удаление таблиц выполняют с помощью средств программы, которая сама следит за правильностью выполнения транзакций. Наиболее часто приходится иметь дело с манипулированием данными и запросами на выборку.
Манипулирование базами данных предполагает использование операторов UPDATE (Обновление), INSERT (Добавление) и DELETE (Удаление). Эти операторы используются для создания запросов различного типа.
Инструкция GROUP BY позволяет группировать данные. Эта команда группирует блоки данных, объединяя все записи, содержащие в полях идентичные значения, в один отдельный элемент выходного набора. При этом повторяющиеся значения будут присутствовать в выходном наборе только один раз.
После группировки данных после выполнения инструкции GROUP BY при помощи параметра HAVING отражаются все эти сгруппированные данные, которые удовлетворяют заданным в HAVING условиям. Параметр HAVING определяет критерии, используемые для того, чтобы удалить определенные группы записей из результирующего множества запроса, так же как для отдельных записей это делается в инструкции WHERE.
Параметр ORDER BY позволяет отсортировать выходные данные в заданной последовательности. Если сортировка производится по нескольким полям, то они перечисляются через запятую. Способ сортировки определяется параметром, указанным после названия поля, по которому выполняется сортировка. Если способ сортировки не указан, то выполняется сортировка по возрастанию; если следом за названием поля записан параметр DESC, то выполняется сортировка по убыванию. Сортировка может выполняться для каждого из полей, приведенных в списке параметра ORDER BY.ORDER BY не является обязательным параметром. Если этот параметр не задан, то сортировка данных не происходит, и они выводятся в той последовательности, в которой они записаны в исходной таблице.
При формировании набора данных по запросам на выборку требуется производить определенные вычисления или определенные операции по непосредственной обработке отбираемых данных. В реляционных СУБД такие возможности предоставляются агрегатными функциями SQL.
В большинстве диалектов языка SQL в состав инструкции SELECT допускается включение агрегатных функций SQL, которые осуществляют те или иные групповые вычислительные операции над отбираемыми записями Агрегатные функции позволяют получить ряд обобщающих статистических характеристик в рамках SQL – запроса, формы или отчета. В MS Access имеются следующие агрегатные функции:
-
Avg – определение среднего значения;
-
Min, Max – определение минимума, максимума;
-
Count – подсчет количества значений;
-
StDev, StDevP – определение стандартного отклонения генеральной совокупности или ее выборки, представленной в виде набора значений содержащихся в указанном поле в запросе:
StDevP - вычисляет генеральную совокупность;
StDev – осуществляет выборку генеральной совокупности.
-
Var, VarP – определение предполагаемого значения дисперсии генеральной совокупности или ее выборки, представленной в виде набора значений, содержащихся в указанном поле запроса:
Var – осуществляет выборку генеральной совокупности;
VarP - вычисляет генеральную совокупность.
-
First, Last – определение первого и последнего значений;
-
Sum – вычисляет арифметическую сумму всех выбранных значений данного поля.
В таблицах баз данных в некоторых полях могут присутствовать пустые значения – значения NULL. Наличие пустых значений накладывает некоторые особенности на использование агрегатных функций при получении статистических характеристик.
Если необходимо подсчитать количество записей в столбце таблицы при помощи функции Count, то при наличии пустых значений в данном столбце, будут подсчитаны только строки содержащие записи, к которым применимо определенное в Count условие. Если же при использовании функции Count условие не определено (например, необходимо подсчитать общее количество записей таблицы), то она подсчитает общее количество строк в таблице.
Рассмотрим механизм определения среднего значения при помощи функции Avg. Среднее значение множества чисел равно сумме чисел, входящих в множество, деленной на число элементов множества. Но если некоторые элементы пусты, деление на количество всех элементов множества приведет к неправильному результату. Функция Avg вычисляет среднее значение всех известных значений множества элементов, то есть эта функция подсчитывает сумму известных значений и делит ее на количество этих известных значений не учитывая NULL-значения.