Министерство образования и науки РФ
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
Новосибирский государственный технический университет
«Создание подзапросов»
Студенты: Глухова А.А
Белоусов М.Ю.
Ряшинцев А.С.
Преподаватель: Трошина Г.В.
Факультет: АВТ
Группа: АМ-610
Вариант: 7
Цель работы: Изучить средства быстрого поиска информации в базе данных и получение ответов на разнообразные запросы в среде FoxPro. Изучение конструктора запросов FoxPro. Научиться создавать запросы любого уровня сложности, производить различные вычисления над полями, выбираемыми из таблиц.
Индивидуальное задание: Выполнить запросы: вывод фамилий всех студентов, получивших 5 и 4 за экзамены, и в возрасте больше, чем средний возраст студентов факультета 1 курса ФПМИ; вывод фамилий всех студентов, кроме обучающихся на 2 курсе факультета РТФ, в возрасте больше, чем средний возраст студентов 1 курса факультета ФПМИ; выборка фамилий всех студентов 1 и 3 курсов факультетов АВТ и ФЭН из Омска, и в возрасте больше, чем средний возраст студентов 1 курса факультета ФПМИ.
Для выполнения работы были созданы 2 таблицы, одна из которых содержит поля курс и идентификатор факультета, а вторая факультет и идентификатор факультета:
Рис.1 Структура Базы Данных.
Общий запрос: средний возраст студентов факультета 1 курса ФПМИ:
SELECT (AVG(YEAR(DATE()) - YEAR(Table1.дата_рождения))) AS Средний_возр_ФПМИ_1курс;
FROM laba3_sql!table1;
INNER JOIN laba3_sql!table3;
ON Table1.идент_фак =Table3.идент_фак;
WHERE Table3.факультет="ФПМИ";
AND Table1.курс=1
Рис. 2 Вывод среднего возраста.
Подзапрос №1: Вывод фамилий всех студентов, получивших 5 и 4 за экзамены, и в возрасте больше, чем средний возраст студентов факультета 1 курса ФПМИ:
SELECT Table1.фамилия, Table1.оценка, Table1.курс, Table3.факультет,;
YEAR(DATE())-YEAR(Table1.дата_рождения) AS возраст;
FROM ;
laba3_sql!table1 ;
INNER JOIN laba3_sql!table3 ;
ON Table1.идент_фак = Table3.идент_фак;
WHERE YEAR(DATE())-YEAR(Table1.дата_рождения) > (SELECT (AVG(YEAR(DATE())-YEAR(Table1.дата_рождения)));
FROM laba3_sql!table1;
INNER JOIN laba3_sql!table3;
ON Table1.идент_фак = Table3.идент_фак;
WHERE Table3.факультет="ФПМИ" AND Table1.курс=1);
AND Table1.оценка IN (4,5)
Рис. 3 Вывод подзапроса №1
Подзапрос №2: Вывод фамилий всех студентов, кроме обучающихся на 2 курсе факультета РТФ, в возрасте больше, чем средний возраст студентов 1 курса факультета ФПМИ:
SELECT Table1.фамилия, Table1.оценка, Table1.курс, Table3.факультет,;
YEAR(DATE())-YEAR(Table1.дата_рождения) AS возраст;
FROM ;
laba3_sql!table1 ;
INNER JOIN laba3_sql!table3 ;
ON Table1.идент_фак = Table3.идент_фак;
WHERE YEAR(DATE())-YEAR(Table1.дата_рождения) > (SELECT (AVG(YEAR(DATE()) - YEAR(Table1.дата_рождения)));
FROM laba3_sql!table1;
INNER JOIN laba3_sql!table3;
ON Table1.идент_фак = Table3.идент_фак;
WHERE Table3.факультет="ФПМИ" AND Table1.курс=1);
AND ( Table3.факультет <> ( "РТФ" );
OR Table1.курс <> ( 2 ) )
Рис. 4 Вывод подзапроса №2
Подзапрос №3: Выборка фамилий всех студентов 1 и 3 курсов факультетов АВТ и ФЭН из Омска, и в возрасте больше, чем средний возраст студентов 1 курса факультета ФПМИ:
SELECT Table1.фамилия, Table1.оценка, Table1.курс, Table3.факультет,Table1.город,;
YEAR(DATE())-YEAR(Table1.дата_рождения) AS возраст;
FROM ;
laba3_sql!table1 ;
INNER JOIN laba3_sql!table3 ;
ON Table1.идент_фак = Table3.идент_фак;
WHERE ( YEAR(DATE())-YEAR(Table1.дата_рождения)) > (SELECT(AVG(YEAR(DATE())-YEAR(Table1.дата_рождения)));
FROM laba3_sql!table1;
INNER JOIN laba3_sql!table3;
ON Table1.идент_фак = Table3.идент_фак;
WHERE Table3.факультет="ФПМИ" AND Table1.курс=1);
AND Table1.курс IN (1,3) ;
AND Table3.факультет IN ("АВТ","ФЭН") ;
AND Table1.город = ( "Омск" )
Рис. 5 Вывод подзапроса №3
Вывод: Мы изучили средства быстрого поиска информации в базе данных и получение ответов на разнообразные запросы в среде FoxPro. Также были освоены подзапросы, которые создаются внутри самого запроса. Научились создавать запросы любого уровня сложности, производить различные вычисления над полями, выбираемыми из таблиц.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.