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

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

Читать бесплатно Виктор Гольцман - MySQL 5.0. Библиотека программиста. Жанр: Программирование издательство неизвестно, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

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

...

Примечание

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

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

Оператор x NOT BETWEEN a AND b

Оператор возвращает результат, противоположный результату оператора «между»:

• 1 (TRUE) – если х меньше a или больше b;

• 0 (FALSE) – если a < х < b:

• NULL – в остальных случаях.

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

SELECT * FROM Customers WHERE name NOT BETWEEN 'КРЫЛОВ' AND 'ООО «Кускус»;

возвращает следующие строки таблицы Customers (Клиенты) (табл. 3.12). Таблица 3.12. Результат выполнения запроса

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

Оператор x IN (<Список значений>)

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

• 1 (TRUE) – если х совпадает с одним из элементов списка;

• 0 (FALSE) – если х не совпадает ни с одним из элементов списка;

• NULL – если х равен NULL, а также в тех случаях, когда в списке присутствует значение NULL и при этом х не совпадает ни с одним из элементов списка.

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

SELECT * FROM Customers WHERE rating IN (500,1500,2500);

возвращает результат, представленный в табл. 3.12.

Оператор IN позволяет также сравнивать составные значения, то есть значение х и элементы списка могут представлять собой наборы из нескольких величин (количество компонентов во всех наборах должно быть одинаковым).

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

SELECT * FROM Orders WHERE (date,product_id) IN

(('2007-12-12',1),('2007-12-12',2),

('2007-12-13',1),('2007-12-13',2));

сравнивает каждую пару, состоящую из даты заказа (date) и номера товара (customer_id), со списком пар, и если оба компонента в паре совпадают с соответствующими компонентами какой-либо пары из списка, то строка таблицы Orders (Заказы) будет включена в результат запроса. Таким образом, запрос отбирает заказы товаров № 1 и № 2, сделанные 12 и 13 декабря 2007 г. (табл. 3.13). Таблица 3.13. Результат выполнения запроса

В отличие от функций LEAST, GREATEST, INTERVAL и COALESCE, списком значений для оператора IN может быть не только фиксированный перечень аргументов, но и результат подзапроса (соответствующий пример мы рассматривали в подразделе «Вложенные запросы» главы 2).

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

Оператор x NOT IN (<Список значений>)

Оператор «не содержится в списке» возвращает результат, противоположный результату оператора IN:

• 1 (TRUE), если х не совпадает ни с одним из элементов списка;

• 0 (FALSE) – если х совпадает с одним из элементов списка;

• NULL, если х равен NULL, а также в тех случаях, когда в списке присутствует значение NULL и при этом х не совпадает ни с одним из элементов списка.

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

SELECT * FROM Customers WHERE rating NOT IN (500,1500);

возвращает результат, представленный в табл. 3.11.

Этот оператор, как и оператор IN, может работать с составными значениями, а также со списком, полученным в результате подзапроса.

Следующий оператор проверяет соответствие первого операнда шаблону, который является вторым операндом.

Оператор x LIKE y

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

• 1 (TRUE) – если х соответствует шаблону у;

Перейти на страницу:

Виктор Гольцман читать все книги автора по порядку

Виктор Гольцман - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


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

Отзывы читателей о книге MySQL 5.0. Библиотека программиста, автор: Виктор Гольцман. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*