Оператор LIKE

Оператор LIKE применим только к полям типа CHAR или VARCHAR,в которых он ищет подстроки, т.е. он ищет символы и проверяет, совпадают ли они с условием. Два типа групповых символов, используемых с LIKE:

§ Символ подчеркивания замещает любой одиночный символ, например, ’М_Л’ будет соответствовать словам ‘МОЛ’ или ‘МЕЛ’, но не будет соответствовать’METAЛЛ’;

§ Знак процента замещает последовательность любого числа символов, в том числе нулевой длины. Например, ’%M%Л’ будет соответствовать словам ‘МЕЛ’ или ‘ПОМОЛ’, но не соответствует ‘МОЛОКО’.

Пример 1. Найти всех преподавателей, чьи имена начинаются с буквы К.

SELECT TFAM,TIMA,TOTCH

FROM TEACHERS

WHERE TFAM LIKE ‘K%’;

Результат запроса:

TEAM TIMA TOTCH

-----------------------------------------------------

Костыркин Олег Владимирович

Казанко Виталий Владимирович

Оператор LIKE может быть полезен, например, при поиске значения, если его написание неизвестно.

Пример 2. Допустим, неясно как пишется фамилия Казанко, Казанков или Козанко.Для поиска можно использовать известную часть и групповые символы.

SELECT TFAM, TIMA, TOTCH

FROM TEACHERS

WHERE TFAM LIKE ‘K_ занко%’;

Результат запроса:

TEAM TIMA TOTCH

----------------------------------------------------

Казанко Виталий Владимирович

Групповой символ % в конце строки необходим в большинстве случаев, если длина оцениваемой строки неизвестна. В LIKE предикате можно определить любой одиночный символ, как символ ESC. Символ ESC используется сразу перед процентом или подчеркиванием в предикате и означает, что процент или подчеркивание будет интерпретироваться как обыкновенный, а не групповой символ.

Пример 3. Составим запрос, который позволяет найти знак подчеркивания в данных о фамилии преподавателя:

SELECT TFAM, TIMA, TOTCH

FROM TEACHERS

WHERE TFAM LIKE’ %/_%’ ESCAPE ’/’;

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

Значение NULL.

Если запись не имеет никаких значений для каждого поля, то используется значение NULL.Так как NULL не является предметным значением, то он не имеет типа данных и может помещаться в любой тип поля.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: