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

Примеры отчётов / Лабораторная ИБД №4

.pdf
Скачиваний:
16
Добавлен:
04.06.2023
Размер:
501.41 Кб
Скачать

Рисунок 12 – Выборка каталога с самым большим id

Далее извлечём уникальные каталоги из таблицы книг и переименуем столбец группировки:

SELECT b_cat_ID FROM books GROUP BY b_cat_ID ORDER BY b_cat_ID;

Выполнение команды представлено на рисунке 13.

Рисунок 13 – Выборка всех каталогов из книг с применением группировки

Выберем каталоги и количество книг в них, где id у каталога строго больше 2 и отсортируем их по id каталога, используя команду:

SELECT b_cat_ID, COUNT(b_cat_ID) FROM books WHERE b_cat_ID > 2 GROUP BY b_cat_ID ORDER BY b_cat_ID;

И так же выберем каталоги и количество книг в них, где количество книг строго больше 5 и отсортируем их по id каталога, используя команду:

SELECT b_cat_ID, COUNT(b_cat_ID) AS total FROM books GROUP BY b_cat_ID HAVING total > 5 ORDER BY b_cat_ID;

21

И выберем уникальные значения столбца b_cat_ID, большие 2:

SELECT b_cat_ID, COUNT(b_cat_ID) FROM books GROUP BY b_cat_ID HAVING b_cat_ID > 2 ORDER BY b_cat_ID;

Выполнение команд представлено на рисунках 14,15, 16.

Рисунок 14 – Выборка каталогов и количества книг в них, где id у каталога строго больше 2 и отсортированных по id каталога.

Рисунок 15 – Выборка каталогов и количества книг в них, где количество книг в нем, строго больше 5 и отсортированных по id каталога.

Рисунок 16 – Выборка уникальных значений столбца b_cat_ID, большие 2

Используем функцию SELECT VERSION(); для просмотра версии СУБД.

Выполнение команды представлено на рисунке 17.

22

Рисунок 17 – Просмотр версии СУБД

Сравним значение NULL с NULL с помощью:

SELECT NULL IS NULL;

Объявим переменную total и присвоим ей число записей в таблице books, используя команду:

SELECT @total := COUNT(*) FROM books;

Затем в рамках текущего сеанса в последующих запросах появляется возможность использования данной переменной.

Выполнение команд представлено на рисунке 18.

Рисунок 18 – Сравнение значений и объявление временной переменной

23

Создадим простой запрос на выборку к таблице books, который выводит максимальную и минимальную цены товарных позиций, присваивая им соответственно псевдонимы maximum и minimum:

SELECT MAX(b_price) AS maximum, MIN(b_price) AS minimum FROM books;

И создадим простой запрос на выборку к таблице books, который выводит количество записей, соответствующих каждому из уникальных значений b_cat_ID. Для этого используем команду:

SELECT b_cat_ID, COUNT(b_cat_ID) FROM books GROUP BY b_cat_ID ORDER BY b_cat_ID;

Выполнение команд представлено на рисунке 19.

Рисунок 19 – Выборка максимальной и минимальной цены товарных позиций и выборка количества записей, соответствующих каждому из уникальных значений b_cat_ID

24

Ниже представлен листинг процесса выполнения лабораторной

работы №4.

Листинг 1. Процесс выполнения задания.

SELECT * FROM catalogs;

SELECT cat_id, cat_name FROM catalogs;

SELECT * FROM users;

SELECT user_ID, u_surname FROM users WHERE u_status="active"; SELECT DISTINCT u_status FROM users;

SELECT * FROM orders;

SELECT * FROM orders ORDER BY o_user_ID;

SELECT o_time FROM orders ORDER BY o_time DESC;

SELECT * FROM books;

SELECT book_ID, b_count FROM books ORDER BY b_count DESC LIMIT 5; SELECT book_ID, b_count FROM books ORDER BY b_count DESC LIMIT 5,5; SELECT COUNT(book_ID) FROM books;

SELECT COUNT(DISTINCT book_ID) FROM books;

SELECT COUNT(DISTINCT book_ID) AS vse_catalogi FROM books;

SELECT COUNT(order_ID) AS total FROM orders;

SELECT * FROM catalogs ORDER BY cat_ID DESC LIMIT 1;

SELECT b_cat_ID FROM books GROUP BY b_cat_ID ORDER BY b_cat_ID;

SELECT b_cat_ID, COUNT(b_cat_ID) FROM books WHERE b_cat_ID > 2 GROUP BY b_cat_ID ORDER BY b_cat_ID;

SELECT b_cat_ID, COUNT(b_cat_ID) AS total FROM books GROUP BY b_cat_ID HAVING total > 5 ORDER BY b_cat_ID;

SELECT b_cat_ID, COUNT(b_cat_ID) FROM books GROUP BY b_cat_ID HAVING b_cat_ID > 2 ORDER BY b_cat_ID;

SELECT VERSION();

SELECT NULL IS NULL;

SELECT @total := COUNT(*) FROM books;

SELECT @total;

SELECT MAX(b_price) AS maximum, MIN(b_price) AS minimum FROM books; SELECT b_cat_ID, COUNT(b_cat_ID) FROM books GROUP BY b_cat_ID ORDER BY b_cat_ID;

25

5Выводы

Входе лабораторной работы были произведены простые запросы на выборки с использованием операторов и функций MySQL на основе заполненной базы данных “book” в предыдущей лабораторной работе №3. Также были рассмотрены операторы сравнения и объявление временных переменных.

26