Файл: Лабораторная работа 2 Создание запросов с использованием подзапросов и агрегированных функций По дисциплине Базы данных.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 17.03.2024
Просмотров: 9
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Томский государственный университет систем управления и радиоэлектроники» (ТУСУР)
Лабораторная работа №2
«Создание запросов с использованием подзапросов и агрегированных функций»
По дисциплине: «Базы данных»
Вариант 4
Выполнил студент
группа: з-360П12-5
Руководитель работы
_________________/Должность/
_________________Ф.И.О.
_________________/Подпись/
12.02.2023 /Дата/
2023 г.
Цель работы
Формирование навыков создания запросов к базе данных. Следует изучить команду SELECT, агрегированные функции и использование подзапросов. При выборке данных могут быть использованы четыре связанные таблицы, находящиеся в схеме MAI.
Порядок выполнения лабораторной работы
Задание № 1 «Выборка логина студента»
Из представления user_users словаря базы данных, в котором содержится информация о подключенных пользователях, выбрать столбцы username, userid, created и sysdate. Столбец username возвращает имя пользователя, cтолбец, user_id – номер соединения с базой данных, created – дату создания пользователя. Функция sysdate возвращает системную дату.
SELECT username, user_id, created, sysdate, TO_CHAR (SYSDATE, 'FMMonth DD, YYYY') FROM user_users
USERNAME | USER_ID | CREATED | SYSDATE | TO_CHAR(SYSDATE,'FMMONTHDD,YYYY') |
XX202BKV | 217 | 27.01.23 | 09.02.23 | Февраль 9, 2023 |
1 rows returned in 0,03 seconds | | CSV Export | |
Задание № 2 «Простая выборка»
В соответствии с вариантом осуществить выборку данных из схемы MAI. Определить количество строк выборки. Текст команды выборки и количество строк представить в текстовом виде. Вставить скриншот, на котором частично отобразить выборку.
Вариант 4
Выбрать детей, не учащихся в школе, в возрасте больше 10 лет.
SELECT * FROM mai.deti WHERE nom_school IS NULL AND voz>10
NOM_SOTR | NAME_D | VOZ | NOM_SCHOOL |
8530 | Гена | 22 | - |
2484 | Алена | 18 | - |
672 | Саша | 22 | - |
2680 | Витя | 22 | - |
6887 | Вера | 20 | - |
6887 | Ваня | 21 | - |
6887 | Антон | 18 | - |
2829 | Вова | 22 | - |
2950 | Тина | 18 | - |
2386 | Света | 20 | - |
More than 10 rows available. Increase rows selector to view more rows. | |||
10 rows returned in 0,02 seconds | | CSV Export |
SELECT COUNT(*) FROM mai.deti WHERE nom_school IS NULL AND voz>10
COUNT(*) | | |
118 | | |
1 rows returned in 0,00 seconds | | CSV Export |
Задание № 3 «Многотабличная выборка»
В соответствии с вариантом осуществить выборку данных из схемы MAI, используя многотабличную выборку или соединение таблиц. Подзапрос в данном задании применяться не должен. Определить количество строк выборки. Текст команды выборки и количество строк представить в текстовом виде. Вставить скриншот, на котором частично отобразить выборку.
Вариант 4
Выбрать номер сотрудника, имена его детей и номера школ, где они учатся.
SELECT sotr.nom_sotr, deti.name_d, deti.nom_school FROM mai.sotr JOIN mai.deti ON mai.deti.nom_sotr = mai.sotr.nom_sotr WHERE deti.nom_school IS NOT NULL
NOM_SOTR | NAME_D | NOM_SCHOOL | ||
3080 | Ада | 25 | ||
3080 | Аня | 25 | ||
805 | Юра | 2 | ||
805 | Боря | 6 | ||
2141 | Зина | 13 | ||
3141 | Варя | 35 | ||
3141 | Боря | 25 | ||
8523 | Оля | 25 | ||
8444 | Нина | 43 | ||
8444 | Рома | 25 | ||
More than 10 rows available. Increase rows selector to view more rows. | ||||
10 rows returned in 0,00 seconds | | CSV Export |
SELECT COUNT(*) FROM mai.sotr JOIN mai.deti ON mai.deti.nom_sotr = mai.sotr.nom_sotr WHERE deti.nom_school IS NOT NULL
COUNT(*) | | |
286 | | |
1 rows returned in 0,01 seconds | | CSV Export |
Задание № 4 «Выборка с подзапросом»
В соответствии с вариантом осуществить выборку данных из схемы MAI, используя подзапрос. В данном задании многотабличная выборка или соединение применяться не может. Определить количество строк выборки. Команду выборки и количество строк выборки представить в текстовом виде. Вставить скриншот, на котором частично отобразить выборку.
Вариант 4
Выбрать сотрудников, если у сотрудника есть 2 однофамильца, один из которых работает в его отделе.
SELECT * FROM mai.sotr WHERE name1 IN (SELECT name1 FROM mai.sotr GROUP BY name1 HAVING COUNT(*)=3)
NOM_SOTR | NOM_OTD | NAME1 | NAME2 | DOLJN | CITY | DATE_B | ZARPL |
3130 | 107 | Иванова | Клавдия | Сборщик | Воронеж | 26.03.76 | 17500 |
8167 | 101 | Иванова | Ольга | Сборщик | Киров | 12.05.76 | 16500 |
3835 | 111 | Иванова | Наталья | Сборщик | Архангельск | 11.02.76 | 16500 |
3 rows returned in 0,00 seconds | | CSV Export | | | | |
Ответы на контрольные вопросы
1. В какой части опции WHERE оператора SELECT должен находиться подзапрос?
Подзапрос обычно находится слева от WHERE оператора SELECT
2. В чем преимущество подзапросов?
Подзапросы структурируют запрос, изолируя каждую часть оператора, выполняют операции, обычно
требующие сложных объединений и объединений
3. Какая реляционная операция выполняется при многотабличной выборке?
При многотабличной выборке выполняется декартово произведение
4. Какую совокупность реляционных операций реализует соединение таблиц?
Оператор языка SQL JOIN предназначен для соединения двух или более таблиц базы данных по совпадающему условию. Вместо JOIN может быть указано Inner Join, Left Outer Join, Right Outer Join, Full Outer Join, Cross Join
5. Какая логическая операция используется, если подзапрос возвращает несколько строк?
Если подзапрос возвращает несколько строк, то используется оператор сравнения, модифицированный ключевыми словами ANY или ALL.
6. С какими функциями используется опция группировки?
Опция группировки используется с функциями Count, Sum, Max, Min, Avg.
Выводы по работе
При выполнении работы сформированы навыки создания запросов к базе данных. Изучена команда SELECT, агрегированные функции и использование подзапросов.