FROM data1!knigi2 INNER JOIN data1!fakultet_table ;
ON Knigi2.id_fakultet = fakultet_table.id_fakultet;
WHERE Knigi2.курс IN ("1","3");
SELECT Knigi2.фамилия+LEFT(Knigi2.имя,1)+"."+LEFT(Knigi2.отчество,1)+"." AS фио , Knigi2.курс, (YEAR(DATE()) - YEAR(knigi2.дата_рождения)) as "Возраст";
FROM data1!knigi2 INNER JOIN data1!fakultet_table ;
ON Knigi2.id_fakultet = fakultet_table.id_fakultet;
WHERE (YEAR(DATE()) - YEAR(knigi2.дата_рождения)) > (SELECT (AVG(YEAR(DATE()) - YEAR(Knigi2.дата_рождения)));
FROM data1!knigi2 INNER JOIN data1!fakultet_table ;
ON Knigi2.id_fakultet = fakultet_table.id_fakultet;
WHERE Knigi2.курс IN ("1","3"));
AND Knigi2.курс <> "1"
Результат запроса:
Рис.5 Подзапрос №2.
Подзапрос №3. Выборка фамилий всех студентов 2 и 3 курса факультета ПМТ и в возрасте больше, чем средний возраст студентов 1 и 3 курса.
SELECT (AVG(YEAR(DATE()) - YEAR(Knigi2.дата_рождения))) as "Средний_Возраст" ;
FROM data1!knigi2 INNER JOIN data1!fakultet_table ;
ON Knigi2.id_fakultet = fakultet_table.id_fakultet;
WHERE Knigi2.курс IN ("1","3");
SELECT Knigi2.фамилия+LEFT(Knigi2.имя,1)+"."+LEFT(Knigi2.отчество,1)+"." AS фио , Knigi2.курс, fakultet_table .факультет,(YEAR(DATE()) - YEAR(knigi2.дата_рождения)) as "Возраст";
FROM data1!knigi2 INNER JOIN data1!fakultet_table ;
ON Knigi2.id_fakultet = fakultet_table.id_fakultet;
WHERE (YEAR(DATE()) - YEAR(knigi2.дата_рождения)) > (SELECT (AVG(YEAR(DATE()) - YEAR(Knigi2.дата_рождения)));
FROM data1!knigi2 INNER JOIN data1!fakultet_table ;
ON Knigi2.id_fakultet = fakultet_table.id_fakultet;
WHERE Knigi2.курс IN ("1","3"));
AND fakultet_table.факультет == "ПМТ";
AND Knigi2.курс IN ("2","3")
Рис.6 Подзапрос №3
Подзапрос №4. Вывести студентов, имеющих книги издательства «Наука» или «Сибирь», выпущенных с 1985 по 1995 год, обучающихся в аудиториях с 301 по 320 и получающих стипендию больше, чем средняя стипендия студентов, обучающихся у лекторов Иванова и Петрова, кроме студентов 2 и 5 курса факультетов АВТФ и ФЛА.
SELECT (AVG(Knigi2.стипендия)) as "Средняя_стипендия" ;
FROM data1!knigi2 INNER JOIN data1!fakultet_table ;
ON Knigi2.id_fakultet = fakultet_table.id_fakultet;
WHERE Knigi2.лектор IN ("Иванов","Петров");
SELECT Knigi2.фамилия+LEFT(Knigi2.имя,1)+"."+LEFT(Knigi2.отчество,1)+"." AS фио , Knigi2.курс, fakultet_table .факультет, Knigi2.стипендия, Knigi2.лектор , Knigi2.издательство, Knigi2.год_издания, Knigi2.аудитория;
FROM data1!knigi2 INNER JOIN data1!fakultet_table ;
ON Knigi2.id_fakultet = fakultet_table.id_fakultet;
WHERE (Knigi2.стипендия) > (SELECT (AVG(Knigi2.стипендия));
FROM data1!knigi2 INNER JOIN data1!fakultet_table ;
ON Knigi2.id_fakultet = fakultet_table.id_fakultet;
WHERE Knigi2.лектор IN ("Иванов","Петров"));
AND not (Knigi2.курс in ("2","5") and fakultet_table.факультет in ("АВТФ","ФЛА"));
AND Knigi2.издательство IN ("Наука","Сибирь");
AND Knigi2.год_издания BETWEEN 1985 AND 1995;
AND Knigi2.аудитория BETWEEN 301 AND 320
Рис.7 Вывод средней стипендии студентов лекторов Иванова и Петрова
Рис.8 Подзапрос №4
Если изменить у студента Петрова факультет – на ФЛА, то результат будет следующим:
Рис.9 Подзапрос №4
Вывод: Изучил средства быстрого поиска информации в базе данных, научился создавать запросы и подзапросы более сложного уровня, производить различные вычисления над полями, выбираемыми из таблиц, осуществлять группировку полей запроса. Были получены и закреплены знания по SQL-запросам, а также многотабличным связываниям.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.