Оформить и купить диплом на бланке ГОЗНАК без предоплаты

SQL операторы IN, BETWEEN, LIKE, IS NULL и предложение ESCAPE

В дополнение к операторам отношения и булевским операторам в языке использутся специальные операторы IN, BETWEEN, LIKE и IS NULL .

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

Например, чтобы определить студентов, живущих по адресам Ад1 и Ад2, необходимо послать следующий запрос:

SELECT * FROM СТУДЕНТ WHERE Адрес IN ( ‘Ад1’, ‘Ад2’ );

Оператору IN может предшествовать оператор NOT, изменяющий значение предиката на противоположное.

Оператор BETWEEN похож на оператор IN. В отличие от задания значений из набора, как это делает оператор IN,  в операторе BETWEEN задается диапазон значений, в котором истинен предикат. Необходимо ввести ключевое слово BETWEEN с начальным значением, ключевое слово AND и конечное значение.  В отличие от оператора IN оператор BETWEEN чувствителен к порядку, и первое значение в предложении должно быть первым по алфавитному или числовому порядку.

Следующий запрос будет извлекать из таблицы РЕБЕНОК всех детей с годом рождения между 1995  и 1997:

SELECT * FROM РЕБЕНОК

WHERE Год_рождения BETWEEN 1995 AND 1997;

Для оператора BETWEEN значение, совпадающее с любым из двух значений границы (в примере 1995 и 1997), заставляет предикат быть истинным.

Язык SQL не делает непосредственной поддержки невключения границ. Необходимо задавать граничные значения так, чтобы включающая интерпретация была приемлема.

Также, как и операторы отношения, оператор BETWEEN  может ис

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

Следующий запрос выбирает всех студентов, чьи имена попали в определенный алфавитный диапазон:

SELECT * FROM СТУДЕНТ

WHERE ФИО_НТ BETWEEN ‘А’ AND ‘Г’;

Оператору BETWEEN может предшествовать оператор NOT, изменяющий значение предиката на противоположное.

Оператор LIKE используется для нахождения подстрок. Он применим только к полям типа CHAR или VARCHAR. В качестве условия оператор LIKE использует групповые символы (символы типа wildсards).

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

- символ подчеркивания ( _ );

- знак процента (%).

 Символ подчеркивания ( _ ) замещает любой одиночный символ. Например, ‘г_д’ будет соответствовать словам ‘год’, ‘гад’ или ‘гид’, но не будет соответствовать ‘град’.

Знак процента (%) замещает последовательность любого числа символов, в том числе и пустую. Например, ‘%р%д’ будет соответствовать словам ‘брод’,‘ряд’, или ‘ярд’, но не ‘pоды’.

Оператору LIKE может предшествовать оператор NOT, изменяющий значение предиката на противоположное.

В случае, если в строке оператора LIKE есть знак процента или подчеркивания, следует использовать предложение ESCAPE.

Предложение ESCAPE задает любой одиночный символ как символ  “исключения” (ESC). Символ ESC используется сразу перед процентом или подчеркиванием в предикате и означает, что процент или подчеркивание должно интерпретироваться как символ, а не как групповой символ.

Например, для поиска строки, содержащей символ ‘_’, следует ввести запрос:

SELECT   *FROM   СТУДЕНТ

WHERE   ФИО_НТ   LIKE   ‘%\_%  ’ESCAPE  ’\’;

В этом запросе предложение ESCAPE определяет  ‘\‘  как символ ESC.     Символ ESC применяется только к одиночному символу сразу после него. Сам символ ESC, который может появиться в LIKE-строке, должен сопровождаться вторым знаком ESCAPE.

Часто в таблице могут появляться записи, в которых нет значений в одном или нескольких полях потому, что данных в этом поле и не должно быть, или потому, что это поле просто не заполнялось. Язык SQL позволяет вводить маркер NULL (ПУСТОЙ) в поле записи. Маркер NULL может помещаться в любой тип поля.

Так как NULL указывает на отсутствие значения, результат сравнения с использованием NULL неизвестен. В языке SQL неизвестное значение предиката приравнивается к неистинному в момент принятия решения о выводе строки ответа. Но в случае применения операции NOT к неизвестному значению предиката результат считается неизвестным и строка по-прежнему не выводится.

Чтобы различать неистинное и неизвестное, язык SQL предоставляет специальный оператор IS NULL для указания на значение NULL.

Найдем все записи в таблице СТУДЕНТ с NULL-значениями в столбце „Адрес”:

SELECT  *  FROM СТУДЕНТ WHERE Адрес IS NULL;

Оператору IS NULL может предшествовать оператор NOT.