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

Страницы работы

Содержание работы

Министерство образования и науки РФ

Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

Новосибирский государственный технический университет


Лабораторная работа №4

по дисциплине «Базы данных» в среде VisualFoxPro

«Создание подзапросов»

Студенты: Глухова А.А

Белоусов М.Ю.

Ряшинцев А.С.

Преподаватель: Трошина Г.В.                                      

Факультет: АВТ

Группа: АМ-610

Вариант: 7

  Новосибирск 2009 г.


Цель работы: Изучить средства быстрого поиска информации в базе данных и получение ответов на разнообразные запросы в среде 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. Также были освоены подзапросы, которые создаются внутри самого запроса. Научились создавать запросы любого уровня сложности, производить различные вычисления над полями, выбираемыми из таблиц.

Похожие материалы

Информация о работе

Предмет:
Базы данных
Тип:
Отчеты по лабораторным работам
Размер файла:
90 Kb
Скачали:
0