Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
Новосибирский государственный технический университет
Кафедра вычислительной техники
Отчет по дисциплине «Базы данных»
Лабораторная работа №4. Создание подзапросов.
Студенты: Абалов Н.В.
Антонов А.В.
Группа: АМ-610
Вариант: 8
Преподаватель: Трошина Г.В.
Новосибирск 2009
Изучить средства быстрого поиска информации в базе данных и получение быстрых ответов на разнообразные вопросы. Изучение конструктора запросов. Научиться создавать подзапросы любого уровня сложности, проводить различные вычисления над полями, выбираемые из таблиц, осуществлять группировку полей запроса.
Выполнить выбор записей по диапазону значений для заданной базы данных. Осуществить выборку из нескольких таблиц. Продемонстрировать приобретенные навыки построения многотабличных подзапросов. Одна таблица(минимально) должна содержать поля: факультет, идентификатор факультета в обязательном порядке, другая (минимально): курс, идентификатор факультета в обязательном порядке.
Вариант 8:
Выполнить запросы:
- вывод фамилий студентов, обучающихся в корпусах 7 и 2 и получающих стипендию от 100 до 3000 рублей, и в возрасте, больше чем средний возраст студентов 3 курса.
- вывод фамилий всех студентов, кроме студентов, обучающихся на 1,2 курсе факультетов ФЭН и РТФ, и в возрасте большем, чем средний возраст студентов 3 курса.
- выборка фамилий всех студентов 1 и 3 курса факультетов АВТ и ПМТ из Бийска и Омска, и в возрасте большем, чем средний возраст студентов 3 курса.
Исходная БД:
1.dbf
2.dbf
В результате домашней подготовки в лабораторной работе, была заполнена база данных «Студенты» в соответствии требованиям варианта.
Разработанные SQL-запросы:
1. Вывод фамилий студентов, обучающихся в корпусах 7 и 2 и получающих стипендию от 100 до 3000 рублей, и в возрасте, больше чем средний возраст студентов 3 курса.
Текст запроса:
SELECT aa.lastname, ( YEAR(DATE())-YEAR(aa.birth) ) as age, bb.fac_name, aa.stepend, (Select AVG( YEAR(DATE())-YEAR(cc.birth) ) from 1.dbf cc where cc.course=3) as Avg_Age;
FROM 1.dbf aa, 2.dbf bb;
WHERE (aa.corpuse IN(2,7)) AND (aa.stepend BETWEEN 100 AND 3000);
AND ( ( YEAR(DATE())-YEAR(aa.birth) )> (Select AVG( YEAR(DATE())-YEAR(cc.birth) ) from 1.dbf cc where cc.course=3) );
AND aa.faculty=bb.fac_id
Результат выполнения:
2. Вывод фамилий всех студентов, кроме студентов, обучающихся на 1,2 курсе факультетов ФЭН и РТФ, и в возрасте большем, чем средний возраст студентов 3 курса.
Текст запроса:
SELECT aa.lastname, aa.course, ( YEAR(DATE())-YEAR(aa.birth) ) as age, bb.fac_name, aa.stepend, (Select AVG( YEAR(DATE())-YEAR(cc.birth) ) from 1.dbf cc where cc.course=3) as Avg_Age;
FROM 1.dbf aa, 2.dbf bb;
WHERE ( ( YEAR(DATE())-YEAR(aa.birth) )> (Select AVG( YEAR(DATE())-YEAR(cc.birth) ) from 1.dbf cc where cc.course=3) );
AND ( NOT ( (aa.course IN(1,2)) AND (bb.fac_name IN("ФЭН","РТФ")) ) );
AND aa.faculty=bb.fac_id;
Результат выполнения:
3. Выборка фамилий всех студентов 1 и 3 курса факультетов АВТ и ПМТ из Бийска и Омска, и в возрасте большем, чем средний возраст студентов 3 курса.
Текст запроса:
SELECT aa.lastname, aa.course, ( YEAR(DATE())-YEAR(aa.birth) ) as age, bb.fac_name, aa.stepend, aa.city, (Select AVG( YEAR(DATE())-YEAR(cc.birth) ) from 1.dbf cc where cc.course=3) as Avg_Age;
FROM 1.dbf aa, 2.dbf bb;
WHERE ( ( YEAR(DATE())-YEAR(aa.birth) )> (Select AVG( YEAR(DATE())-YEAR(cc.birth) ) from 1.dbf cc where cc.course=3) );
AND ((aa.course IN(1,3)) AND (bb.fac_name IN("АВТ","ПМТ")));
AND (aa.city IN("Бийск","Омск"));
AND aa.faculty=bb.fac_id
Результат выполнения:
Убедившись в правильности построения запросов и правильности
их работы, данные были представлены на проверку преподавателю, после чего мы
получили индивидуальный вариант на защиту.
Выводы
В данной лабораторной работе были изучены средства Visual FoxPro 6.0 для создания запросов. Использование запросов позволяет ускорить работу с базой данных, ускорить процесс выборки данных.
Также были получены навыки создания запросов с помощью конструктора запросов.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.