Виктор Гольцман - MySQL 5.0. Библиотека программиста стр 22.

Книгу можно купить на ЛитРес.
Всего за 104.9 руб. Купить полную версию
Шрифт
Фон

...

Примечание

Иногда проверить условие можно несмотря на то, что один из операндов равен NULL (см., например, описание операторов BETWEEN и IN в этом подразделе); в этом случае возвращается значение 1 или 0.

Начнем с рассмотрения оператора, проверяющего равенство двух операндов.

Оператор x = y

Оператор "равно" возвращает следующие значения:

• 1 (TRUE) – если х и y совпадают;

• 0 (FALSE) – если х и y различны;

• NULL – если по крайней мере один из операндов равен NULL.

Например, выберите из таблицы Customers (Клиенты) строки, в которых значение в столбце name равно "Крылов":

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

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

MySQL 5.0. Библиотека программиста

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

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

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

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

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

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

возвращает результат (табл. 3.2) и наглядно иллюстрирует различие между операторами = и < = >. Таблица 3.2. Результат выполнения запроса

MySQL 5.0. Библиотека программиста

Следующие операторы проверяют равенство операнда какому-либо логическому значению.

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

MySQL 5.0. Библиотека программиста

Запрос

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

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

MySQL 5.0. Библиотека программиста

Запрос

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

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

...

Примечание

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

MySQL 5.0. Библиотека программиста

Следующие операторы проверяют несовпадение операнда с каким-либо логическим значением.

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

MySQL 5.0. Библиотека программиста

Запрос

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

MySQL 5.0. Библиотека программиста

Запрос

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

MySQL 5.0. Библиотека программиста

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

MySQL 5.0. Библиотека программиста

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке

Скачать книгу

Если нет возможности читать онлайн, скачайте книгу файлом для электронной книжки и читайте офлайн.

fb2.zip txt txt.zip rtf.zip a4.pdf a6.pdf mobi.prc epub