которых значение в столбце name равно «Крылов»:

SELECT * FROM Customers WHERE name = 'КРЫЛОВ

Результат этого запроса представлен в табл. 3.1. Таблица 3.1. Результат выполнения запроса

Как вы видите, при сравнении строк с помощью этого оператора регистр символов не учитывается.

Следующий оператор также проверяет равенство двух операндов.

Оператор x < = > у

В случае, когда оба операнда не равны NULL, данный оператор аналогичен оператору «равно». Если один из операндов равен NULL, оператор < = > возвращает значение 0 (FALSE), а если оба операнда равны NULL – значение 1 (TRUE).

Например, запрос

SELECT 100 = NULL, 100< = >NULL, NULL = NULL, NULL< = >NULL;

возвращает результат (табл. 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) – в остальных случаях.

Например, запрос

SELECT 100 IS TRUE, 0 IS TRUE, '2007-12-12' IS TRUE, '0000-00-00' IS TRUE, NULL IS TRUE;

возвращает результат, представленный в табл. 3.3. Таблица 3.3. Результат выполнения запроса

Запрос

SELECT 100 IS FALSE, 0 IS FALSE, '2007-12-12' IS FALSE, '0000-00-00' IS FALSE, NULL IS FALSE;

возвращает результат, представленный в табл. 3.4. Таблица 3.4. Результат выполнения запроса

Запрос

SELECT 100 IS NULL, 0 IS NULL, '2007- 12-12' IS NULL, '0000-00-00' IS NULL, NULL IS NULL;

возвращает результат, представленный в табл. 3.5. Таблица 3.5. Результат выполнения запроса

...< p>Примечание

Если столбец определен как 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. Результат выполнения запроса

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату