Создание вложенных запросов. Изучение средств быстрого поиска информации в базе данных, страница 2

Результат выполнения запроса приведён на рис. 2.2.1.

Рис. 2.2.1. Результат выполнения запроса 1

2.2.2. Запрос 2

Вывести студентов с минимальной стипендией среди москвичей 1986 года рождения.

Текст запроса:

SELECT MIN(Stud.stipendia) AS min_stip FROM studentbase!stud INNER JOIN studentbase!facultets ;

   ON  Stud.faculty = Facultets.facultyid;

   WHERE Stud.city = "Москва" AND YEAR(Stud.birth) = 1986;

   INTO cursor cur2

SELECT Stud.sirname, Facultets.faculty, Stud.city, Stud.birth, Stud.stipendia, cur2.min_stip AS min_stip_moskau_86;

 FROM  studentbase!stud INNER JOIN studentbase!facultets ;

   ON  Stud.faculty = Facultets.facultyid;

 WHERE Stud.city = "Москва" AND YEAR(Stud.birth) = 1986;

 AND Stud.stipendia = ;

 (SELECT MIN(Stud.stipendia) FROM studentbase!stud INNER JOIN studentbase!facultets ;

   ON  Stud.faculty = Facultets.facultyid;

   WHERE Stud.city = "Москва" AND YEAR(Stud.birth) = 1986)

Результат выполнения запроса приведён на рис. 2.2.2.

Рис. 2.2.2. Результат выполнения запроса 2

2.2.3. Запрос 3

Вывести студентов с максимальной стипендией среди обучающихся на факультете АВТ в аудиториях с 300 по 320.

Текст запроса:

SELECT MAX(Stud.stipendia) AS max_stip FROM studentbase!stud INNER JOIN studentbase!facultets ;

   ON  Stud.faculty = Facultets.facultyid;

   WHERE Facultets.faculty = "АВТ" AND Stud.room BETWEEN 300 AND 320;

   INTO cursor cur3

SELECT Stud.sirname, Facultets.faculty, Stud.city, Stud.stipendia, cur3.max_stip AS max_stip_avt300;

 FROM  studentbase!stud INNER JOIN studentbase!facultets ;

   ON  Stud.faculty = Facultets.facultyid;

 WHERE Facultets.faculty = "АВТ" AND Stud.room BETWEEN 300 AND 320;

 AND Stud.stipendia = ;

 (SELECT MAX(Stud.stipendia) FROM studentbase!stud INNER JOIN studentbase!facultets ;

   ON  Stud.faculty = Facultets.facultyid;

   WHERE Facultets.faculty = "АВТ" AND Stud.room BETWEEN 300 AND 320)

Результат выполнения запроса приведён на рис. 2.2.3.

Рис. 2.2.3. Результат выполнения запроса 3

2.2.4. Дополнительный запрос

Вывести студентов, поступивших в вуз с 1998 по 2002 гг., имеющих учебник физики или алгебры издательств «Наука» или «Сибирь», обучающихся во 2 или 7 корпусе, кроме студентов 1 и 5 курсов факультетов ФЭН и РЭФ, и получающих стипендию больше, чем средняя стипендия студентов, родившихся зимой, 2 и 4 курсов факультетов ФЛА и ФПМИ.

Текст запроса:

SELECT AVG(Stud.stipendia) AS avg_stip;

             FROM  studentbase!stud INNER JOIN studentbase!facultets ;

             ON  Stud.faculty = Facultets.facultyid;

             WHERE Stud.course IN (2,4) AND Facultets.faculty IN ("ФЛА","ФПМИ");

                        AND MONTH(Stud.birth) IN (1,2,12);

             INTO cursor cur4

SELECT Stud.sirname, Facultets.faculty, Stud.course, Stud.uchebnik, Stud.izdatelstvo, Stud.corpus, Stud.stipendia, cur4.avg_stip AS avg_stip;

 FROM  studentbase!stud INNER JOIN studentbase!facultets ;

   ON  Stud.faculty = Facultets.facultyid;

 WHERE Stud.postupleni BETWEEN 1998 AND 2002 AND Stud.uchebnik IN ("Физика","Алгебра") AND;

            Stud.izdatelstvo IN ("Наука","Сибирь") AND Stud.corpus IN (2,7);

            AND NOT (Stud.course IN (1,5) AND Facultets.faculty IN ("ФЭН","РЭФ"));

            AND Stud.stipendia >;

            (SELECT AVG(Stud.stipendia);

             FROM  studentbase!stud INNER JOIN studentbase!facultets ;

             ON  Stud.faculty = Facultets.facultyid;

             WHERE Stud.course IN (2,4) AND Facultets.faculty IN ("ФЛА","ФПМИ");

                        AND MONTH(Stud.birth) IN (1,2,12);

             )

Результат выполнения запроса приведён на рис. 2.2.4.

Рис. 2.2.4. Результат выполнения дополнительного запроса

Выводы

В работе реализованы запросы к базе данных студентов с использованием подзапросов.