В предложениях 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). Следовательно, каждое имя будет содержать двадцать пять символов, а не четыре, как предполагалось в шаблоне.
Символ процента (%) представляет последовательность из одного или нескольких произвольных символов. Запрос, возвращающий строки художников, чьи имена начинаются с буквы 'М', можно записать следующим образом:
предыдущаяследующая