Файл: Лабораторная работа 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, агрегированные функции и использование подзапросов.