Скачиваний:
25
Добавлен:
01.04.2014
Размер:
761.34 Кб
Скачать

52 Понимание sql

______________________________________________________________________

ГЛ. 5

=============== SQL Execution Log ============

| |

| SELECT * |

| FROM Salespeople |

| WHERE ( comm BETWEEN .10 AND .12 |

| AND NOT comm IN ( .10 .12; |

| ==============================================|

| snum sname city comm |

| ------ ---------- ----------- ------- |

| 1004 Motika London 0.11 |

| |

===============================================

Рисунок 5.5: Сделать BETWEEN - невключенным

Этот запрос выбирает всех заказчиков чьи имена попали в определенный

алфавитный диапазон:

SELECT *

FROM Customers

WHERE cname BETWEEN 'A' AND 'G';

Вывод для этого запроса показывается в Рисунке 5.6.

Обратите Внимание что Grass и Giovanni отсутствуют, даже при

включенном BETWEEN. Это происходит из-за того что BETWEEN

сравнивает строки неравной длины. Строка 'G' более короткая чем

строка Giovanni, поэтому BETWEEN выводит 'G' с пробелами. Пробелы

предшествуют символам в алфавитном порядке ( в большинстве реа-

лизаций ), поэтому Giovanni не выбирается. То же самое происходит с

Grass. Важно помнить это когда вы используете BETWEEN для извлечения

значений из алфавитных диапазонов. Обычно вы указываете диапазон с

помощью символа начала диапазона и символа конца( вместо которого

можно просто поставить z ).

ИСПОЛЬЗОВАНИЕ СПЕЦИАЛЬНЫХ ОПЕРАТОРОВ В УСЛОВИЯХ 53

______________________________________________________________________

=============== SQL Execution Log ============

| |

| SELECT * |

| FROM Customers |

| WHERE cname BETWEEN 'A' AND 'G'; |

| ============================================= |

| cnum cname city rating snum |

| ------ -------- ------ ---- ------ |

| 2006 Clemens London 100 1001 |

| 2008 Cisneros San Jose 300 1007 |

| |

=============================================

Рисунок 5. 6: Использование BETWEEN в алфавитных порядках

============ ОПЕРАТОР LIKE =============

LIKE применим только к полям типа CHAR или VARCHAR, с которыми

он используется чтобы находить подстроки. Т.е. он ищет поле символа

чтобы видеть, совпадает ли с условием часть его строки.

В качестве условия он использует групповые символы(wildkards) -

специальные символы которые могут соответствовать чему-нибудь.

Имеются два типа групповых символов используемых с LIKE:

* символ подчеркивания ( _ ) замещает любой одиночный символ.

Например, 'b_t' будет соответствовать словам 'bat' или

'bit', но не будет соответствовать 'brat'.

* знак процента (%) замещает последовательность любого числа

символов (включая символы нуля). Например '%p%t' будет

соответствовать словам 'put', 'posit', или 'opt', но не 'spite'.

Давайте найдем всех заказчиков чьи имена начинаются с G ( вывод

показывается в Рисунке 5.7 ):

SELECT

FROM Customers

WHERE cname LIKE 'G%';

Соседние файлы в папке ПОНИМАНИЕ SQL