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

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

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

Министерство Образования и Науки Российской Федерации

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

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

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

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

Кафедра ВТ

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

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

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

Группа: АМ-411

Студент: Храмцов А.О.

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

Вариант: 9

Новосибирск, 2007 г.


Цель работы

Изучить средства быстрого поиска информации в базе данных и получение ответов на разнообразные запросы в среде FoxPro. Изучение конструктора запросов FoxPro. Научиться создавать подзапросы любого уровня сложности, производить различные вычисления над полями, выбираемыми из таблиц, осуществлять группировку полей запроса.

Задание

Выполнить выбор записей по диапазону значений для заданной БД. Осуществить выборку для нескольких таблиц. Продемонстрировать приобретенные навыки построения многотабличных запросов. Одна таблица (минимально) должна содержать поля: факультет, идентификатор факультета в обязательном порядке, другая (минимально) – курс, идентификатор факультета в обязательном порядке.

Выполнить запросы: вывод фамилий всех студентов, получающих стипендию от 100 до 300 рублей, кроме обучающихся на 1 и 3 курсе факультетов МТФ, ЭМФ и в возрасте больше, чем средний возраст студентов 2 и 4 курса факультета АВТФ; вывод фамилий всех студентов, кроме обучающихся на 2 курсе факультетов ЭМФ, МТФ и в возрасте больше, чем средний возраст студентов 2 и 4 курса факультета АВТФ; выборка фамилий всех студентов 4 и 5 курса факультета АВТФ и в возрасте больше, чем средний возраст студентов 2 и 4 курса факультета АВТФ.

Результаты работы

            Для выполнения текущей лабораторной работы создадим вторую таблицу с полями: факультет и идентификатор факультета.

Рис. 1. Структура базы данных

            Для создания запроса можно использовать конструктор запроса, но он подходит для создания простых запросов, более сложные запросы лучше прописывать самому. Приведем тексты запросов и результаты их работы.

            Подзапрос №1. Вывод фамилий всех студентов, получающих стипендию от 100 до 300 рублей, кроме обучающихся на 1 и 3 курсе факультетов МТФ, ЭМФ и в возрасте больше, чем средний возраст студентов 2 и 4 курса факультета АВТФ;

SELECT AVG(Table1.возраст) AS Средн_возр;

FROM  obshaga!Table1 INNER JOIN obshaga!Table2 ;

   ON  Table1.id_fac = Table2.id_fac;

 where  (Table1.курс = 2 or Table1.курс = 4)and Table2.факультет = "АВТФ";

select Table1.фамилия, Table1.размер_стипендии, Table2.факультет,Table1.курс,Table1.возраст;

FROM  obshaga!Table1 INNER JOIN obshaga!Table2 ;

   ON  Table1.id_fac = Table2.id_fac;

where Table1.размер_стипендии > 100 AND Table1.размер_стипендии < 300;

AND (Table1.возраст) >(SELECT AVG(Table1.возраст);

FROM  obshaga!Table1 INNER JOIN obshaga!Table2 ;

   ON  Table1.id_fac = Table2.id_fac;

 where  (Table1.курс = 2 or Table1.курс = 4)and Table2.факультет = "АВТФ");

and not (Table1.курс = 1 or Table1.курс = 3 ) and not (Table2.факультет = "МТФ" or Table2.факультет = "ЭМФ" );

Рис. 2. Результат работы запроса №1.

Подзапрос №2. Вывод фамилий всех студентов, кроме обучающихся на 2 курсе факультетов ЭМФ, МТФ и в возрасте больше, чем средний возраст студентов 2 и 4 курса факультета АВТФ;

SELECT AVG(Table1.возраст) AS Средн_возр;

FROM  obshaga!Table1 INNER JOIN obshaga!Table2 ;

   ON  Table1.id_fac = Table2.id_fac;

 where  (Table1.курс = 2 or Table1.курс = 4)and Table2.факультет = "АВТФ";

select Table1.фамилия, Table1.размер_стипендии, Table2.факультет,Table1.курс,Table1.возраст;

FROM  obshaga!Table1 INNER JOIN obshaga!Table2 ;

   ON  Table1.id_fac = Table2.id_fac;

where (Table1.возраст) >(SELECT AVG(Table1.возраст);

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

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

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