Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб 18 УД Голиков Илья

.docx
Скачиваний:
4
Добавлен:
10.05.2023
Размер:
165.78 Кб
Скачать

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ

УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ

ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ

(НИУ «БелГУ»)

ИНСТИТУТ ИНЖЕНЕРНЫХ И ЦИФРОВЫХ ТЕХНОЛОГИЙ

КАФЕДРА ИНФОРМАЦИОННЫХ И РОБОТОТЕХНИЧЕСКИХ СИСТЕМ

Отчет по лабораторной работе № 18

Тема работы «Язык SQL. Команда SELECT – выборка данных»

по дисциплине “Управление данными”

студента (ки) очного отделения

2 курса 12002105 группы

Голикова Ильи Александровича

Проверил:

Асс. Лысакова Татьяна Андреевна

(ученая степень, звание, Фамилия Инициалы)

Белгород

2023

Цель работы

Изучить правила использования команды SELECT в SQL, применить полученные знания для формирования запросов к базе данных.

Ход работы

В ходе выполнения работы было сделано несколько различных запросов к созданной в предыдущих работах базе данных с использованием нескольких операторов и их комбинаций.

Результат выполнения работы представлен на рисунке 1

Рисунок 1 – Данные в таблице payer

Данные из таблиц получались с помощью следующих SQL-запросов:

use maindb;

-- Простой Select

SELECT * FROM payer;

-- Запрос к нескольким таблицам

SELECT apartment.apartment_id, apartment.area, payer.full_name, payer.address,

house.address

FROM apartment

JOIN payer ON apartment.payer_id = payer.payer_id

JOIN house ON apartment.house_id = house.house_id;

-- Устранение дубликатов. Distinct

SELECT DISTINCT payer_id FROM apartment;

-- Сортировка результатов. Order by

SELECT * FROM payer

ORDER BY date_of_birth ASC;

-- Использование Where

SELECT * FROM payer

WHERE date_of_birth >= '1980-01-01'

ORDER BY date_of_birth ASC;

-- Предикаты сравнения

SELECT * FROM payer

WHERE date_of_birth <> '1996-02-15';

-- Переименование столбцов и вычисления в результирующем наборе

SELECT apartment_id, FLOOR(area * 10.76)

AS "Площадь в кв футах" FROM apartment;

-- Проверка наличия подстроки в строке

SELECT * FROM payer

WHERE LOWER(address) LIKE '%некрасова%';

-- Агрегатные функции

SELECT FLOOR(AVG(payment_amount)) FROM invoice;

-- Группировка записей

SELECT payer.full_name, payer.date_of_birth, COUNT(*) FROM apartment

JOIN payer ON apartment.payer_id = payer.payer_id

GROUP BY apartment.payer_id

ORDER BY payer.date_of_birth DESC;

-- Фильтрация данных по итоговым показателям. Предложение HAVING

SELECT payer.full_name, payer.date_of_birth, COUNT(*) FROM apartment

JOIN payer ON apartment.payer_id = payer.payer_id

GROUP BY apartment.payer_id

HAVING COUNT(*) > 1

ORDER BY payer.date_of_birth DESC;

-- Явные операции соединения

SELECT apartment.apartment_id, apartment.area, payer.full_name, payer.address

FROM apartment

LEFT JOIN payer ON apartment.payer_id = payer.payer_id;

-- Объединение запросов

CREATE TABLE apartment_copy LIKE apartment;

INSERT INTO apartment_copy (area, house_id, payer_id) VALUES (55, 1, 1);

SELECT * FROM apartment

UNION

SELECT * FROM apartment_copy;

-- Подзапросы

SELECT AVG(area) FROM apartment;

SELECT * FROM apartment;

SELECT * FROM apartment

WHERE area < (

SELECT AVG(area) FROM apartment

);

Вывод

В ходе выполнения лабораторной работы изучили правила и синтаксис команды SELECT, научились делать различные запросы к базе данных с целью получения данных в различных комбинациях.