Специальным операторам, которые мы изучали в этой главе, может предшествовать Булев оператор NOT.
Он противоположен реляционным операторам, которые должны иметь оператор NOT вводимым выражением. Например, если мы хотим устранить NULL из нашего вывода, мы будем использовать NOT, чтобы изменить на противоположное значение предиката:
SELECT * FROM Customers WHERE city NOT NULL;
При отсутствии значений NULL (как в нашем случае), будет выведена вся таблица Заказчиков. Аналогично можно ввести следующее:
SELECT * FROM Customers WHERE NOT city IS NULL;
что также приемлемо.
Мы можем также использовать NOT с IN:
SELECT * FROM Salespeople WHERE city NOT IN ('London', 'San Jose');
А это — другой способ подобного же выражения:
SELECT * FROM Salespeople WHERE NOT city IN ('London', 'San Jose');
Вывод для этого запроса показывается в Рисунке 5.9.
=============== SQL Execution Log ============ | SELECT * | | FROM Salespeople | | WHERE city NOT IN ('London', 'San Jose'; | | ==============================================| | snum sname city comm | | ------ ---------- ----------- ------- | | 1003 Rifkin Barcelona 0.15 | | 1007 Axelrod New York 0.10 | ===============================================
Рисунок 5.9. Использование NOT с IN
Таким же способом Вы можете использовать NOT BETWEEN и NOT LIKE.
Резюме
Теперь вы можете создавать предикаты в терминах связей специально определенных SQL. Вы можете искать значения в определенном диапазоне (BETWEEN) или в числовом наборе (IN), или вы можете искать символьные значения которые соответствуют тексту внутри параметров (LIKE).
Вы также изучили некоторые вещи относительно того, как SQL поступает при отсутствии данных — что часто является реальностью в базах данных — используя NULL вместо конкретных значений. Вы можете включать значения NULL в вывод или исключать их из него, используя оператор IS NULL(илиNOT NULL).
Теперь, когда вы имеете в вашем распоряжении весь набор стандартных математических и специальных операторов, вы можете переходить к специальным функциям SQL, которые работают на всех группах значений, а не просто на одиночном значении, что важно. Это уже тема Главы 6.