Учебники

12) PostgreSQL LIKE

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

Если совпадение происходит, оператор LIKE возвращает true. С помощью оператора LIKE можно использовать подстановочные знаки в предложении WHERE операторов SELECT, UPDATE, INSERT или DELETE.

В этом руководстве по PostgreSQL вы узнаете следующее:

Дикие карты

Есть только два подстановочных знака, которые можно использовать вместе с

  • Знак процента (%)
  • Подчеркивать (_)

Знак процента (%) используется для обозначения нуля, одного или нескольких символов или цифр.

Подстановочный знак (_) используется для обозначения одного символа или числа. Эти символы также могут быть объединены. Если оператор LIKE не используется вместе с этими двумя знаками, он будет действовать как оператор равенства.

Синтаксис

Вот синтаксис для оператора LIKE:

expression LIKE pattern [ ESCAPE 'escape-character' ]

Выражение является символьным выражением, таким как столбец или поле.

Шаблон представляет собой символьное выражение с сопоставлением с шаблоном.

Экранирующий символ является необязательным параметром. Это позволяет тестировать литеральные символы подстановки, такие как% и _. Если он не указан, \ будет использоваться в качестве escape-символа.

Использование подстановочного знака%

Как мы уже говорили ранее, знак% соответствует нулю, одному или нескольким символам или числам. Рассмотрим следующую таблицу:

Книга:

Мы хотим, чтобы книга, имя которой было похоже на «Lear…», чтобы получить такой результат, мы можем запустить следующую команду:

SELECT *
FROM
   Book
WHERE
   name LIKE 'Lear%';

Это вернет следующее:

Книга была найдена.

Давайте поищем книгу «по» по названию:

SELECT *
FROM
   Book
WHERE
   name LIKE '%by%';

Это вернет следующее:

Используя _ подстановочный знак

Как мы уже говорили ранее, знак _ представляет один символ или число. Его можно использовать, как показано ниже:

SELECT *
FROM
   Book
WHERE
   name LIKE '_earn%';

Это возвращает следующее:

Вот еще один пример:

SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';

Это возвращает следующее:

Использование оператора NOT

Когда оператор LIKE объединяется с оператором NOT, возвращается любая строка, которая не соответствует шаблону поиска. Например, чтобы увидеть книгу, название которой не начинается с «post», мы можем запустить следующую команду:

SELECT *
FROM
   Book
WHERE
  name NOT LIKE 'Post%';

Это возвращает следующее:

Только одна книга соответствует условиям поиска. Давайте посмотрим на список названий книг, у которых нет слова «Сделано»:

SELECT *
FROM
   Book
WHERE
  name NOT LIKE '%Made%';

Это возвращает следующее:

3 строки встретили условие поиска.

Использование pgAdmin

Теперь давайте посмотрим, как действия могут быть выполнены с помощью pgAdmin.

Использование подстановочного знака%

Шаг 1) Войдите в свою учетную запись pgAdmin.

Шаг 2)

  1. На панели навигации слева нажмите Базы данных.
  2. Нажмите Демо.

Шаг 3) Введите запрос в редакторе запросов:

SELECT *
FROM
   Book
WHERE
   name LIKE 'Lear%';

Шаг 4) Нажмите кнопку «Выполнить».

Он должен вернуть следующее:

Чтобы найти книгу «по» по ее названию:

Шаг 1) Введите следующую команду в редакторе запросов:

SELECT *
FROM
   Book
WHERE
   name LIKE '%by%';

Шаг 2) Нажмите кнопку «Выполнить».

Он должен вернуть следующее:

Используя _ подстановочный знак

Шаг 1) Войдите в свою учетную запись pgAdmin.

Шаг 2)

  1. На панели навигации слева нажмите Базы данных.
  2. Нажмите Демо.

Шаг 3) Введите запрос в редакторе запросов:

SELECT *
FROM
   Book
WHERE
   name LIKE '_earn%';

Шаг 4) Нажмите кнопку «Выполнить».

Он должен вернуть следующее:

Шаг 5) Для запуска второго примера:

  1. Введите следующий запрос в редакторе запросов:
    SELECT *
    FROM
       Book
    WHERE
       name LIKE '%Beginner_';
    
  2. Нажмите кнопку Выполнить.

Он должен вернуть следующее:

Использование оператора NOT

Шаг 1) Войдите в свою учетную запись pgAdmin.

Шаг 2)

  1. На панели навигации слева нажмите Базы данных.
  2. Нажмите Демо.

Шаг 3) Чтобы увидеть все книги, названия которых не начинаются с «Опубликовать», введите запрос в редакторе запросов:

SELECT *
FROM
   Book
WHERE
  name NOT LIKE 'Post%';

Шаг 4) Нажмите кнопку «Выполнить».

Он должен вернуть следующее:

Чтобы увидеть список книг, в названиях которых нет слова «Сделано»:

Шаг 1) Введите следующий запрос в редакторе запросов:

SELECT *
FROM
   Book
WHERE
  name NOT LIKE '%Made%';

Шаг 2) Нажмите кнопку «Выполнить».

Он должен вернуть следующее:

Резюме:

  • PostgreSQL LIKE используется для сопоставления текстовых значений с шаблонами с использованием подстановочных знаков.
  • Предложение LIKE позволяет нам использовать подстановочные знаки в инструкциях SELECT, UPDATE, INSERT или DELETE.
  • Подстановочный знак% соответствует одному или нескольким значениям. Значения могут быть числами или символами.
  • Подстановочный знак _ соответствует ровно одному значению. Значение может быть символом или числом.
  • Оператор LIKE может быть объединен с оператором NOT для возврата любой строки, которая не соответствует шаблону поиска.

Загрузите базу данных, использованную в этом руководстве