Like sql описание: SQL LIKE примеры и синтаксис оператора LIKE в SQL

Оператор Like — Служба поддержки Майкрософт

Access для Microsoft 365 Access 2021 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Еще…Меньше

Сравнивает строковое выражение с шаблоном в выражении SQL.

Синтаксис

выражение Like «шаблон«

Синтаксис оператора Like включает в себя следующие компоненты:

Часть

Описание

выражение

Выражение SQL, используемое в предложении WHERE.

шаблон

Строка или строковый литерал, с которыми сравнивается выражение.

Замечания

Оператор Like можно использовать для поиска значений полей, соответствующих указанному шаблону. В качестве шаблона можно задать полное значение (например, Like “Smith”) или использовать подстановочные знаки, чтобы получить диапазон значений (например, Like “Sm*”)).

Оператор Like можно использовать в выражении для сравнения значений полей с строками. Например, если ввести Like “C*” запросе SQL, запрос возвратит все значения полей, начиная с буквы C. В запрос с параметрами запрос на поиск шаблона.

Следующий пример возвращает данные, которые начинаются с буквы P, за которой идут любая буква от A до F и три цифры:

Like “P[A-F]###”

В следующей таблице показано, как использовать оператор Like для проверки на соответствие различным шаблонам:


Тип совпадения


Шаблон

Соответствие
(возвращает значение «Истина»)

Нет соответствия
(возвращает значение «Истина»)

Несколько символов

а*а

аа, aБa, aБББa

aБВ

*aб*

aбв, AAББ, Цaб

aШб, бaв

Особые символы

а[*]а

а*а

ааа

Несколько символов

aб*

aбвгдеё, aбв

вaб, aaб

Один символ

а?а

ааа, а3а, aБa

aБББa

Одна цифра

а#а

а0а, а1а, а2а

ааа, а10а

Диапазон символов

[a-я]

д, о, и

2, &

Вне диапазона

[!a-я]

9, &, %

б, a

Не цифра

[!0-9]

А, а, &, ~

0, 1, 9

Смешанный

a[!б-л]#

Aм9, aя0, a99

aбв, aи0

SQL Like: практическое руководство

Оператор SQL LIKE использует подстановочные знаки для поиска данных, похожих на определённый образец. Вы можете использовать подчёркивание для замены одного символа или знак процента для замены нуля, одного или нескольких символов.

Вы когда-нибудь хотели получить информацию из столбцов, которые содержат значение, похожее на другое? Например, предположим, что у вас есть таблица с именем «сотрудники». Может быть, вы хотите получить список сотрудников, название которых содержит «Продажи».

Вот где в игру вступает оператор SQL LIKE. В этой статье мы расскажем, как использовать оператор LIKE на сервере SQL для выполнения более конкретных запросов.

Содержание

  1. SQL LIKE
  2. Пример SQL LIKE
  3. Пример SQL NOT LIKE
  4. Вывод

SQL LIKE

Оператор SQL LIKE находит записи в базе данных, значения столбцов которых соответствуют определённому шаблону. Шаблоны выражаются с помощью знаков процента, подчёркивания и текста, который вы ищете.

Например, мы можем использовать LIKE, чтобы получить всех сотрудников, чьи имена заканчиваются на S или чьё название включает Associate.

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

  • _ — символ подчёркивания представляет собой один символ.
  • % — знак процента представляет ноль, один или несколько символов.

Вот структура запроса с использованием оператора LIKE:

SELECT column_name FROM table_name
WHERE column_name LIKE pattern;

В этом синтаксисе мы используем оператор LIKE в инструкции SQL SELECT. Вы можете использовать этот оператор в операторах INSERT, UPDATE и DELETE.

Давайте воспользуемся примером, чтобы проиллюстрировать, как работает SQL LIKE.

Пример SQL LIKE

Допустим, у нас есть таблица с информацией о сотрудниках, которые работают в компании. Мы хотим, чтобы получить имена и ветви каждого сотрудника, который работает в отрасли, чьё имя начинается с буквы S.

Для этого мы можем использовать следующий запрос:

SELECT name, branch FROM employees
WHERE branch LIKE ‘S%’;

База данных SQL-сервера возвращает:

имяответвляться
МайкСтэмфорд
ДжеффСан-Франциско
ХаннаСан-Франциско

(3 ряда)

Знак процента после буквы S говорит наш код, который мы хотим получить все отрасли, чьё имя начинается с буквы S.  Наш запрос возвращает каждое совпадение символьной строки.

Если бы мы хотели получить имена и должности каждого сотрудника, который является партнёром, включая старших сотрудников, мы могли бы использовать этот запрос:

SELECT name, title FROM employees
WHERE title LIKE ‘%Associate%’;

Наш запрос находит всех сотрудников, имена которых соответствуют шаблону «% Associate%». Запрос возвращает следующее:

имязаглавие
ЛюкСотрудник по продажам
МайкСотрудник по продажам
АлексисСотрудник по продажам
ХаннаСотрудник по продажам
ДжеффСтарший специалист по продажам

Пример SQL NOT LIKE

Мы можем использовать оператор NOT LIKE, чтобы выбрать все записи, которые не соответствуют определённому условию. Оператор NOT LIKE представляет собой комбинацию операторов SQL NOT и LIKE. Оператор NOT находит записи, не соответствующие условию.

Например, мы могли бы использовать NOT LIKE, чтобы получить имена каждого сотрудника, имя которого не превышает четырёх символов. Вот SQL-запрос, который мы могли бы использовать для этой цели:

SELECT name FROM employees
WHERE name NOT LIKE ‘____’;

Наш запрос пропустит каждого сотрудника, имя которого не состоит из четырёх символов, и вернёт остальных.

Каждый подстановочный знак подчёркивания представляет один символ. Если имя состоит из более или менее четырёх символов, оно не будет отображаться в нашем наборе результатов.

Наша база данных возвращает все записи, соответствующие нашему шаблону поиска:

имя
Алексис
Ханна
Джона
Джефф

(4 ряда)

Вывод

Оператор SQL LIKE позволяет использовать шаблоны для поиска записей в базе данных. Вы можете использовать эту запись для поиска похожих записей без указания точного совпадения, которое должно быть выполнено. Оператор LIKE появляется в разделе WHERE оператора SQL.

В этой статье мы обсудили, как вы можете использовать оператор LIKE SQL, чтобы сделать ваши запросы более конкретными. Мы также обсудили, как вы можете использовать оператор NOT LIKE для получения информации, не соответствующей определённым правилам.

SQL LIKE

Резюме : в этом руководстве вы узнаете, как использовать оператор SQL LIKE для проверки соответствия значения шаблону.

Знакомство с оператором SQL LIKE

Оператор LIKE является одним из логических операторов SQL. Оператор LIKE возвращает значение true, если значение соответствует шаблону, или false в противном случае.

Синтаксис оператора LIKE следующий:

   выражение LIKE шаблон  

Язык кода: SQL (язык структурированных запросов) (sql)

В этом синтаксисе оператор LIKE проверяет, соответствует ли выражение шаблону. Стандарт SQL предоставляет вам два подстановочных знака для создания шаблона:

  •   % процентов подстановочный знак соответствует нулю, одному или нескольким символам
  •   _ подстановочный знак соответствует одному символу.

Ниже показан пример использования подстановочных знаков % и _:

Выражение Значение
НРАВИТСЯ  'Kim%' соответствует строке, начинающейся с  Kim
LIKE '%er' соответствует строке, которая заканчивается на er
LIKE '%ch%' соответствует строке, содержащей ch
LIKE 'Le_' соответствует строке, начинающейся с Le  и после которого следует один символ, например, Les, Len…
LIKE '_uy' соответствует строке, которая заканчивается на uy и которой предшествует один символ, например . , парень
НРАВИТСЯ '%are_' найти строку, содержащую are и заканчивающуюся одним символом
LIKE с одним символом и заканчивается любым количество символов

Обратите внимание, что помимо подстановочных знаков % и _ в некоторых системах баз данных могут быть другие подстановочные знаки, характерные для этих баз данных.

NOT LIKE

Для инвертирования оператора LIKE используется оператор NOT :

   выражение NOT LIKE шаблон Оператор  NOT LIKE  возвращает значение true, если выражение не соответствует шаблон или ложь в противном случае. 

Экранирующий символ

Чтобы сопоставить строку, содержащую подстановочный знак, например 10% , необходимо указать оператору LIKE обрабатывать % в 10% как обычный символ.

Для этого необходимо явно указать escape-символ после предложения ESCAPE :

   выражение LIKE pattern ESCAPE escape_character  

Язык кода: SQL (язык структурированных запросов) (sql) 9002 2

Например :

   значение LIKE '%10!%%' ESCAPE '!'  

Язык кода: JavaScript (javascript)

В этом примере ! является escape-символом. Он указывает оператору LIKE рассматривать % в 10% как обычный символ.

На практике вы часто используете оператор LIKE в предложении WHERE операторов SELECT , UPDATE и DELETE .

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

Мы будем использовать таблицу сотрудников из примера базы данных для демонстрации.

В следующем примере оператор LIKE используется для поиска всех сотрудников, чьи имена начинаются с Da :

   SELECT
идентификатор_сотрудника,
имя,
фамилия
ОТ
сотрудники
ГДЕ
first_name LIKE 'Да%';  

Язык кода: SQL (язык структурированных запросов) (sql)

Попробуйте

   +-------------+------------ -+-----------+
| идентификатор_сотрудника | имя_имя | фамилия |
+-------------+-------------+-----------+
| 105 | Дэвид | Остин |
| 109| Даниэль | Фавиет |
+-------------+------------+-----------+ 

Кодовый язык: открытый текст (opentext)

В следующем примере оператор LIKE используется для поиска всех сотрудников, чьи имена заканчиваются на или :

   SELECT
идентификатор_сотрудника,
имя,
фамилия
ОТ
сотрудники
ГДЕ
first_name LIKE '%er';  

Язык кода: SQL (язык структурированных запросов) (sql)

Попробуйте

   +-------------+------------ -+-----------+
| идентификатор_сотрудника | имя_имя | фамилия |
+-------------+-------------+-----------+
| 103 | Александр | Хунольд |
| 115 | Александр | Кху |
| 200 | Дженнифер | Уэлен |
+-------------+-------------+-----------+ 

Кодовый язык: открытый текст (открытый текст)

В следующем примере оператор LIKE используется для поиска сотрудников, чьи фамилии содержат слово и :

   SELECT
идентификатор_сотрудника,
имя,
фамилия
ОТ
сотрудники
ГДЕ
last_name LIKE '%an%';  

Язык кода: SQL (язык структурированных запросов) (sql)

Попробуйте

   +-------------+----------- --+-----------+
| идентификатор_сотрудника | имя_имя | фамилия |
+-------------+--------------+-----------+
| 102 | Лекс | Де Хаан |
| 112 | Хосе Мануэль | Урман |
| 123 | Шанта | Воллман |
| 178 | Кимберели | Грант |
+-------------+--------------+-----------+ 

Кодовый язык: открытый текст (открытый текст)

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

   SELECT
идентификатор_сотрудника,
имя,
фамилия
ОТ
сотрудники
ГДЕ
first_name LIKE 'Джо__';  

Язык кода: SQL (язык структурированных запросов) (sql)

Попробуйте

   +-------------+----------- -+-----------+
| идентификатор_сотрудника | имя_имя | фамилия |
+-------------+-------------+-----------+
| 110 | Джон | Чен |
| 145 | Джон | Рассел |
+-------------+-------------+-----------+ 

Кодовый язык: открытый текст (открытый текст)

В следующем операторе используется оператор LIKE с подстановочными знаками % и _ для поиска сотрудников, чьи имена начинаются с любого количества символов и за которыми следует не более одного символа:

   ВЫБЕРИТЕ
идентификатор_сотрудника,
имя,
фамилия
ОТ
сотрудники
ГДЕ
first_name LIKE '%are_';  

Язык кода: SQL (язык структурированных запросов) (sql)

Попробуйте

   +-------------+-------------+------------+
| идентификатор_сотрудника | имя_имя | фамилия |
+-------------+-------------+-------------+
| 119 | Карен | Кольменарес |
| 146 | Карен | Партнеры |
+-------------+------------+------------+  

Пример оператора SQL NOT LIKE

В следующем примере используется оператор NOT LIKE для поиска всех сотрудников, чьи имена начинаются с буквы S , но не начинаются с Sh :

   ВЫБЕРИТЕ
идентификатор_сотрудника,
имя,
фамилия
ОТ
сотрудники
ГДЕ
имя_имя НРАВИТСЯ 'S%'
И first_name НЕ НРАВИТСЯ 'Sh%'
СОРТИРОВАТЬ ПО
имя;  

Язык кода: SQL (язык структурированных запросов) (sql)

Попробуйте

   +-------------+------------ -+-----------+
| идентификатор_сотрудника | имя_имя | фамилия |
+-------------+-------------+-----------+
| 192 | Сара | Белл |
| 117 | Сигал | Тобиас |
| 100 | Стивен | король |
| 203 | Сьюзен | Маврис |
+-------------+-------------+-----------+  

Кодовый язык: открытый текст (открытый текст)

Сводка

  • Оператор LIKE возвращает значение true, если значение соответствует шаблону, или false в противном случае.
  • Используйте оператор NOT для отмены оператора LIK.
  • Используйте подстановочный знак % для соответствия одному или нескольким символам.
  • Используйте подстановочный знак _ для соответствия одному символу.

Было ли это руководство полезным?

SQL ГДЕ НРАВИТСЯ - Essential SQL

В этой статье вы научитесь использовать оператор LIKE в своем SQL. В большинстве ситуаций вы обнаружите, что используете LIKE в предложении WHERE для фильтрации данных с использованием шаблонов, таких как все значения, начинающиеся с «S». Использование этой фразы позволяет нам выполнять частичное совпадение значений данных и получать ответы на вопросы, которые нельзя сделать с помощью обычных сравнений.

Цели урока:

  1. узнать об условии совпадения LIKE
  2. понимать подстановочные знаки

Важно!  Пожалуйста, выполняйте примеры в своей базе данных. Если вы еще этого не сделали, подпишитесь на мое руководство по началу работы с SQL Server. Вы получите инструкции по установке бесплатных инструментов и примера базы данных.

Содержание

  • SQL WHERE LIKE Сопоставление с образцом
    • Часто используемые подстановочные знаки SQL LIKE
    • Использовать SQL Like для сопоставления номера телефона 1-800
    • Соответствие номеру социального страхования
  • SQL Like Упражнения
  • Узнайте больше о SQL WHERE LIKE

SQL WHERE LIKE Сопоставление с образцом

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

Пример, где предложение, использующее условие LIKE для поиска всех Сотрудников, чьи имена начинаются с «R», выглядит следующим образом:

 SELECTBusinessEntityID,
    Имя,
    Фамилия,
    Второе имя
FROMPerson. Person
WHEREFirstName как «R%»
 

Здесь важно отметить, что мы используем LIKE для сопоставления.

Вам может быть интересно, что такого особенного в этом поиске, как вы могли бы так же просто, как написать

 ГДЕ Имя >= 'R' И Имя < 'S' 

, чтобы получить тот же результат, но как насчет поиска всех имен, оканчивающихся на букву s? Не существует простого способа использовать для этого традиционные операторы сравнения, но с этим легко справиться с помощью LIKE: 9.0007

 SELECTBusinessEntityID,
    Имя,
    Фамилия,
    Второе имя
FROMPerson.Person
WHEREFirstName как '%s' 

"R%" и "%s" являются шаблонами. Шаблоны создаются с использованием символов-заполнителей. Используется несколько специальных символов.

Часто используемые подстановочные знаки SQL LIKE

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

9aeiouy]%’ находит все имена, начинающиеся с T, у которых вторая буква не является гласной, например, Thomas.
Подстановочный знак Описание Пример
% Любая строка из нуля или более символов WHERE FirstName LIKE 'G' находит все имена, начинающиеся с G.
_ ( подчеркивание) Одиночный символ ГДЕ Имя ИМЕНИ LIKE 'T_M' находит все трехбуквенные имена, начинающиеся с T и заканчивающиеся на M, такие как Тим и Том.

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

У меня тут голова на голове, но эти подстановочные знаки дурацкие. Итак, прежде чем мы зайдем слишком далеко, давайте покажем результаты этого примера списка, чтобы наглядно увидеть, как он работает!

Обратите внимание, что [^aeiouy] ограничивает FirstName. Ни одно имя не содержит гласных во второй позиции.

SQL Like % и _ Примеры подстановочных знаков

Давайте посмотрим на подстановочный знак %. Образец «% и %» соответствует «W и », « и » или «St и ard.»

.

Чтобы найти все аббревиатуры состояний, начинающиеся с буквы N, мы могли бы использовать шаблон «N%», так как он будет соответствовать всем значениям, у которых первый символ — «N», а затем любые последующие символы.

Тем не менее, поскольку аббревиатуры состояний состоят из двух символов, «N_» является более точным, так как это означает, что сначала соответствует «N», а затем один и только один символ после этого. Мы также можем сопоставить анти-шаблон, используя NOT. Если вы ищете все имена, которые не заканчиваются на S, используйте пункт 9.0007

 ГДЕ Имя НЕ ТАКОЕ '%s' 

Это будет соответствовать «Бейкер», «Мичиган» или «Росомаха», но не «Продажи» или «Воздушные змеи»

Как и в случае других предложений, сравнения LIKE можно комбинировать с другими сравнениями с помощью И и ИЛИ.

Итак, чтобы найти всех сотрудников в базе данных AdventureWorks2012, которые являются менеджерами и женщинами, мы можем использовать следующий запрос:

 ВЫБЕРИТЕ национальный идентификатор,
       Должность,
       Дата рождения,
       Семейное положение,
       Пол,
       Дата приема на работу
ОТ   HumanResources.Employee
ГДЕ Employee.JobTitle LIKE '%manager%'
       И Сотрудник.Пол = 'F' 

Здесь вы можете увидеть сопоставление с образцом в действии.

Также посмотрите, как мы объединили предложение LIKE с равенством с помощью условного оператора AND.

Использовать SQL Like для

Соответствие номеру телефона 1-800

Таким образом, если вы хотите найти телефонные номера «1-800», вы можете выполнить поиск, например,

.
 ГДЕ PhoneNumber LIKE '%800%' 

Но это может соответствовать большему, чем вы рассчитывали, так как такие номера, как 1-248-703-9800, также могут совпадать. Таким образом, вы можете уточнить поиск, чтобы быть более конкретным.

 ГДЕ PhoneNumber LIKE '%(800)%'
      ИЛИ Телефонный номер КАК '%800 %' 

Для сопоставления таких номеров, как (800) 555-1212 или 1-800 555-1212; однако это может иметь неприятные последствия, так как теперь такие номера, как 1-800-555-1212, не будут совпадать, конечно, вы можете поймать это с помощью дополнительных условий совпадения. Окончательный результат будет:

 ГДЕ PhoneNumber LIKE '%(800)%'
      ИЛИ Номер телефона, КАК '%800 %'
      ИЛИ Номер телефона КАК '%800-%' 

У вас может возникнуть ситуация, когда вы захотите получить все государственные идентификаторы, соответствующие шаблону идентификатора социального обеспечения США. Чтобы сделать это соответствие, вы можете использовать следующие

 ГДЕ GovernmentID LIKE '___-__-____' 

Это будет соответствовать таким числам, как «123-12-1234», но не «12-12-12». Если вы хотите найти все идентификаторы, которые не соответствуют номеру социального страхования, вы можете написать свой запрос как:

 ГДЕ GovernmentID НЕ НРАВИТСЯ '___-__-____' 

SQL Like

Упражнения

Важно практиковаться! Используйте образец базы данных, чтобы ответить на эти вопросы.

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *