Основы работы с базами данных


Отбор данных из базы с использованием SQL-запросов - часть 3


На последнем шаге 5 выберем вариант Save query and modify it in Query Designer - Сохранить запрос и модифицировать его в Конструкторе запросов, зададим путь и имя для сохранения файла запроса.

В результате на диске будет создан текстовый файл запроса с расширением *.qpr (например, query_s1.qpr), который может быть открыт как текстовый файл или в Конструкторе запросов с отображением всех условий запроса.

Как видим на рис. 6.14., в верхней половине Конструктора запросов показаны таблицы, используемые для отбора данных и связи между ними, в нижней части - присутствуют страницы для выбора полей таблиц (Fields), условий объединения (Join), отбора данных (Filter), упорядочения (Order By), группировки (Group By) и разное (Miscellaneous). Щелчок правой кнопкой мыши в окне вызовет контекстное меню, в котором можно выбрать позицию Output settings и задать тип сохранения результата отбора данных - Browse, Cursor, Table, Screen. По умолчанию используется режим Screen - данные сохраняются в курсоре (временной таблице, доступной только для чтения, автоматически уничтожающейся при завершении работы системы) и показываются на экране как Browse.

Конструктор запросов

увеличить изображение
Рис. 6.14.  Конструктор запросов

Модифицируем запрос для отбора данных только по экзаменационным оценкам за 1 семестр 2005/2006 учебного года. Для этого на странице Filter добавим новые условия: semestr = 1, val(Ocenki.ball)>1, val(Ocenki.ball)<6 и YEAR(Ocenki.data_b) = 2006 (см. рис. 6.15.).

Страница задания условий отбора данных в Конструкторе запросов

увеличить изображение
Рис. 6.15.  Страница задания условий отбора данных в Конструкторе запросов

Текст запроса на языке SQL будет выглядеть следующим образом (в контекстном меню можно воспользоваться командой View SQL):

SELECT Spisok.n_fclt, Spisok.n_grup, Spisok.fio, Ocenki.semestr,; Ocenki.n_predm, Ocenki.ball; FROM ; STUDENTS!SPISOK ; INNER JOIN STUDENTS!OCENKI ; ON Spisok.nz = Ocenki.nz; WHERE Spisok.n_fclt = 1; {для всех условий задан одинаковый } AND Ocenki.semestr = 1; {приоритет (Pri.) равный 0} AND Ocenki.n_predm = 1; AND val(Ocenki.ball) > 1; AND val(Ocenki.ball) < 6; AND YEAR(Ocenki.data_b) = 2006; ORDER BY Spisok.n_grup, Ocenki.ball DESC




Начало  Назад  Вперед



Книжный магазин