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