MySQL - Оператор НЕ РАВЕН
Добро пожаловать, будущие энтузиасты баз данных! Сегодня мы окунемся в захватывающий мир MySQL и рассмотрим один из его самых полезных операторов: оператор НЕ РАВЕН. Как ваш доброжелательный соседский компьютерный учитель, я здесь, чтобы помочь вам в этом путешествии с множеством примеров и объяснений. Так что возьмите любимый напиток, устройтесь поудобнее и отправляйтесь в это обучающее приключение вместе со мной!
Оператор НЕ РАВЕН в MySQL
Давайте начнем с азов. В MySQL оператор НЕ РАВЕН используется для сравнения двух значений и проверки, отличаются ли они. Это как спросить: "Эй, эти две вещи разные?" Если да, то MySQL говорит: "Да, они не равны!"
Существует три способа выражения оператора НЕ РАВЕН в MySQL:
Оператор | Описание |
---|---|
<> | Не равно |
!= | Не равно |
NOT ... = | Не равно |
Давайте рассмотрим несколько примеров, чтобы увидеть, как они работают на практике.
SELECT * FROM students WHERE age <> 18;
SELECT * FROM books WHERE price != 9.99;
SELECT * FROM employees WHERE NOT department = 'Sales';
В первом примере мы выбираем всех студентов, чей возраст не равен 18. Второй пример выбирает книги, которые стоят не 9.99 долларов. Третий пример находит сотрудников, которые не работают в отделе продаж.
НЕ РАВЕН с строковыми значениями
Когда мы работаем с текстом (или строками, как мы их называем в программировании), оператор НЕ РАВЕН оказывается очень полезным. Давайте представим, что у нас есть таблица фруктов, и мы хотим найти все фрукты, кроме яблок.
SELECT * FROM fruits WHERE name <> 'apple';
Этот запрос вернет все фрукты, кроме яблок. Он чувствителен к регистру, поэтому 'Apple' будет считаться отличным от 'apple'. Если вы хотите игнорировать регистр, можете использовать функцию LOWER():
SELECT * FROM fruits WHERE LOWER(name) <> 'apple';
Теперь 'Apple', 'APPLE' или 'aPpLe' также будут исключены из результатов.
НЕ РАВЕН с предложением GROUP BY
Оператор НЕ РАВЕН может быть мощным инструментом в сочетании с предложением GROUP BY. Давайте представим, что у нас есть таблица продаж, и мы хотим увидеть общие продажи для каждого продукта, за исключением определенного.
SELECT product, SUM(amount) as total_sales
FROM sales
WHERE product <> 'Widget X'
GROUP BY product;
Этот запрос calculates общие продажи для каждого продукта, но исключает 'Widget X' из результатов. Это как сказать: "Покажите мне продажи всего, кроме Widget X."
НЕ РАВЕН с несколькими условиями
Иногда нам нужно использовать оператор НЕ РАВЕН с несколькими условиями. Давайте представим, что у нас есть таблица сотрудников, и мы хотим найти всех сотрудников, которые не работают ни в отделе продаж, ни в отделе маркетинга.
SELECT * FROM employees
WHERE department <> 'Sales'
AND department <> 'Marketing';
Этот запрос вернет всех сотрудников, которые работают в отделах, отличных от продаж и маркетинга. Это как если бы у клуба был охранник, которому сказали: "Пускай всех, кроме тех, кто носит красные рубашки или синие шляпы."
Отрицание условия с помощью НЕ РАВЕН
Оператор НЕ РАВЕН также полезен для отрицания условий. Например, давайте представим, что у нас есть таблица продуктов, и мы хотим найти все продукты, которые не отсутствуют на складе.
SELECT * FROM products
WHERE NOT (stock = 0);
Это эквивалентно:
SELECT * FROM products
WHERE stock <> 0;
Оба запроса вернут продукты, которые есть в наличии. Это как спросить: "Покажите мне все продукты, которые мы можем действительно продать!"
Оператор НЕ РАВЕН с использованием клиентской программы
Теперь давайте применим все эти знания на практике с помощью клиентской программы MySQL. Представим, что у нас есть база данных фильмов, и мы хотим найти все фильмы, которые не являются комедиями и вышли после 2000 года.
Сначала создадим таблицу и inserted данные:
CREATE TABLE movies (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100),
genre VARCHAR(50),
release_year INT
);
INSERT INTO movies (title, genre, release_year) VALUES
('The Matrix', 'Sci-Fi', 1999),
('Shrek', 'Comedy', 2001),
('The Dark Knight', 'Action', 2008),
('Inception', 'Sci-Fi', 2010),
('The Hangover', 'Comedy', 2009);
Теперь используем наш оператор НЕ РАВЕН, чтобы найти фильмы, которые нам нужны:
SELECT * FROM movies
WHERE genre <> 'Comedy'
AND release_year > 2000;
Этот запрос вернет:
+----+----------------+--------+--------------+
| id | title | genre | release_year |
+----+----------------+--------+--------------+
| 3 | The Dark Knight| Action | 2008 |
| 4 | Inception | Sci-Fi | 2010 |
+----+----------------+--------+--------------+
И вот мы и добились этого! Мы успешно использовали оператор НЕ РАВЕН, чтобы найти exactly то, что искали.
В заключение, оператор НЕ РАВЕН - это мощный инструмент в вашем арсенале MySQL. Он позволяет вам исключать特定的 данные из результатов, помогая вам точно определить, что вы ищете в своей базе данных. Помните, в мире баз данных, знание того, что вы не хотите, может быть не менее важно, чем знание того, что вы хотите!
Продолжайте практиковаться с этими примерами, и вскоре вы будете использовать оператор НЕ РАВЕН, как профессионал. Удачи в запросах, будущие маги баз данных!
Credits: Image by storyset