Лабораторная работа №2

Краткая справка

Часто наряду со значениями полей таблицы, требуется узнать вычисляемую  величину — функцию данных значений. Например, для каждого из студентов  найти средний балл по всем предметам. Если в лабораторной работе №1 был запрос, для которого указывали поля   только исходной таблицы, то в этом случае в формируемом запросе нужно выделить дополнительное поле (столбец), куда будет записана новая вычисляемая переменная. В первой строке данного  столбца записывают формулу,  по которой будет производиться вычисление искомой функции, причём аргументами функции могут быть наименования полей исходной таблицы, арифметические константы, а также общепринятые обозначения стандартных математических функций. Перечень последних и синтаксис формулы зависит от разработчика СУБД, чьим выбором определяется встроенный в данную версию язык программирования. Оформив таким образом дополнительное поле запроса, мы можем наравне с традиционными полями и в соответствии с выбранным правилом(критерием),  запроса вывести его содержимое на экран.

Цель работы

Цель работы — приобретение практического опыта использования  более сложных запросов с вычисляемыми полями. Для этого во время выполнения задания Вам предстоит сформировать данный  запрос.на выборку, а также объединить его с более простым запросом из предыдущей работы.

Постановка задачи

Требуется сформировать запрос с дополнительным полем «Средний балл», значение которого представляет собой среднюю оценку студента по трём предметам, данное значение должно быть вычислено с точностью двух десятичных разрядов после запятой, список студентов со значениями среднего балла за исключением тех, кто получил хотя бы одну «2»,  должен быть выведен на экран. Для выполнения работы используйте таблицу в РБД из лабораторной работы №1.

Развёрнутое содержание работы

Откройте РБД из лабораторной работы №1 и таблицу «Студенты». Скопируйте её.

Полезное правило: работайте с копией, этим Вы обезопасите свой труд от случайностей.

Перед выполнением работы откорректируйте в используемой копии таблицы формат полей оценок по предметам - измените его так, чтобы под дробную часть было отведено достаточное число десятичных разрядов: если в СУБД семействе MSC©ACCESS для этого достаточно задать тип числа - длинное целое, а число разрядов выбрать 4, то в СУБД LibreOffice Base надо указать число разрядов 4, а число знаков после запятой 3. После данной коррекции откройте таблицу и убедитесь в том, что содержимое таблицы не изменилось. Далее включите скопированную таблицу в запрос, выберите в появившемся окне нового запроса все поля кроме счётчика («Код»), выделите столбец для дополнительного поля и в первой строке данного столбца текстовым редактором напишите выражение для среднего арифметического 3-х величин – полей предмет1, предмет2,предмет3, наименования предметов взяты из скопированной таблицы, а ограничители, используемые для  обозначения полей как переменных должны соответствовать конкретному варианту Вашей СУБД.

Уточнение 1

В СУБД семейства MSC© ACCESS ограничителями полей являются квадратные скобки,

например [Имя], а в СУБД LibreOffice Baseими служат двойные кавычки-“Имя”, но квадратные скобки также допускаются в качестве ограничителей полей. В частности, для удобства просмотра сложных выражений в конструкции запроса (опция "Изменить") программа автоматически отображает наименования полей с помощью квадратных скобок. Тем не менее при просмотре крнструкции запроса в опции "Редактировать в режиме SQL" ограничители полей отображаются двойными кавычками.

Уточнение 2

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

ROUND ((предмет1+ предмет2+предмет3)/3µ2),

 Где предмет1, предмет2,предмет3 - наименования полей, взятые в соответствующие ограничители

. а µ -условное обозначение разделителя во встроенной функции ROUND, отделяющий округляемое выражение от числа требуемых знаков после запятой; в СУБД семейства MSC© ACCESS в качестве разделителя используют символ точки с запятой, а в СУБД LibreOffice Base разделителем является символ запятой.

Уточнение 3

Задание в запросе заголовка дополнительного поля зависит от используемой СУБД.

В запросах в СУБД семейства MSC© ACCESSэтот заголовок записывают в одной ячейке перед формулой, разделяя их двоеточием.

В запросах СУБД LibreOfficeBase для этого используют ячейку на пересечении столбца  с формулой и строки «псевдоним».

         Сохраните сконструированный запрос под именем «Средний балл»  запустите его щелчком мыши и убедитесь в правильности результата.

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