ИТиП // 2 семестр ЛАБОРАТОРНАЯ РАБОТА № 8 SQL – запросы
Цель работы: изучить принципы создания простых и сложных SQL-запросов для управления данными.
Теоретическая часть
Для конкатенации строк используется оператор "+". Если операнды являются числовыми, то выполняется операция сложения, а если - строковыми, то конкатенация:
SELECT CONCAT(поле1, поле2...) FROM имя_таблицы WHERE условие
У функции CONCAT может быть произвольное число аргументов, но не менее двух.
SELECT 1+2+3+4 a, '1'+'2'+'3'+'4' b;
Функция UPPER переводит строку в верхний регистр (то есть из маленьких букв делает большие).
Команда AS задает новое имя полям или таблицам при выборке из базы (то есть в самой базе изменения не происходят).
Функция LPAD дополняет строку до нужного размера добавляя заданные символы в начало строки:
SELECT LPAD(поле, новый_размер_поля, чем_дополнить) FROM имя_таблицы WHERE условие
Функция RPAD выполняет тоже самое, только удлинение происходит с правой стороны.
Функция LEFT возвращает len первых символов из строки str, а функция RIGHT столько же последних:
SELECT LEFT ('Москва', 3); Результат: Мос
SELECT RIGHT ('Москва', 3); Результат: ква
CAST — это встроенная функция, которая используется для преобразования выражения из одного типа данных в другой тип данных:
CAST (выражение AS type [(length)])
Функция ROUND используется для округления дробей до нужного знака в дробной части. Округление до целого:
1
SELECT ROUND(поле) FROM имя_таблицы WHERE условие
Округление до определенного знака в дробной части:
SELECT ROUND(поле, сколько_знаков_оставить) FROM имя_таблицы WHERE условие
Функция CURRENT_DATE возвращает текущую дату в формате год-месяц-день. Команда INTERVAL позволяет прибавлять к дате и отнимать от нее определенные
промежутки времени. После команды INTERVAL можно указывать определенную часть даты (день, месяц или год и т.п.), к примеру, так interval 1 day или interval 3 month, или сразу несколько частей. В этом случае значения даты берутся в кавычки, пример: давайте прибавим 1 год и 3 месяца - это будет выглядеть так: interval '1-3' year_month.
Задание
База данных «Университет» содержит информацию о студентах, обучающихся в нескольких учебных заведениях, которые находятся в разных городах, преподавателях, преподаваемых дисциплинах и экзаменационных данных (рисунок 1). База данных состоит из 6 таблиц.
Таблица 1 - Студенты
Таблица 2 - Преподаватели
Таблица 3 – Дисциплины, закрепленные за преподавателями
2
Таблица 4 - Учебные дисциплины
Таблица 5 - Университеты
Таблица 6 – Экзаменационные данные
Рисунок 1 – Логическая схема базы данных
1. Составьте запрос для таблицы STUDENT таким образом, чтобы выходная таблица содержала один столбец, содержащий последовательность разделенных символом ;
3
(точка с запятой) значений всех столбцов этой таблицы, и при этом текстовые значения должны отображаться прописными символами (верхний регистр), то есть быть представленными в следующем виде:
10;КУЗНЕЦОВ;БОРИС;14000;2;БРЯНСК;8/12/1981;10.
2.Вам необходимо создать для каждого преподавателя идентификатор, который должен выглядеть как 3 первые символа имени плюс два первых символа фамилии. Все символы этого идентификатора должны быть представлены в верхнем регистре. Напишите запрос, который возвращал бы из таблицы информацию об имени и фамилии преподавателя, а также его идентификатор.
3.Составьте запрос для таблицы STUDENT таким образом, чтобы выходная таблица содержала всего один столбец в следующем виде:
б.кузнецов; место жительства - Брянск; родился: 8-дек-2003.
4.Составьте запрос для таблицы STUDENT таким образом, чтобы выходная таблица содержала всего один столбец в следующем виде: Борис Кузнецов родился в 2003 году.
5.Составьте запрос, выводящий таблицу SUBJECT в таком виде: столбец SUBJ_ID нужно привести к единому виду – 4 символа, впереди символ(ы) «0», столбец SUBJ NAME нужно обрезать до 15 символов.
6.Вывести все университеты и их рейтинг, округленный до сотен.
7*. Вывести текущую дату, последний день августа, количество месяцев, прошедших с празднования праздника 9 Мая, число следующей пятницы.
Содержание отчета
Отчет по работе должен содержать титульный лист, цель, задания, запросы, скрины выполненных заданий, вывод.
Список источников
1.SQL-запросы: основные команды для управления базами данных https://practicum.yandex.ru/blog/sql-zaprosy-dlya-upravleniya-bazami-dannyh/
2.Таблицы в SQL: типы и операции https://practicum.yandex.ru/blog/tablicy-v-sql/
4
