- •Лабораторная работа №7
- •7.1. Типы запросов данных в sql
- •7.2. Формирование запросов из тбд командным способом
- •Указание результатов выборки и источников данных
- •Указание объекта, куда пересылается выборка
- •Критерий отбора данных
- •Группирование данных
- •7.2.1.2. Сложные однотабличные и многотабличные запросы (несколько условий отбора)
- •7.3.1. Характеристика до «Конструктор запросов»
- •7.3.2. Файлы запросов на языке sql и результаты их выполнения
- •7.3.2.1. Однотабличные запросы Запрос 1: запрос по точному совпадению значения одного поля
- •7.3.Оператор select, формируемый интерактивным способом с помощью метода построения запроса qbe
- •Внимание !
- •1.Предъявляемые ниже тексты всех остальных запросов служат для проверки правильности настройки конкретного бланка запроса.
- •Запрос 3: запрос по неточному совпадению значения одного поля
- •Запрос 4: запрос с вычисляемым полем
- •Запрос 5: запрос поиск по точному совпадению значения даты
- •Самостоятельная работа
- •7.2.1.2. Многотабличные запросы
- •Сложные запросы.
- •Вложенные запросы.
- •Values (‘п6’, ‘Быков’, ‘Москва’, 30, ‘Иван’, ‘Борисович’)
- •7.6 Арифметические операции в опции where
Внимание !
1.Предъявляемые ниже тексты всех остальных запросов служат для проверки правильности настройки конкретного бланка запроса.
2.В отчете по лабораторной работе для этих запросов надо предъявлять скриншот текста запроса на фоне скриншота настройки бланка запроса и скриншот выполнения запроса.
Запрос 2: запрос по точному несовпадению значения одного поля
В таблице Poshk дать фамилии и города поставщиков, не проживающих в городе Киев.
Вся настройка, выполняемая в ДО Query Designer, такая же, как в запросе 1, но надо еще поставить флажок в поле Not.
Текст запроса по команде View SQL в окне Query2:
SELECT Poshk.nomp, Poshk.famp, Poshk.gord;
FROM ;
data1!poshk;
WHERE Poshk.gord <> ( "КИЕВ" )
Результат выполнения запроса 2 показан на рис. 7.10.
Рис. 7.10. Результат выполнения запроса 2
Запрос 3: запрос по неточному совпадению значения одного поля
Скопировать POSHK в POSHK_K. В файле POSHK_K создать дополнительные поля: firstname, lastname. Дополнить записи. Запрос: выбрать поставщиков, имена которых начинаются на "ИВА" или "Ива".
Текст запроса по команде View SQL в окне Query3:
SELECT Poshk_k.famp, Poshk_k.name, Poshk_k.lastname;
FROM ;
data1!poshk_k;
WHERE Poshk_k.famp = ( "ИВА" );
OR Poshk_k.famp = ( "Ива" )
Результат выполнения запроса 3 показан на рис. 7.11.
Рис. 7.11. Результат выполнения запроса 3
Запрос 4: запрос с вычисляемым полем
Из таблицы poshk_k выбрать: номер поставщика, его ФИО, объединив значения трех полей famp, firstname, lastname в общее значение для одного столбца с именем "ФИО". Уникальное условие запроса: функция ALLTRIM при объединении значений полей удаляет лишние концевые пробелы значения каждого поля.
Действия на вкладке Fields:
1.Выбрать поле nomp и добавить его в зону Selected Fields.
2.В строке Functions
and
Expressions
с помощью
кнопки
перейти в ДО
и ввести в нем ввести выражение:
(Alltrim(famp)+” “+ Alltrim(firstname)+” “ +Alltrim(lastname)).
3.После возврата на вкладку Fields для строки Functions and Expressions нажать кнопку Add с целью добавления сформированного выражения в зону Selected Fields.
Текст запроса по команде View SQL в окне Query4:
SELECT Poshk_k.nomp,;
ALLTRIM(Poshk_k.famp)+" "+ALLTRIM(Poshk_k.firstname)+" " +ALLTRIM(Poshk_k.lastname) AS фио;
FROM ;
data1!poshk_k
Поскольку вычисленное выражение не принадлежит базе данных, запрос надо сначала выполнить, а затем сохранять!
Результат выполнения запроса 4 показан на рис. 7.12.
Рис. 7.12. Результат выполнения запроса 4
Запрос 5: запрос поиск по точному совпадению значения даты
Выдать из ТБД POSKI всю информацию о поставках за дату 18/09/01.
Текст запроса по команде View SQL в окне Query5:
SELECT *;
FROM ;
data1!poski;
WHERE Poski.data = CTOD("18/09/01")
Результат выполнения запроса 5 показан на рис. 7.13.
Рис. 7.13. Результат выполнения запроса 5
Запрос 6: запрос поиск из ТБД POSKI по конкретным значениям двух полей:
Выдать информацию о NOMP, NOMD, NOMR при количестве поставленных деталей >=400 деталей И поставленных за дату 18/09/01.
Текст запроса по команде View SQL в окне Query6:
SELECT *;
FROM ;
data1!poski;
WHERE Poski.kolw >= ( 400 );
AND Poski.data = CTOD("18/09/01")
Результат выполнения запроса 6 показан на рис. 7.14.
Рис. 7.14. Результат выполнения запроса 6
Запрос 7: запрос на поиск из ТБД POSKI по именам двух полей с сохранением результата (получаемой таблицы) в области ОП Курсор и выводе этой таблицы из области Курсор на экран.
Действия в таблице Poski:
Выбрать все записи полей nomr, nomd.
Сохранить результат запроса в области ОП Cursor под именем Nomrd.
Вывести результат запроса (получаемую таблицу) из этой области ОП на экран с помощью команды Browse.
*Способы сохранения результата выборки не на экране:
*1. Команда Главного меню: Query - Query destination.
*2. Правой кнопкой мыши щелкнуть на пустом месте бланка запроса и выполнить команду Output Settings.
*3. В открывшемся ДО Query destination нажать кнопку Cursor и в появившемся поле Cursor nаme ввести имя получаемой таблицы Nomrd.
Текст запроса по команде View SQL в окне Query7:
SELECT Poski.nomr, Poski.nomd;
FROM ;
data1!poski;
ORDER BY Poski.nomr, Poski.nomd;
INTO CURSOR Nomrd
Для вывода получаемой таблицы Nomrd из области ОП Cursor на экран надо в окне Query7 под текстом запроса по команде ввести команду Browse (т.к. таблица Nomrd уже находится в области ОП и вызов этой таблицы из Курсора по команде SELECT Nomrd не нужен).
Результат выполнения запроса 7 показан на рис. 7.15.
Рис. 7.15. Результат выполнения запроса 7
Запрос 8: запрос на поиск из ТБД Poshk_k поставщиков с условием: найти поставщиков фамилией, начинающейся на "И".
Текст запроса по команде View SQL в окне Query8:
SELECT Poshk_k.nomp, Poshk_k.famp, Poshk_k.name, Poshk_k.lastname,;
Poshk_k.gord, Poshk_k.stat;
FROM ;
data1!poshk_k;
WHERE Poshk_k.famp = ( "И" )
Результат выполнения запроса 8 показан на рис. 7.16
Рис. 7.16. Результат выполнения запроса 8
Запрос 9: запрос на получение итоговой (статистической) информации из ТБД Poski.
Требования к запросу:
Подсчитать общее число записей, сумму и среднее значение количества поставленных деталей.
Найти максимальное и минимальное значения количества поставленных деталей и максимальное и минимальное значения даты поставок.
Сохранить получаемую таблицу в области ОП Cursor под именем "Difficult".
Вывести результат запроса (получаемую таблицу) из этой области ОП на экран с помощью команды Browse.
Текст запроса по команде View SQL в окне Query9 (сформированный СУБД и дополненный пользователем):
SELECT COUNT(*), SUM(Poski.kolw), AVG(Poski.kolw), MAX(Poski.kolw),;
MIN(Poski.kolw), MAX(Poski.data), MIN(Poski.data);
FROM ;
data1!poski;
INTO CURSOR difficult
Browse && Вписываемая пользователем команда
Результат выполнения запроса 9 показан на рис. 7.17.
Рис. 7.17. Результат выполнения запроса 9
Запрос 10: тот же запрос на получение итоговой (статистической) информации из ТБД Poski, но с переименованием заголовка и полей в результатной таблице с помощью опций команды BROWSE.
Текст запроса по команде View SQL в окне Query10:
SELECT COUNT(*), SUM(Poski.kolw), AVG(Poski.kolw), MAX(Poski.kolw),;
MIN(Poski.kolw), MAX(Poski.data), MIN(Poski.data);
FROM data1!poski;
INTO CURSOR difficult
browse;
title "Переименование заголовка и полей в результатной таблице ;
с помощью опций команды BROWSE";
FIELDS Cnt : H = "Всего записей",;
Sum_kolw : H = "Сумма всего",;
Avg_kolw : H = "Среднее кол-во",;
Max_kolw : H = "Макс. кол-во",;
Min_kolw : H = "Мин. кол-во",;
Max_data : H = "Макс. дата",;
Min_data : H = "Мин. дата"
Результат выполнения запроса 10 показан на рис. 7.17.
Рис.
7.17. Результат выполнения запроса 10
