которых значение в столбце name равно «Крылов»:
Результат этого запроса представлен в табл. 3.1. Таблица 3.1. Результат выполнения запроса
Как вы видите, при сравнении строк с помощью этого оператора регистр символов не учитывается.
Следующий оператор также проверяет равенство двух операндов.
Оператор x < = > уВ случае, когда оба операнда не равны NULL, данный оператор аналогичен оператору «равно». Если один из операндов равен NULL, оператор < = > возвращает значение 0 (FALSE), а если оба операнда равны NULL – значение 1 (TRUE).
Например, запросвозвращает результат (табл. 3.2) и наглядно иллюстрирует различие между операторами = и < = >. Таблица 3.2. Результат выполнения запроса
Следующие операторы проверяют равенство операнда какому- либо логическому значению.
Оператор x IS y, где y – TRUE, FALSE, UNKNOWN или NULLВыражением IS TRUE возвращает 1 (TRUE), если x – отличное от нулячисло или отличная от нулевой («0000-00-00 00:00:00») дата и/или время, и 0 (FALSE) – в остальных случаях.
Выражением IS FALSE возвращает 1 (TRUE), еслихравен нулю либо нулевой дате и/или времени, и 0 (FALSE) – в остальных случаях.Примечание
Если x является символьной строкой, то перед сравнением с TRUE или FALSE эта строка преобразуется в число. Для этого отбрасываются все символы, начиная с первого, недопустимого в числовом значении, а начальная подстрока рассматривается как число. Если первый символ в значении – буква или пустая строка («»), то x приравнивается к нулю.
Выражениях IS UNKNOWN их IS NULL возвращают 1 (TRUE), еслихравен NULL, и 0 (FALSE) – в остальных случаях.
Например, запрос
возвращает результат, представленный в табл. 3.3. Таблица 3.3. Результат выполнения запроса
Запросвозвращает результат, представленный в табл. 3.4. Таблица 3.4. Результат выполнения запроса
Запросвозвращает результат, представленный в табл. 3.5. Таблица 3.5. Результат выполнения запроса
Если столбец определен как 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) – если х и
• 0 (FALSE) – если
• NULL – если по крайней мере один из операндов равен NULL.
Например, запрос
возвращает результат, обратный приведенному в табл. 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) – в остальных случаях.
Например, запросвозвращает результат, представленный в табл. 3.7. Таблица 3.7. Результат выполнения запроса
Запросвозвращает результат, представленный в табл. 3.8. Таблица 3.8. Результат выполнения запроса
Запросвозвращает результат, представленный в табл. 3.9. Таблица 3.9. Результат выполнения запроса
Как вы видите, операторы х IS NOT
Следующий оператор проверяет, меньше ли первый операнд, чем второй.
Оператор x < yОператор «меньше» возвращает следующие значения:
• 1 (TRUE) – если х меньше у;
• 0 (FALSE) – если х равен
• NULL – если по крайней мере один из операндов равен NULL.
Например, запросвозвращает пустой результат, поскольку «Крылов» – наименьшее в алфавитном порядке значение в столбце name (имя) таблицы Customers (Клиенты). Предшествующих ему значений в столбце нет, и, следовательно, ни одна строка не удовлетворяет условию отбора.
Следующий оператор проверяет, не превосходит ли первый операнд второго.
Оператор x < = yОператор «меньше либо равно» возвращает следующие значения:
• 1 (TRUE) – если х равно
• 0 (FALSE) – если х больше у;
• NULL – если по крайней мере один из операндов равен NULL.
Например, запросвозвращает результат, представленный в табл. 3.1.
Следующий оператор проверяет, больше ли первый операнд, чем второй.
Оператор x > yОператор «больше» возвращает следующие значения:
• 1 (TRUE) – если х больше у;
• 0 (FALSE) – если х равно
• NULL – если по крайней мере один из операндов равен NULL.
Например, запросвозвращает результат, представленный в табл. 3.6.
Следующий оператор проверяет, является ли первый операнд большим либо равным по отношению ко второму.
Оператор x > = yОператор «больше либо равно» возвращает следующие значения:
• 1 (TRUE) – если
• 0 (FALSE) – если х меньше у;
• NULL – если по крайней мере один из операндов равен NULL.
Например, запросвозвращает все строки таблицы Customers (Клиенты) (табл. 3.10). Таблица 3.10. Результат выполнения запроса
Следующий оператор проверяет, находится ли первый операнд в промежутке между вторым и третьим.
Оператор x BETWEEN a AND bОператор «между» возвращает следующие значения:
• 1 (TRUE) – если
• 0 (FALSE) – если
• NULL – в остальных случаях.
Например, запросвозвращает следующие строки таблицы Customers (Клиенты) (табл. 3.11). Таблица 3.11. Результат выполнения запроса