close

Вход

Забыли?

вход по аккаунту

?

ПротоколБД4

код для вставкиСкачать
Министерство образования и науки Украины
Одесский национальный политехнический университет
Институт компьютерных систем
Кафедра компьютеризированных систем управления
Лабораторная работа №4
по курсу «Программное обеспечение современных ЭВМ»
Запросы действия
Выполнила: ст. гр. АТ-082
Полищук Т.
Проверил: Андриевский Г.Г.
Коваленко А.
Одесса 2011
Цель работы.
Изучение инструкций SQL, реализующих запросы действия, с помощью которых можно добавлять, удалять, актуализировать (обновлять) записи и создавать выходные наборы данных в виде новой таблицы.
Ход работы.
1.Создать не менее 25 различных запросов действия. В протоколе привести команду SQL и словесное описание еѐ действия. 2. Добавить в таблицы «Студенты» и «Успеваемость» поле «Дата», которое в таблице «Студенты» будет означать дату рождения, а в таблице «Успеваемость» - дату сдачи экзамена или зачета. Привести примеры запросов действия с использованием поля «Дата» в условиях формирования выборки данных на базе таблиц «Студенты» и «Успеваемость». 3.Создать запросы-выборки и запросы-действия с использованием вложенных запросов (подзапросов) на базе таблиц «Студенты», «Успеваемость» и «Дисциплины». Использовать различные конструкции внешнего запроса для случаев, когда внутренний запрос возвращает одно и несколько значений. 4.Создать запросы на объединение таблиц, используя команду UNION. 5.Создать запросы на объединение таблиц, используя предложение INNER JOIN.
1. Выбираем из всех трёх таблиц список студентов с баллом больше 90 по всем возможным предметам в таблицу «Отличники»
SELECT Студенты.НомерЗК, Студенты.ФИО, Студенты.Группа, Успеваемость.Рейтинг, Успеваемость.Балл, Справочник.Наименование INTO Отличники
FROM (Справочник INNER JOIN Успеваемость ON Справочник.КодДисциплины=Успеваемость.КодДисциплины) INNER JOIN Студенты ON Успеваемость.НомерЗК=Студенты.НомерЗК
WHERE Успеваемость.Балл>=90
ORDER BY Рейтинг DESC;
2. Выбираем из всех трёх таблиц список студентов с баллом меньше 90 и больше 75 по всем возможным предметам в таблицу «Хорошисты»
SELECT Студенты.НомерЗК, Студенты.ФИО, Студенты.Группа, Успеваемость.Рейтинг, Успеваемость.Балл, Справочник.Наименование INTO Хорошисты
FROM (Справочник INNER JOIN Успеваемость ON Справочник.КодДисциплины=Успеваемость.КодДисциплины) INNER JOIN Студенты ON Успеваемость.НомерЗК=Студенты.НомерЗК
WHERE (Балл<91) AND (Балл>=75)
ORDER BY Рейтинг DESC;
3. Выбираем из всех трёх таблиц список студентов с баллом меньше 75 по всем возможным предметам в таблицу «Троечники»
SELECT Студенты.НомерЗК, Студенты.ФИО, Студенты.Группа, Успеваемость.Рейтинг, Успеваемость.Балл, Справочник.Наименование INTO Троечники
FROM (Справочник INNER JOIN Успеваемость ON Справочник.КодДисциплины=Успеваемость.КодДисциплины) INNER JOIN Студенты ON Успеваемость.НомерЗК=Студенты.НомерЗК
WHERE Балл<75
ORDER BY Рейтинг DESC;
4. Выбираем в таблицу «СредняяУспеваемость» средний балл студентов по каждому предмету
SELECT Справочник.Наименование, AVG(Успеваемость.Балл) AS СреднийБалл INTO СредняяУспеваемость
FROM Успеваемость INNER JOIN Справочник ON Справочник.КодДисциплины=Успеваемость.КодДисциплины
GROUP BY Наименование
ORDER BY Наименование;
5. Организовываем в таблицу средний рейтинг каждого студента по номеру зачётной книжки
SELECT Студенты.НомерЗК, AVG(Рейтинг) AS СреднийРейтинг INTO СР
FROM Студенты INNER JOIN Успеваемость ON Студенты.НомерЗК=Успеваемость.НомерЗК
GROUP BY Студенты.НомерЗК
ORDER BY Студенты.НомерЗК;
Остальные выборки будут представлены в электронном виде при защите лабораторной работы. Далее приведены листинги запросов в SQL-режиме с кратким описанием. 6. Выборка среднего рейтинга из предыдущей таблицы с добавлением ФИО студента. Связка новой таблицы и таблицы «Студенты» производится по ключевому полю «НомерЗК» SELECT СР.НомерЗК, Студенты.ФИО, СР.СреднийРейтинг INTO СРФИО
FROM СР INNER JOIN Студенты ON СР.НомерЗК=Студенты.НомерЗК
ORDER BY СреднийРейтинг DESC;
7. Делаем подборку максимальных баллов по каждому предмету
SELECT Успеваемость.КодДисциплины, MAX(Балл) AS МаксБалл INTO ЛучшРезульт
FROM Успеваемость INNER JOIN Справочник ON Справочник.КодДисциплины=Успеваемость.КодДисциплины
GROUP BY Успеваемость.КодДисциплины;
8. Сделать список студентов группы АТ-122
SELECT Студенты.НомерЗК, ФИО, Группа, Наименование, Балл INTO АТ122
FROM (Справочник INNER JOIN Успеваемость ON Справочник.КодДисциплины=Успеваемость.КодДисциплины) INNER JOIN Студенты ON Успеваемость.НомерЗК=Студенты.НомерЗК
WHERE Группа="АТ-122"
ORDER BY Студенты.НомерЗК;
9. Сделаем список студентов, получающих стипендию
SELECT * INTO НаСтипендии
FROM Студенты
WHERE Стипендия>=530
ORDER BY Стипендия DESC;
10. Сделаем список оценок по экзаменационным предметам
SELECT Наименование, ФИО, Группа, Балл INTO Экзамены
FROM (Справочник INNER JOIN Успеваемость ON Справочник.КодДисциплины=Успеваемость.КодДисциплины) INNER JOIN Студенты ON Успеваемость.НомерЗК=Студенты.НомерЗК
WHERE Наименование="Физика" OR Наименование="Высшая Математика"
ORDER BY Наименование;
11. Сделаем список оценок студентов по зачётным предметам
SELECT Наименование, ФИО, Группа, Балл INTO Зачёты
FROM (Справочник INNER JOIN Успеваемость ON Справочник.КодДисциплины=Успеваемость.КодДисциплины) INNER JOIN Студенты ON Успеваемость.НомерЗК=Студенты.НомерЗК
WHERE Наименование="Культурология" OR Наименование="Английский язык"
ORDER BY Наименование;
12. Добавить в таблицу «Экзамены» новую строку с заданными значениями
INSERT INTO Экзамены
VALUES ("ТОЭ", "Дичь Маргарита Семёновна", "АТ-121", 60);
13. Изменить все баллы по английскому языку на 100
UPDATE Зачёты SET Балл = 100
WHERE Наименование="Английский язык";
14. Удалить все записи, где наименование предмета-ТОЭ, из таблицы «Экзамены»
DELETE *
FROM Экзамены
WHERE Наименование="ТОЭ";
15. Удалить таблицу «АТ122»
DROP TABLE АТ122;
16. Делаем список оценок по всем предметам на базе объединения таблиц «Зачёты» и «Экзамены»
SELECT * FROM Экзамены UNION SELECT * FROM Зачёты
ORDER BY Балл DESC;
17. Добавить в таблицу «Студенты» поле Дата типа Дата/время
ALTER TABLE Студенты ADD COLUMN Дата DATE;
18. Добавить в таблицу «Успеваемость» поле Дата типа Дата/время
ALTER TABLE Успеваемость ADD COLUMN Дата DATE;
19. Составим список студентов, которые не получают стипендию
SELECT ФИО, Группа, Студенты.Дата, Рейтинг, Успеваемость.Дата INTO НетСтипендии
FROM Студенты INNER JOIN Успеваемость ON Студенты.НомерЗК=Успеваемость.НомерЗК
WHERE Рейтинг<75
ORDER BY Рейтинг;
20. Организуем подборку суммарных баллов по всем предметам
SELECT Наименование, SUM(Балл) AS СуммБалл INTO СуммУспеваемость
FROM Успеваемость INNER JOIN Справочник ON Справочник.КодДисциплины=Успеваемость.КодДисциплины
GROUP BY Наименование
ORDER BY Наименование;
21. Создадим индекс Рейт, так как чаще всего мы обращаемся к полю «Рейтинг» таблицы успеваемости
CREATE INDEX Рейт ON Успеваемость (Рейтинг);
22. Создадим расписание экзаменов SELECT Наименование, Дата INTO ЭкзДата
FROM Успеваемость INNER JOIN Справочник ON Справочник.КодДисциплины=Успеваемость.КодДисциплины
WHERE ((Наименование="Высшая математика") OR (Наименование="Физика"));
23. Представим себе, что нам надо составить список студентов от 1995г.р. и младше для направления на флюорографию SELECT ФИО, Группа, ГодРождения INTO НаФлюорографию
FROM Студенты
WHERE ГодРождения>=1995
ORDER BY Группа;
24. Добавить в таблицу «НаФлюорографию» логическое поле состояния прохождения
ALTER TABLE НаФлюорографию ADD COLUMN Пройдена BIT;
25. Подтвердим прохождение флюорографии для студента с фамилией Молекула. Для этого пошлём запрос на обновление таблицы «НаФлюорографию» UPDATE НаФлюорографию SET Пройдена = -1
WHERE ФИО LIKE "*Молекула*";
Выводы.
В результате данной лабораторной работы я изучила инструкции SQL, реализующие запросы действия, с помощью которых можно добавлять, удалять, актуализировать (обновлять) записи и создавать выходные наборы данных в виде новой таблицы.
Автор
Phobi
Phobi13   документов Отправить письмо
Документ
Категория
Без категории
Просмотров
109
Размер файла
106 Кб
Теги
протоколбд
1/--страниц
Пожаловаться на содержимое документа