ИТиП // 2 семестр ЛАБОРАТОРНАЯ РАБОТА № 11 SQL – запросы
Цель работы: изучить принципы создания простых и сложных SQL-запросов для управления данными.
Теоретическая часть
Join – одна из наиболее часто используемых команд в SQL-синтаксисе:
§она используется для поиска информации в базах данных по заранее определенным критериям
§в частности, Join отвечает за объединение нескольких групп данных в единый поток информации
§с помощью соединения можно получать данные из двух или нескольких таблиц на основе логических связей между ними.
Соединение определяет способ связывания двух таблиц в запросе следующим
образом:
§для каждой таблицы указываются столбцы, используемые в соединении. В типичном условии соединения указывается внешний ключ из одной таблицы и связанный с ним ключ из другой таблицы
§указывается логический оператор (например, = или < >), используемый для сравнения
значений из столбцов
UNION - cцепляет результаты двух запросов в один результирующий набор. Указываете, будет ли результирующий набор включать повторяющиеся строки:
§UNION ALL — повторяющиеся строки включаются (дубликаты)
§UNION — повторяющиеся строки исключаются Операция UNION отличается от операции JOIN:
§В результате операции UNION сцепляются результирующие наборы двух запросов. При этом операция UNION не создает отдельные строки для столбцов, полученных из двух таблиц
§Операция JOIN сравнивает столбцы из двух таблиц и создает результирующие строки, которые состоят из столбцов из двух таблиц
Количество и порядок столбцов должны быть одинаковыми во всех запросах. Если типы данных различаются, то получившийся тип данных определяется на основе правил очередности типов данных. Если типы одинаковые, но различаются по точности,
1
масштабу или длине, результат определяется на основе тех же самых правил, которые действуют при объединении выражений.
Предложение ORDER BY применяется к результату соединения, поэтому оно может быть указано только в конце всего составного запроса.
Задание
База данных «Университет» содержит информацию о студентах, обучающихся в нескольких учебных заведениях, которые находятся в разных городах, преподавателях, преподаваемых дисциплинах и экзаменационных данных (рисунок 1). База данных состоит из 6 таблиц.
Таблица 1 - Студенты
Таблица 2 - Преподаватели
Таблица 3 – Дисциплины, закрепленные за преподавателями
Таблица 4 - Учебные дисциплины
2
Таблица 5 - Университеты
Таблица 6 – Экзаменационные данные
Рисунок 1 – Логическая схема базы данных
1.Напишите запрос, который выполняет выборку значений фамилии всех студентов с указанием для студентов, сдававших экзамены, идентификаторов сданных ими предметов обучения.
2.Напишите запрос на выдачу для каждого студента названий всех предметов обучения, по которым этот студент получил оценку 4 или 5.
3.Напишите запрос, который выполняет вывод списка университетов с рейтингом, превышающим 300, вместе со значением максимального размера стипендии, получаемой студентами в этих университетах.
4.Напишите запрос на выдачу списка фамилий студентов (в алфавитном порядке) вместе со значением рейтинга университета, где каждый из них учится.
3
5.Написать запрос, который позволяет получить данные о названиях университетов и городов, в которых они расположены, с рейтингом, равным или превышающим рейтинг МГУ.
6.Напишите запрос, выводящий всех студентов и преподавателей с указанием их статуса – «Преподаватель» или «Студент» и города, где они проживают.
7.Напишите запрос, позволяющий определить пары студентов для проживания в общежитии, критерий – они не должны быть из одного города и должны учиться в одном университете.
Содержание отчета
Отчет по работе должен содержать титульный лист, цель, задания, запросы, скрины выполненных заданий, вывод.
Список источников
1.SQL-запросы: основные команды для управления базами данных https://practicum.yandex.ru/blog/sql-zaprosy-dlya-upravleniya-bazami-dannyh/
2.Таблицы в SQL: типы и операции https://practicum.yandex.ru/blog/tablicy-v-sql/
4
