MySQL - Оператор НЕ РАВЕН

Добро пожаловать, будущие энтузиасты баз данных! Сегодня мы окунемся в захватывающий мир MySQL и рассмотрим один из его самых полезных операторов: оператор НЕ РАВЕН. Как ваш доброжелательный соседский компьютерный учитель, я здесь, чтобы помочь вам в этом путешествии с множеством примеров и объяснений. Так что возьмите любимый напиток, устройтесь поудобнее и отправляйтесь в это обучающее приключение вместе со мной!

MySQL - NOT EQUAL Operator

Оператор НЕ РАВЕН в 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