...
Примечание
Если столбец определен как DATE NOT NULL (или DATETIME NOT NULL), то значение этого столбца, равное «0000-00-00» (или «0000-00-00 00:00:00»), рассматривается оператором IS NULL как NULL. Например, если при создании таблицы Orders (Заказы) (см. листинг 2.4 в главе 2) задать для столбца date (дата) свойство NOT NULL, то запрос SELECT * FROM Orders WHERE date IS NULL; выведет строки, в которых дата заказа равна «0000-00-00».
Следующие операторы проверяют несовпадение двух операндов.
Операторы x! = y, x <> y
Оператор «не равно» возвращает следующие значения:
• 1 (TRUE) – если х и y различны;
• 0 (FALSE) – если х и y совпадают;
• NULL – если по крайней мере один из операндов равен NULL.
Например, запрос
SELECT * FROM Customers WHERE name! = \'КРЫЛОВ\
возвращает результат, обратный приведенному в табл. 3.1, то есть все строки, кроме строк с фамилией «Крылов» (табл. 3.6). Таблица 3.6.Результат выполнения запроса
Следующие операторы проверяют несовпадение операнда с каким-либо логическим значением.
Оператор x IS NOT y, где y – TRUE, FALSE, UNKNOWN или NULL
Выражение х IS NOT TRUE возвращает 0 (FALSE), если х– отличное от нуля число или отличная от нулевой («0000-00-00 00:00:00») дата и/или время, и 1 (TRUE) – в остальных случаях.
Выражением IS NOT FALSE возвращает 0 (FALSE), еслиxравен нулю, нулевой дате и/или времени, и 1 (TRUE) – в остальных случаях.
Выражениях IS NOT UNKNOWN их IS NOT NULL возвращают 0 (FALSE), если x равен NULL, и 1 (TRUE) – в остальных случаях.
Например, запрос
SELECT 100 IS NOT TRUE, 0 IS NOT TRUE,
\'2007-12-12\' IS NOT TRUE, \'0000-00-00\' IS NOT TRUE,
NULL IS NOT TRUE;
возвращает результат, представленный в табл. 3.7. Таблица 3.7.Результат выполнения запроса
Запрос
SELECT 100 IS NOT FALSE, 0 IS NOT FALSE,
\'2007-12-12\' IS NOT FALSE, \'0000-00-00\' IS NOT FALSE,
NULL IS NOT FALSE;
возвращает результат, представленный в табл. 3.8. Таблица 3.8.Результат выполнения запроса
Запрос
SELECT 100 IS NOT NULL, 0 IS NOT NULL,
\'2007-12-12\' IS NOT NULL, \'0000-00-00\' IS NOT NULL,
NULL IS NOT NULL;
возвращает результат, представленный в табл. 3.9. Таблица 3.9.Результат выполнения запроса
Как вы видите, операторы х IS NOT у и х IS у возвращают противоположные результаты.
Следующий оператор проверяет, меньше ли первый операнд, чем второй.
Оператор x < y
Оператор «меньше» возвращает следующие значения:
• 1 (TRUE) – если х меньше у;
• 0 (FALSE) – если х равен у или х больше у;
• NULL – если по крайней мере один из операндов равен NULL.
Например, запрос
SELECT * FROM Customers WHERE name<\'КРЫЛОВ\
возвращает пустой результат, поскольку «Крылов» – наименьшее в алфавитном порядке значение в столбце name (имя) таблицы Customers (Клиенты). Предшествующих ему значений в столбце нет, и, следовательно, ни одна строка не удовлетворяет условию отбора.
Следующий оператор проверяет, не превосходит ли первый операнд второго.
Оператор x < = y
Оператор «меньше либо равно» возвращает следующие значения:
• 1 (TRUE) – если х равно y или х меньше у;
• 0 (FALSE) – если х больше у;
• NULL – если по крайней мере один из операндов равен NULL.
Например, запрос
SELECT * FROM Customers WHERE name< = \'КРЫЛОВ\
возвращает результат, представленный в табл. 3.1.
Следующий оператор проверяет, больше ли первый операнд, чем второй.
Оператор x > y
Оператор «больше» возвращает следующие значения:
• 1 (TRUE) – если х больше у;
• 0 (FALSE) – если х равно у или х меньше у;
• NULL – если по крайней мере один из операндов равен NULL.
Например, запрос
SELECT * FROM Customers WHERE name>\'КРЫЛОВ\
возвращает результат, представленный в табл. 3.6.
Следующий оператор проверяет, является ли первый операнд большим либо равным по отношению ко второму.
Оператор x > = y
Оператор «больше либо равно» возвращает следующие значения:
• 1 (TRUE) – если х равно у или х больше у;
• 0 (FALSE) – если х меньше у;
• NULL – если по крайней мере один из операндов равен NULL.
Например, запрос
SELECT * FROM Customers WHERE name> = \'КРЫЛОВ\
возвращает все строки таблицы Customers (Клиенты) (табл. 3.10). Таблица 3.10.Результат выполнения запроса
Следующий оператор проверяет, находится ли первый операнд в промежутке между вторым и третьим.
Оператор x BETWEEN a AND b
Оператор «между» возвращает следующие значения:
• 1 (TRUE) – если a < х < b;
• 0 (FALSE) – если х меньше a или больше b;
• NULL – в остальных случаях.
Например, запрос
SELECT * FROM Customers WHERE name BETWEEN \'КРЫЛОВ\' AND \'OOO «Кускус»\
возвращает следующие строки таблицы Customers (Клиенты) (табл. 3.11). Таблица 3.11.Результат выполнения запроса
Читать дальше
Конец ознакомительного отрывка
Купить книгу