SQL - Оператор NOT

Здравствуйте, начинающие энтузиасты SQL! Я рад помочь вам окунуться в fascinирующий мир SQL-операторов,specifically оператор NOT. Как кто-то, кто преподавал SQL на протяжении многих лет, я могу заверить вас, что овладение этим оператором значительно улучшит ваши навыки запросов к базе данных. Так что давайте погрузимся в это!

SQL - NOT Operator

Оператор NOT в SQL

Оператор NOT похож на того друга, который всегда опровергает все, что вы говорите. Он используется для否定 условия в SQL, essentially переворачивая результат булевского выражения. Когда вы используете NOT, вы говорите: "Дайте мне все, что не соответствует этому условию."

Давайте начнем с простого примера. Представьте, что у нас есть таблица students с колонками id, name, и age.

SELECT * FROM students WHERE NOT age = 20;

Этот запрос вернет всех студентов, которые не являются 20 лет. Это как decir, "Покажите мне всех студентов, но исключите 20-летних."

Вот еще один пример:

SELECT * FROM students WHERE NOT name = 'John';

Этот запрос даст нам всех студентов, чье имя не Джон. Poor John, всегда оставшийся в стороне!

Оператор NOT с LIKE

Теперь давайте добавим остроты, комбинируя NOT с оператором LIKE. LIKE используется для Pattern matching, и когдаcombined с NOT, он становится мощным инструментом для исключения на основе шаблонов.

SELECT * FROM students WHERE name NOT LIKE 'A%';

Этот запрос вернет всех студентов, чьи имена не начинаются с 'A'. Это как organizando una fiesta и говоря: "Все приглашены, кроме тех, чьи имена начинаются с A!" (Извините, Анна и Алексей!)

Вот еще один забавный пример:

SELECT * FROM students WHERE email NOT LIKE '%@gmail.com';

Этот запрос даст нам всех студентов, которые не используют Gmail. Maybe они хипстеры, которые предпочитают менее известные почтовые сервисы!

Оператор NOT с IN

Оператор IN используется для указания множества значений в предложении WHERE. Когдаcombined с NOT, он позволяет нам исключить список значений.

SELECT * FROM students WHERE age NOT IN (18, 19, 20);

Этот запрос вернет всех студентов, которые не являются 18, 19 или 20 лет. Это как saying, "Покажите мне всех, кроме подростков и молодых взрослых!"

Вот еще один пример:

SELECT * FROM courses WHERE department NOT IN ('Math', 'Physics', 'Chemistry');

Этот запрос даст нам все курсы, которые не относятся к Math, Physics или Chemistry отделам. Perfect для тех, кто хочет избежать точных наук!

Оператор NOT с IS NULL

NULL значения в SQL представляют собой отсутствующие или неизвестные данные. Оператор IS NULL используется для проверки NULL значений, и когдаcombined с NOT, он помогает нам найти значения, отличные от NULL.

SELECT * FROM students WHERE phone_number IS NOT NULL;

Этот запрос вернет всех студентов, которые предоставили номер телефона. Это как saying, "Покажите мне всех студентов, которых я могу действительно позвонить!"

Вот еще один практический пример:

SELECT * FROM assignments WHERE submission_date IS NOT NULL;

Этот запрос даст нам все задания, которые были сданы. No procrastinators в этом наборе данных!

Оператор NOT с BETWEEN

Оператор BETWEEN выбирает значения в заданном диапазоне. Когдаиспользуется с NOT, он выбирает значения вне этого диапазона.

SELECT * FROM products WHERE price NOT BETWEEN 10 AND 20;

Этот запрос вернет все товары, которые стоят меньше 10 или больше 20. Это perfect для бюджетных покупателей и любителей роскоши!

Another example:

SELECT * FROM events WHERE event_date NOT BETWEEN '2023-01-01' AND '2023-12-31';

Этот запрос даст нам все события, которые не happen в 2023 году. Внимание, путешественники во времени!

Оператор NOT с EXISTS

Оператор EXISTS используется для проверки существования любой записи в подзапросе. Когдаcombined с NOT, он проверяет отсутствие записей, удовлетворяющих подзапрос.

SELECT * FROM customers c
WHERE NOT EXISTS (SELECT 1 FROM orders o WHERE o.customer_id = c.id);

Этот сложный на вид запрос на самом деле делает что-то простое: он возвращает всех клиентов, которые не сделали ни одного заказа. Это как finding всех window shoppers в вашей базе данных!

Вот еще один пример:

SELECT * FROM employees e
WHERE NOT EXISTS (SELECT 1 FROM managers m WHERE m.employee_id = e.id);

Этот запрос даст нам всех сотрудников, которые не являются менеджерами. Это великолепный способ найти worker bees в вашей организации!

Чтобы резюмировать все методы оператора NOT, о которых мы говорили, вот удобная таблица:

Метод Описание Пример
NOT с базовым сравнением Отрицание простого условия WHERE NOT age = 20
NOT с LIKE Исключение шаблонов WHERE name NOT LIKE 'A%'
NOT с IN Исключение списка значений WHERE age NOT IN (18, 19, 20)
NOT с IS NULL Нахождение не NULL значений WHERE phone_number IS NOT NULL
NOT с BETWEEN Исключение диапазона WHERE price NOT BETWEEN 10 AND 20
NOT с EXISTS Проверка отсутствия в подзапросе WHERE NOT EXISTS (SELECT 1 FROM orders o WHERE o.customer_id = c.id)

И вот оно,folks! Мы рассмотрели оператор NOT во всей его славе. Помните, в SQL, как и в жизни, иногда так же важно знать, что вы не хотите, как то, что вы хотите. Счастливого запроса и пусть ваши результаты всегда будут NOT NULL!

Credits: Image by storyset