Оператор SQL NOT


Оператор SQL NOT служит для задания противоположно заданного условия. Является эквивалентом операции инверсии в математической логике и может применяется только для булевых значений.

Оператор SQL NOT имеет следующий синтаксис:

[ NOT ] boolean_expression

Примеры оператора SQL NOT. Имеется следующая таблица Artists:

Singer Album Year Sale
The Prodigy Invaders Must Die 2008 1200000
Drowning Pool Sinner 2001 400000
Massive Attack Mezzanine 1998 2300000
The Prodigy Fat of the Land 1997 600000
The Prodigy Music For The Jilted Generation 1994 1500000
Massive Attack 100th Window 2003 1200000
Drowning Pool Full Circle 2007 800000
Massive Attack Danny The Dog 2004 1900000
Drowning Pool Resilience 2013 500000

Пример 1. Используя оператор SQL NOT вывести записи таблицы, без исполнителя Drowning Pool и Massive Attack:

SELECT * FROM Artists WHERE Singer NOT IN ('Drowning Pool', 'Massive Attack')

Результат:

Singer Album Year Sale
The Prodigy Invaders Must Die 2008 1200000
The Prodigy Fat of the Land 1997 600000
The Prodigy Music For The Jilted Generation 1994 1500000

Очевидно, что в нашем случае, с такой небольшой таблицей удобней было бы использовать запрос:

SELECT * FROM Artists WHERE Singer = "The Prodigy"

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

Пример 2. Вывести записи таблицы, в которых название альбома содержит одно слово:

SELECT * FROM Artists WHERE Album NOT LIKE "% %"

Результат:

Singer Album Year Sale
Drowning Pool Sinner 2001 400000
Massive Attack Mezzanine 1998 2300000
Drowning Pool Resilience 2013 500000