Базовая фильтрация данных с использованием WHERE
На этом этапе мы узнаем, как использовать предложение WHERE для фильтрации данных на основе определенных условий. Предложение WHERE является одной из наиболее важных функций в SQL, позволяющей вам получать только те данные, которые соответствуют вашим критериям.
Сначала подключимся к MySQL и выберем нашу базу данных:
sudo mysql -u root
После подключения:
USE bookstore;
Простые операции сравнения
Начнем с базовых операторов сравнения:
-- Книги стоимостью более 40 долларов
SELECT title, price
FROM books
WHERE price > 40;
Вы должны увидеть такой вывод:
+-------------------------+-------+
| title | price |
+-------------------------+-------+
| The MySQL Guide | 45.99 |
| Advanced Database Concepts | 54.99 |
| Database Administration | 49.99 |
| The Perfect Index | 42.99 |
+-------------------------+-------+
Общие операторы сравнения включают:
=
(равно)
<>
или !=
(не равно)
>
(больше)
<
(меньше)
>=
(больше или равно)
<=
(меньше или равно)
Попробуем другой пример: найдем книги, опубликованные в определенном году:
SELECT title, author, publication_year
FROM books
WHERE publication_year = 2023;
Использование AND и OR
Мы можем комбинировать несколько условий с помощью операторов AND и OR:
-- Технические книги, опубликованные в 2023 году
SELECT title, genre, publication_year, price
FROM books
WHERE genre = 'Technical'
AND publication_year = 2023;
Попробуем использовать OR, чтобы найти книги, которые либо очень новые, либо очень дорогие:
SELECT title, publication_year, price
FROM books
WHERE publication_year = 2023
OR price >= 50;
Работа с NULL и булевыми значениями
Чтобы найти книги, которых нет в наличии:
SELECT title, price, in_stock
FROM books
WHERE in_stock = FALSE;