

Рисунок 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