Sql что значит like

Оператор SQL LIKE

Как оператор

LIKE — это стандартный оператор ANSI / ISO для сравнения значения столбца с другим значением столбца или строкой в кавычках. Возвращает 1 (ИСТИНА) или 0 (ЛОЖЬ)

Оператор SQL LIKE применяется только к полю типов CHAR или VARCHAR, чтобы соответствовать шаблону.

Чтобы соответствовать шаблону из слова, специальные операторы и символы подстановки могли использоваться с оператором LIKE.

Оператор LIKE может использоваться в любом допустимом операторе SQL, таком как SELECT , INSERT INTO , UPDATE или DELETE .

Синтаксис:

Параметры:

название Описание
column_list Список столбцов таблицы.
table_name Наименование таблицы.
column_name Имя столбца, который будет участвовать в акции с оператором LIKE.
ГДЕ Проверяет, соответствует ли выражение шаблону. И выражение, и шаблон могут быть любыми допустимыми выражениями и оцениваются как строки. Используйте NOT LIKE, чтобы проверить, не соответствует ли строка шаблону.
Шаблоны могут использовать следующие подстановочные знаки SQL:

Подстановочные знаки SQL :

Подстановочные знаки SQL можно использовать для поиска данных в таблице.

Подстановочные знаки SQL используются с оператором SQL LIKE.

Логический оператор NOT в операторе select можно использовать в качестве подстановочного оператора NOT LIKE.

В SQL подстановочные знаки:

Wildcards Описание
% Знак процента (%) представляет собой последовательность из 0 (ноль) или более символов.
Нижнее подчеркивание ( _ ) Символ подчеркивания (_) представляет один символ.
[Charlist] Он представляет любой отдельный символ в списке
[^ charlist] или [! charlist] Он представляет любой отдельный символ, кроме charlist

Иллюстрированная презентация: оператор SQL LIKE

Примеры: оператор SQL LIKE

Содержание:

Процент подстановочных знаков SQL (%)

Образец таблицы: клиент

Чтобы получить ‘cust_code’, ‘cust_name’, ‘cust_city’ и ‘cust_country’ из таблицы ‘customer’ со следующим условием —

1. cust_name должно начинаться с буквы S,

можно использовать следующий оператор SQL:

Процент подстановочных знаков SQL (%) с логическим значением NOT

Пример таблицы: агенты

Получить все столбцы из таблицы «агенты» со следующим условием —

1. ‘agent_name’ не инициируется буквой ‘M’,

можно использовать следующий оператор SQL:

Равно (=) против LIKE

Оператор equals to (=) является оператором сравнения и используется для проверки равенства в двух числах или выражениях. Например :

Оператор LIKE проверяет, соответствует ли конкретная символьная строка указанному шаблону. Например:

LIKE обычно используется только со строками, а equals (=) используется для точного сопоставления, и это кажется быстрее.

Пример: символ подстановки SQL подчеркивается (_)

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

Образец таблицы: клиент

Чтобы получить ‘cust_code’, ‘cust_name’, ‘cust_city’ и ‘cust_country’ из таблицы ‘customer’ при следующих условиях —

1. имя cust_name должно начинаться с буквы «R»,

2. третья буква «cust_name» должна быть «m»,

3. и вторая буква ‘cust_name’ может быть любой,

можно использовать следующий оператор SQL:

Подстановочные знаки SQL подчеркивают (_) несколько символов

Образец таблицы: клиент

Чтобы получить ‘cust_code’, ‘cust_name’, ‘cust_city’ и ‘cust_country’ из таблицы ‘customer’ при следующих условиях —

1. первые три буквы ‘cust_name’ могут быть любыми буквами

2. четвертая буква «cust_name» должна быть «l»

3. а остальное может быть любым

можно использовать следующий оператор SQL:

Подстановочные знаки SQL подчеркивания (_) для определенной длины

Образец таблицы: клиент

Чтобы получить ‘cust_code’, ‘cust_name’, ‘cust_city’ и ‘cust_country’ из таблицы ‘customer’ при следующих условиях —

1. первые три буквы ‘cust_name’ могут быть любыми буквами

2. четвертая буква «cust_name» должна быть «l»

3. и строка должна быть длиной 4 буквы

можно использовать следующий оператор SQL:

Пример: подстановочные знаки SQL [charlist]

[Charlist] WILDCARDS используются для представления любого отдельного символа в списке символов.

[^ Charlist] и [! Charlist] WILDCARDS используются для обозначения любого отдельного символа, отсутствующего в списке символов.

Пример таблицы: агенты

Чтобы получить все строки из таблицы «агенты» со следующим условием —

1. ‘agent_name’ должно начинаться с буквы ‘a’ или ‘b’ или ‘i’

можно использовать следующий оператор SQL:

Пример: подстановочные знаки SQL [^ charlist]

Пример таблицы: агенты

Чтобы получить все строки из таблицы «агенты» со следующим условием —

1. имя агента не должно начинаться с буквы «а», «b» или «i»,

можно использовать следующий оператор SQL:

Пример: подстановочные знаки SQL [! Charlist]

Пример таблицы: агенты

Чтобы получить все строки из таблицы «агенты» со следующим условием —

1. имя агента не должно начинаться с буквы «а», «b» или «i»,

можно использовать следующий оператор SQL:

Упражнения по SQL

Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.

Предыдущая: СУЩЕСТВУЕТ
Далее: Подчеркнуть (_)

Источник

LIKE (Transact-SQL)

Применимо к: SQL Server (все поддерживаемые версии) База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics Параллельное хранилище данных

Определяет, совпадает ли указанная символьная строка с заданным шаблоном. Шаблон может включать обычные символы и символы-шаблоны. Во время сравнения с шаблоном необходимо, чтобы его обычные символы в точности совпадали с символами, указанными в строке. Символы-шаблоны могут совпадать с произвольными элементами символьной строки. Использование символов-шаблонов в отличие от использования операторов сравнения строки (= и !=) делает оператор LIKE более гибким. Если тип данных одного из аргументов не является символьной строкой, компонент Компонент SQL Server Database Engine, если это возможно, преобразует его в тип данных символьной строки.

Синтаксические обозначения в Transact-SQL

Синтаксис

ESCAPE и STRING_ESCAPE сейчас не поддерживаются в Azure Synapse Analytics и Система платформы аналитики (PDW).

Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.

Аргументы

match_expression
Любое допустимое выражение expression символьного типа данных.

pattern
Конкретная строка символов для поиска в match_expression может содержать следующие допустимые символы-шаблоны. Длина значения pattern не может превышать 8000 байт.

Символ-шаблон Описание Пример
% Любая строка, содержащая ноль или более символов. Инструкция WHERE Название LIKE ‘%компьютер%’ выполняет поиск и выдает все названия книг, содержащие слово «компьютер».
_ (подчеркивание) Любой одиночный символ. Инструкция WHERE фамилия_автора LIKE ‘_етров’ выполняет поиск и выдает все имена, состоящие из шести букв и заканчивающиеся сочетанием «етров» (Петров, Ветров и т.п.).
[ ] Любой одиночный символ, содержащийся в диапазоне ([a-f]) или наборе ([abcdef]). Инструкция WHERE Фамилия_автора LIKE ‘[Л-С]омов’ выполняет поиск и выдает все фамилии авторов, заканчивающиеся на «омов» и начинающиеся на любую букву в промежутке от «Л» до «С», например Ломов, Ромов, Сомов и т.п. При выполнении операции поиска в диапазоне символы, включенные в диапазон, могут изменяться в зависимости от правил сортировки параметров сортировки.
[^] Любой одиночный символ, не содержащийся в диапазоне ([^a-f]) или наборе ([^abcdef]). Инструкция WHERE Фамилия_автора LIKE ‘ив[^а]%’ выполняет поиск и выдает все фамилии, начинающиеся на «ив», в которых третья буква отличается от «а».

escape_character
Символ, помещаемый перед символом-шаблоном для того, чтобы символ-шаблон рассматривался как обычный символ, а не как шаблон. Аргумент escape_character является символьным выражением, не имеющим значения по умолчанию и возвращающим результат в виде одного символа.

Типы результата

Boolean

Значение результата

Оператор LIKE возвращает значение TRUE, если аргумент match_expression совпадает с указанным аргументом pattern.

Комментарии

При использовании оператора LIKE для сравнения строк во внимание принимаются все символы строки-шаблона. К значимым символам также относятся начальные и конечные пробелы. Если операция сравнения в запросе должна вернуть все строки, содержащие строки LIKE ‘абв ‘ (с символом пробела на конце), то строка, содержащая «абв» (без пробела), не будет возвращена. Однако завершающие пробелы в выражении, с которым сравнивается шаблон, не учитываются. Если операция сравнения в запросе должна вернуть все строки, содержащие строки LIKE ‘абв’ (без знака пробела на конце), то будут возвращены все строки, содержащие «абв», как с завершающими пробелами, так и без них.

При сравнении строк с помощью оператора LIKE с использованием шаблона, содержащего тип данных char и varchar, могут возникнуть проблемы из-за методов хранения каждого типа данных. В ходе выполнения следующего примера локальная переменная char передается хранимой процедуре, а затем с помощью сравнения с шаблоном выполняется поиск всех сотрудников, чьи фамилии начинаются с указанной последовательности букв.

Выполнение процедуры FindEmployee не дает результатов, так как переменная типа char ( @EmpLName ) всегда имеет длину в 20 символов, до которой дополняется завершающими знаками пробела. Переменные, содержащиеся в столбце LastName , имеют тип varchar. Поэтому завершающие пробелы в них не дописываются. Данная процедура завершается неудачей, так как завершающие пробелы учитываются.

Процедура из следующего примера выполняется успешно, так как завершающие пробелы к переменной типа varchar не добавляются.

Совпадение с шаблоном с использованием оператора LIKE

Оператор LIKE поддерживает шаблоны в ASCII и Юникоде. Если все аргументы (match_expression, pattern и escape_character, если он указан) имеют символьный тип ASCII, то применяется шаблон ASCII. В случае, когда какой-либо из аргументов имеет тип данных Юникод, выполняется преобразование всех аргументов в Юникод и применяется шаблон Юникод. Если вы используете оператор LIKE с типом данных Юникода (nchar или nvarchar), завершающие пробелы учитываются в отличие от других типов данных (не Юникода). Работа оператора LIKE с данными в Юникоде совместима со стандартом ISO. Принцип работы оператора LIKE с данными ASCII совместим с более ранними версиями SQL Server.

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

Операции сравнения с помощью оператора LIKE зависят от параметров сортировки. Дополнительные сведения см. в разделе COLLATE (Transact-SQL).

Использование символа-шаблона «%»

Если в операторе LIKE указать символ ‘5%’, то компонент Компонент Database Engine будет искать число «5», за которым следует любая строка с числом символов от нуля и больше.

Например, при выполнении следующего примера отображаются все динамические административные представления базы данных AdventureWorks2012, так как все они начинаются символами dm .

Чтобы отобразить все объекты, не являющиеся динамическими административными представлениями, используется синтаксис NOT LIKE ‘dm%’ . Например, если всего имеется 32 объекта и оператор LIKE выдает 13 наименований, совпадающих с шаблоном, то оператор NOT LIKE возвращает 19 объектов, не соответствующих указанному в операторе LIKE шаблону.

По такому шаблону, как LIKE ‘[^d][^m]%’ , не всегда будут возвращаться одни и те же имена. Вместо 19 имен можно найти только 14, так как имена, которые начинаются с буквы d или у которых второй буквой является m , будут исключены из результата, как и имена динамических административных представлений. Причиной такой реакции на событие является поэтапный поиск отрицательных символов-шаблонов: за один шаг обрабатывается один символ-шаблон. Процесс поиска совпадений прекращается при возникновении сбоя на любой стадии выполнения.

Использование символов-шаблонов в качестве литералов

Символы-шаблоны могут быть использованы в качестве литералов. Чтобы использовать символ-шаблон в качестве литерала, его необходимо заключать в скобки. В следующей таблице представлены несколько примеров применения ключевого слова LIKE вместе с символами-шаблонами [ ].

Символ Значение
LIKE ‘5[%]’ 5 %
LIKE ‘[_]n’ _n
LIKE ‘[a-cdf]’ a, b, c, d или f
LIKE ‘[-acdf]’ -, a, b, c, d или f
LIKE ‘[ [ ]’ [
LIKE ‘]’ ]
LIKE ‘abc[_]d%’ abc_d и abc_de
LIKE ‘abc[def]’ abcd, abce и abcf

Совпадение с шаблоном с помощью предложения ESCAPE

Можно искать символьные строки, в состав которых входит один или более специальных символов-шаблонов. Например, таблица discounts базы данных customers может содержать значения скидок, включающих знак процента (%). Чтобы выполнить поиск знака процента в качестве символа-шаблона, необходимо ввести ключевое слово ESCAPE и escape-символ. Например, образец базы данных содержит столбец с именем comment, в котором хранится значение «30%». Чтобы найти строки, содержащие последовательность символов «30%» в столбце comment, необходимо указать предложение WHERE, например WHERE comment LIKE ‘%30!%%’ ESCAPE ‘!’ . Если предложение ESCAPE и escape-символ не указаны, компонент Компонент Database Engine вернет все записи, содержащие последовательность символов «30!».

Если в шаблоне LIKE после escape-символа нет никакого символа, то шаблон является недопустимым и оператор LIKE возвращает значение FALSE. Если символ после escape-символа не является символом-шаблоном, то escape-символ игнорируется, а следующий символ рассматривается как обычный символ в шаблоне. К этим символам-шаблонам относятся: подчеркивание (_), процент (%) и левая квадратная скобка ([), в том случае, если они заключены в квадратные скобки. Escape-символы могут использоваться в квадратных скобках ([ ]), включая: знак вставки (^), дефис (-) и правую квадратную скобку (]).

Символ 0x0000 (char(0)) не определен в параметрах сортировки Windows, и его нельзя включать в LIKE.

Примеры

A. Применение оператора LIKE с символом-шаблоном %

В следующем примере в таблице 415 выполняется поиск всех телефонных номеров с кодом города PersonPhone .

Б. Применение оператора NOT LIKE с символом-шаблоном %

В следующем примере в таблице PersonPhone выполняется поиск всех телефонных номеров с региональным кодом, отличным от 415 .

В. Применение предложения ESCAPE

В следующем примере предложение ESCAPE и escape-символ используются для поиска символьной строки 10-15% в столбце c1 таблицы mytbl2 .

Г. Использование символов-шаблонов [ ]

В следующем примере выполняется поиск в таблице Person сотрудников с именем Cheryl или Sheryl .

В следующем примере выполняется поиск строк в таблице Person для сотрудников с фамилией Zheng или Zhang .

Примеры: Azure Synapse Analytics и Система платформы аналитики (PDW)

Д. Применение оператора LIKE с символом-шаблоном %

В следующем примере в таблице DimEmployee выполняется поиск всех сотрудников, телефонные номера которых начинаются с 612 .

Е. Применение оператора NOT LIKE с символом-шаблоном %

В следующем примере в таблице DimEmployee выполняется поиск всех телефонных номеров, которые не начинаются с 612 . .

Ж. Применение оператора LIKE с символом-шаблоном _

В следующем примере в таблице DimEmployee выполняется поиск всех телефонных номеров, начинающихся с 2 и заканчивающихся на 6 . Подстановочный знак «%» добавлен в конце шаблона поиска, что соответствует любым следующим символам в значениях столбца с телефонными номерами.

Источник

Читайте также:  Что значит андроид авто
Оцените статью