Скачиваний:
38
Добавлен:
29.01.2014
Размер:
81.41 Кб
Скачать

Министерство образования и науки Российской Федерации

Федеральное агенство по образованию

Саратовский государственный технический университет

Балаковский институт техники, технологии и управления

SQL: SELECT-ЗАПРОСЫ -АГРЕГИРОВАНИЕ И ГРУППОВЫЕ ФУНКЦИИ

Методические указания к выполнению лабораторной работе

по курсу «Автоматизированные информационно-управляющие системы»

для студентов специальности 2101

дневной и вечерней форм обучения

Одобрено

редакционно-издательским советом

Балаковского института техники,

технологии и управления

Балаково 2008

ЦЕЛЬ РАБОТЫ:

• научиться использовать агрегирующие и групповые функции.

• научиться выполнять упорядочение выходных полей с помощью ORDER BY.

основные понятия

Агрегирующие функции позволяют получать из таблицы сводную (агреги­рованную) информацию, выполняя операции над группой строк таблицы. Для задания в SELECT-запросе агрегирующих операций используются следующие ключевые слова:

  • count определяет количество строк или значений поля, выбранных по­средством запроса и не являющихся значениями;

  • sum вычисляет арифметическую сумму всех выбранных значений дан­ного поля;

  • avg вычисляет среднее значение для всех выбранных значений/данною поля;

  • мах вычисляет наибольшее из всех выбранных значений данного поля;

  • min вычисляет наименьшее из всех выбранных значений данного поля.

В SELECT-запросе агрегирующие функции используются, аналогично именам полей, при этом последние (имена полей) используются в качестве аргументов этих функций.

задания

Задание №1 Определить среднее значения по полю ОЦЕНКА в таблице СДАЧА ЭКЗАМЕНОВ.

Для запуска запроса нажмите кнопку Запуск на панели инструментов.

Задание №2. Подсчитать общее количество строк в каждой таблице.

Для подсчета общего количества строк следует использовать функцию COUNT со звездочкой

Аналогично, определить число строк в остальных таблицах.

Задание №3. Требуется найти максимальное количество часов по предмету. Запрос будет выглядеть следующим образом:

Предложение GROUP BY (группировать по) позволяет группировать запи­си в подмножества, определяемые значениями какого-либо поля, и применять агрегирующие функции уже не ко всем записям таблицы, а раздельно к каждой сформированной группе.

Задание №4. Выбрать группы и фамилии студентов из таблицы СТУДЕНТЫ.

В этом случае строки вначале группируются по значениям первого столбца ГРУППА, а внутри этих групп – в подгруппы по значениям второго столбца ФАМИЛИЯ.

Задание №5. Выбрать из таблицы СДАЧА ЭКЗАМЕНОВ информацию о названии предметов и среднюю оценку по каждому предмету, сгруппировав по названиям предметов.

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

Следует иметь в виду, что в предложении GROUP BY должны быть указа­ны все выбираемые столбцы, приведенные после ключевого слова SELECT, кроме столбцов, указанных в качестве аргумента в агрегирующей функции.

При необходимости часть сформированных с помощью GROUP BY групп может быть исключена с помощью предложения HAVING.

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

Задание №6. Выбрать из таблицы СДАЧА ЭКЗАМЕНОВ информацию о названии предметов и среднюю оценку по каждому предмету, сгруппировав по названиям предметов и исключив предметы, средний бал по которому меньше 4.

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

Пустые значения (Null) в агрегирующих функциях

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

Влияние NULL-значений в функции COUNT.

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

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

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

Поведение функции COUNT(*) не зависит от пустых значений. Она возвратит общее количество строк в таблице.

Влияние NULL-значений и функции AVG.

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

AVG вычисляет среднее значение всех известных значений мно­жества элементов, то есть эта функция подсчитывает сумму известных значений и делит ее на количество этих значений, а не на общее количество значений, среди которых могут быть, NULL-значения. Если столбец соcтоит только из пус­тых значении, то функция AVG также возвратит NULL.

УПОРЯДОЧЕНИЕ (СОРТИРОВКА) ВЫХОДНЫХ ПОЛей (ORDER BY)

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

Задание №7. Выбрать все данные из таблицы СТУДЕНТЫ с упорядочением по ФАМИЛИЯМ

Задание №8. Выбрать все данные из СТУДЕНТЫ с упорядочением в обратном порядке по ФАМИЛИЯМ.

Задание №9. Упорядочить, выводимые данные из таблицы СТУДЕНТЫ по группам, а внутри полученных групп - по фамилиям.

Предложение ORDER BY может использоваться с GROUP BY для упорядоче­ния гpvпп записей. При этом оператор ORDER BY в запросе всегда должен быть последним.

При упорядочении вместо наименований столбцов можно указывать их номера, имея, однако, в виду, что в данном случае это номера столбцов, указанные при определении выходных данных в запросе, а не номера столбцов в табли­це. Полем с номером 1 является первое поле, указанное в предложении ORDER BY - независимо от его расположения в таблице.

Задание №10. Выбрать из таблицы ПРЕДМЕТЫ информацию о предмете и часах, отводимые на каждый предмет, упорядочив значение часов по убыванию.

В этом запросе выводимые записи будут упорядочены по полю ЧАСЫ.

ВРЕМЯ, ОТВЕДЕННОЕ НА выполнение

ЛАБОРАТОРНОЙ РАБОТЫ

Подготовка к работе – 1,0 акад. часа

Выполнение работы – 1,0 акад. часа

Оформление работы – 0,5 акад. часа

ЛИТЕРАТУРА

  1. Золотова С.И. Практикум по Access. – М.: Финансы и статистика, 2003.

  2. Кузнецов А. Microsoft Access 2003. Русская версия. Учебный курс. – СПб.: Питер; Киев; Издательский дом BHV, 2006.

  3. Тимошок Т.В. Microsoft Office Access 2007. Самоучитель. – М.: ООО «И.Д. Вильямс», 2008.

  4. Microsoft Access 2000. Шаг за шагом: Практ. Пособ./Пер. с англ. – М.: ЭКОМ, 2000.

SQL: SELECT-ЗАПРОСЫ -АГРЕГИРОВАНИЕ И ГРУППОВЫЕ ФУНКЦИИ

Методические указания к выполнению лабораторной работы

по курсу «Автоматизированные информационно-управляющие системы»

для студентов специальности 210100

дневной и вечерней форм обучения

СОСТАВИЛИ: КАПРАЛОВА Ольга Альбертовна

ВЛАСОВ Вячеслав Викторович

Рецензент Т.Н. Скоробогатова

Редактор Л.В. Максимова

Корректор А.М. Рогачева

Подписано в печать Формат 60х84 1/16

Бумага тип. Усл.печ.л. 0,75 Уч.- изд.л. 0,75

Тираж 100 экз. Заказ Бесплатно

Саратовский государственный технический университет

410054, г. Саратов, ул. Политехническая, 77

Копипринтер БИТТиУ, 413840, г. Балаково, ул. Чапаева, 140

10

Соседние файлы в папке лабораторная работа