Помощь в написании студенческих работ
Антистрессовый сервис

Разработка запросов в бд на языке sql и их реализация

РефератПомощь в написанииУзнать стоимостьмоей работы

Достаточно часто необходимо на основе данных, хранящихся в таблицах, проводить вычисления или просматривать данные из нескольких таблиц. Выбрать нужные данные можно с помощью запросов. Получить перечень спортивных сооружений указанного типа в целом или удовлетворяющих заданным характеристикам (например, стадионы, вмещающие не менее указанного числа зрителей). Запросы являются наилучшим способом… Читать ещё >

Разработка запросов в бд на языке sql и их реализация (реферат, курсовая, диплом, контрольная)

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

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

Запросы являются наилучшим способом выделения именно тех данных, которые необходимы для решения определенной задачи. Удобно использовать запросы при создании форм и отчетов.

Любой запрос в Microsoft Access реализуется с помощью языка SQL. Хотя большинство запросов можно создать, пользуясь графическими возможностями QBE (запроса по образцу), но и в этом случае каждый созданный запрос будет храниться в виде инструкции SQL.

Ниже представлена реализация запросов в виде словесного описания, листинга и иллюстрации результата запроса. Всего запросов 13. Практически все словесные описания предполагают несколько вариантов каждого из 13 запросов, поэтому, в наименовании запроса, после его номера идет словесное описание варианта:

1. Получить перечень спортивных сооружений указанного типа в целом или удовлетворяющих заданным характеристикам (например, стадионы, вмещающие не менее указанного числа зрителей).

Запрос1_Бассейны по Кол-ву дорожек

Листинг 1.1:

SELECT ССооружения. Название, ТипСС. ТипСС, Бассейн.КолДорожек.

FROM (ССооружения INNER JOIN ТипСС ON ССооружения. ид_ТипСС=ТипСС.ид_ТипСС) INNER JOIN Бассейн ON ССооружения. ид_ТипаТипа=Бассейн.ид_Бассейна.

GROUP BY ССооружения. Название, ТипСС. ТипСС, Бассейн.КолДорожек.

HAVING Бассейн. КолДорожек=[Введите_Кол_Дорожек:] AND ТипСС. ТипСС=[Введите_ТипСС:].

ORDER BY ССооружения. Название;

Результат:

Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.

Запрос1_ССооруженияУказТипа Листинг 1.2:

SELECT ССооружения. Название, ТипСС.ТипСС.

FROM ССооружения INNER JOIN ТипСС ON ССооружения. ид_ТипСС=ТипСС.ид_ТипСС.

GROUP BY ССооружения. Название, ТипСС.ТипСС.

HAVING ТипСС. ТипСС=[Введите тип СпортСооружения:].

ORDER BY ССооружения. Название;

Результат:

Разработка запросов в бд на языке sql и их реализация.

2. Получить список спортсменов, занимающихся указанным видом спорта в целом либо не выше определенного разряда.

Запрос2_ВидСпортаСпортсмены Листинг 2.1:

SELECT Спортсмены. ФИО, ВидыСпорта.ВидСпорта.

FROM Спортсмены INNER JOIN ВидыСпорта ON Спортсмены. ид_ВидСпорта=ВидыСпорта.ид_ВидСпорта.

GROUP BY Спортсмены. ФИО, ВидыСпорта.ВидСпорта.

HAVING ВидыСпорта. ВидСпорта=[ВведитеВидСпортаСпортсменов].

ORDER BY Спортсмены. ФИО;

Результат:

Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.

Запрос2_ВидСпортаРазрядСпортсмена Листинг 2.2:

SELECT Спортсмены. ФИО, ВидыСпорта. ВидСпорта, Спортсмены.Разряд.

FROM Спортсмены INNER JOIN ВидыСпорта ON Спортсмены. ид_ВидСпорта=ВидыСпорта.ид_ВидСпорта.

WHERE (ВидыСпорта.ВидСпорта=[ВведитеВидСпортаСпортсменов:]) AND (Спортсмены.Разряд<=[ВведитеРазрядСпортсмена:]);

Результат:

Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.

3. Получить список спортсменов, тренирующихся у некого тренера в целом либо не ниже определенного разряда.

Запрос3_СпортсменыУказТренера Листинг 3.1:

SELECT Спортсмены. ФИО, Тренеры.ФИО.

FROM Спортсмены INNER JOIN Тренеры ON Спортсмены. ид_Тренера=Тренеры.ид_Тренера.

WHERE Тренеры. ФИО=[ВведитеФИОТренера:];

Результат:

Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.

Запрос3_СпортсменыТренераНеНижеРазряда Листинг 3.2:

SELECT Спортсмены. ФИО, Спортсмены. Разряд, Тренеры.ФИО.

FROM Спортсмены INNER JOIN Тренеры ON Спортсмены. ид_Тренера=Тренеры.ид_Тренера.

WHERE Тренеры. ФИО=[ВведитеФИОТренера:] AND Спортсмены. Разряд>=[ВведитеНеНижеРазряд];

Результат:

Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.

4. Получить список спортсменов, занимающихся более чем одним видом спорта.

Запрос4_СпортсменыБольшОдногоСпорта Листинг 4.1:

SELECT Спортсмены. ФИО, count (ВидыСпорта.ВидСпорта).

FROM Спортсмены INNER JOIN ВидыСпорта ON Спортсмены. ид_ВидСпорта=ВидыСпорта.ид_ВидСпорта.

GROUP BY Спортсмены.ФИО.

HAVING count (*)>1;

Разработка запросов в бд на языке sql и их реализация.

5. Получить список тренеров указанного спортсмена.

Запрос5_ТренерыСпортсмена Листинг 5.1:

SELECT Спортсмены. ФИО, Тренеры.ФИО.

FROM Тренеры INNER JOIN Спортсмены ON Спортсмены. ид_Тренера=Тренеры.ид_Тренера.

WHERE Спортсмены. ФИО=[ВведитеФИОСпортсмена:];

Результат:

Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.

6. Получить перечень соревнований, проведенных в течение заданного периода времени в целом либо указанным организатором.

Запрос6_СоревнованияПоВремени Листинг 6.1:

SELECT Соревнования. Название, Соревнования.ДатаПроведения.

FROM Соревнования.

GROUP BY Соревнования. Название, Соревнования.ДатаПроведения.

HAVING ДатаПроведения BETWEEN [ВведитеНачДату] AND [ВведитеКонДату];

Результат:

Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.

Запрос6_СоревнованияДатаОрганизатор Листинг 6.2:

SELECT Организаторы. Организатор, Соревнования.Название.

FROM Организаторы INNER JOIN Соревнования ON Организаторы. ид_Организатора=Соревнования.ид_Организатора.

WHERE Соревнования. ДатаПроведения BETWEEN [ВведитеНачДату] AND [ВведитеКонДату].

GROUP BY Организаторы. Организатор, Соревнования.Название.

HAVING Организаторы. Организатор=[ВведитеОрганизатора];

Результат:

Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.

7. Получить список призеров указанного соревнования.

Запрос7_ПризерыСоревнования Листинг 7.1:

SELECT Соревнования. Название, Спортсмены.ФИО.

FROM Соревнования INNER JOIN Спортсмены ON Соревнования. ид_Участника=Спортсмены.ид_Спортсмена.

WHERE Соревнования. Призер="Да" .

GROUP BY Соревнования. Название, Спортсмены.ФИО.

HAVING Соревнования. Название=[ВведитеСоревнование:];

Результат:

Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.

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

Запрос81_СоревнованияПоСооружению Листинг 8.1:

SELECT Соревнования. Название, ССооружения.Название.

FROM Соревнования INNER JOIN ССооружения ON Соревнования. ид_СС=ССооружения.ид_СС.

WHERE ССооружения. Название=[ВведитеССооружение:].

GROUP BY Соревнования. Название, ССооружения. Название;

Результат:

Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.

Запрос8_2СоревПоСооружИВидуСпорта Листинг 8.2:

SELECT Соревнования. Название, ССооружения. Название, ВидыСпорта.ВидСпорта.

FROM (Соревнования INNER JOIN ВидыСпорта ON Соревнования. ид_ВидСпорта=ВидыСпорта.ид_ВидСпорта) INNER JOIN ССооружения ON Соревнования. ид_СС=ССооружения.ид_СС.

WHERE ВидыСпорта. ВидСпорта=[ВведитеВидСпорта:] AND ССооружения. Название=[ВведитеССооружение:].

GROUP BY Соревнования. Название, ССооружения. Название, ВидыСпорта. ВидСпорта;

Результат:

Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.

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

Запрос9_ЧислоКлубовИСпортсменовПоДатеСоревнований Листинг 9.1:

SELECT Спортклубы. Название, COUNT (Спортсмены.ФИО).

FROM (СпортКлубы INNER JOIN Спортсмены ON СпортКлубы. ид_СпортКлуба=Спортсмены.ид_СпортКлуба) INNER JOIN Соревнования ON Спортсмены. ид_Спортсмена=Соревнования.ид_Участника.

WHERE Соревнования. ДатаПроведения BETWEEN [ВведитеНачПериода:] AND [ВведитеКонПериода:].

GROUP BY Спортклубы. Название;

Результат:

Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.

10. Получить список тренеров по определенному виду спорта.

Запрос10_ТренерыПоВидуСпорта Листинг 10.1:

SELECT Тренеры. ФИО, Тренеры.ДатаРождения.

FROM Тренеры INNER JOIN ВидыСпорта ON ВидыСпорта. ид_ВидСпорта=Тренеры.ид_ВидСпорта.

WHERE ВидыСпорта. ВидСпорта=[ВведитеВидСпорта];

Результат:

Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.

11. Получить список спортсменов, не участвовавших ни в каких соревнованиях в течение определенного периода времени.

Запрос11_СпортсменыНеУчВСорев Листинг 11.1:

SELECT Спортсмены.ФИО.

FROM Спортсмены INNER JOIN Соревнования ON Спортсмены. ид_Спортсмена=Соревнования.ид_Участника.

WHERE Соревнования. ДатаПроведения NOT BETWEEN [ВведитеНачПериода:] AND [ВведитеКонПериода:].

GROUP BY Спортсмены. ФИО;

Результат:

Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.
Разработка запросов в бд на языке sql и их реализация.

12. Получить список организаторов соревнований и проведенные ими соревнования в течение определенного периода времени.

Запрос12_ОгранизИКол-воСорев Листинг 12.1:

SELECT DISTINCT Организаторы. Организатор, Соревнования.Название.

FROM Организаторы INNER JOIN Соревнования ON Организаторы. ид_Организатора=Соревнования.ид_Организатора.

WHERE Соревнования. ДатаПроведения BETWEEN [ВведитеНачДату] AND [ВведитеКонДату].

GROUP BY Организаторы. Организатор, Соревнования. Название;

Результат:

Разработка запросов в бд на языке sql и их реализация.

13. Получить перечень спортивных сооружений и даты проведения на них соревнований в течение определенного периода времени.

Запрос13_СооруженияПоДатамСоревнований Листинг 13.1:

SELECT ССооружения. Название, Соревнования.ДатаПроведения.

FROM Соревнования INNER JOIN ССооружения ON Соревнования. ид_СС=ССооружения.ид_СС.

WHERE Соревнования. ДатаПроведения BETWEEN [ВведитеНачДату] AND [ВведитеКонДату].

GROUP BY ССооружения. Название, Соревнования. ДатаПроведения;

Результат:

Показать весь текст
Заполнить форму текущей работой