Базы данных

Диапазоны, специальные символы и пустые значения в предложениях where

В предложениях WHERE могут также указываться диапазоны и шаблоны поиска. Для задания диапазонов используется ключевое слово BETWEEN. Например, оператор

SELECT Name, Nationality

FROM ARTIST

WHERE  BirthDate BETWEEN  1700 AND 1890;

даст следующий результат:

Miro              Spanish

Kandinsky     Russian Frings            US

Этот оператор эквивалентен следующему:

SELECT Name, Nationality FROM ARTIST

WHERE BirthDate >= 1700 AND BirthDate <= 1890;

Таким образом, диапазон, задаваемый ключевым словом BETWEEN, включает в себя граничные значения (в данном случае 1700 и 1890).

Для задания шаблонов поиска в SQL используется ключевое слово LIKE. Символ подчеркивания (_) представляет любой одиночный символ. С его помощью можно находить значения, удовлетворяющие заданному шаблону:

SELECT *

FROM ARTIST

WHERE Nationality LIKE 'S_anish';

Подчеркивание означает, что данном месте может стоять любой символ. Результатом этого оператора является следующая таблица:

3                    Miro              Spanish               1870                     1950

Следует обратить особое внимание на такую ситуацию. Чтобы найти всех художников, чье имя начинается на букву 'М' и состоит из четырех символов, нельзя использовать следующий шаблон:

SELECT *

FROM ARTIST

WHERE Name LIKE 'M___';

Результатом будет таблица, состоящая из нулевого количества строк. Причина такого результата заключается в том, что столбец Name имеет тип Char(25). Следовательно, каждое имя будет содержать двадцать пять символов, а не четыре, как предполагалось в шаблоне.

Символ процента (%) представляет последовательность из одного или нескольких произвольных символов. Запрос, возвращающий строки художников, чьи имена начинаются с буквы 'М', можно записать следующим образом:

предыдущаяследующая