PostgreSQL - LIKE Clause: A Friendly Guide for Beginners
Здравствуйте, будущие маги баз данных! Сегодня мы отправимся в увлекательное путешествие в мир PostgreSQL, уделяя особое внимание предложению LIKE. Не волнуйтесь, если вы новички – я буду вашим дружелюбным проводником, и мы будем двигаться шаг за шагом. К концу этого руководства вы будете использовать предложению LIKE как профессионал!
Что такое предложению LIKE?
Прежде чем мы углубимся в детали, давайте поймем, что такое предложению LIKE. Представьте, что вы пытаетесь найти книгу в огромной библиотеке, но помните только часть названия. Не было бы замечательно, если бы вы могли искать книги с аналогичными названиями? Именно это делает предложению LIKE в PostgreSQL – он помогает вам искать данные, соответствующие определенному шаблону.
Предложению LIKE используется в SQL WHERE для поиска указанного шаблона в столбце. Это как суперcharged функция поиска, которая понимает wildcard. Круто, правда?
Синтаксис предложению LIKE
Теперь давайте посмотрим на базовый синтаксис предложению LIKE:
SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;
Не пугайтесь! Мы разберем это:
-
SELECT column1, column2, ...
: Здесь вы указываете, какие столбцы хотите видеть в своих результатах. -
FROM table_name
: Это таблица, в которой вы ищете. -
WHERE columnN LIKE pattern
: Здесь happens магия. Вы instruct PostgreSQL искать вcolumnN
данные, соответствующие вашемуpattern
.
Символы-заполнители в предложению LIKE
Прежде чем мы перейдем к примерам, давайте поговорим о двух особых символах, которые делают предложению LIKE такими мощными:
-
%
(пробел): Это represents ноль, один или несколько символов. -
_
(подчеркивание): Это represents один символ.
Представьте их как джокеры в card игра – они могут substituted за другие символы в вашем поисковом шаблоне.
Примеры использования предложению LIKE в действии
Давайте погрузимся в несколько примеров, чтобы увидеть, как работает предложению LIKE в реальных scenarios. Представим, что у нас есть таблица books
с column book_id
, title
, и author
.
Пример 1: Поиск заголовков, начинающихся с 'The'
SELECT title
FROM books
WHERE title LIKE 'The%';
Этот запрос вернет все book заголовки, начинающиеся с 'The'. %
после 'The' означает "следует за любым количеством символов".
Так это может вернуть:
- The Great Gatsby
- The Catcher in the Rye
- The Hobbit
Пример 2: Поиск авторов с 'son' в их имени
SELECT author
FROM books
WHERE author LIKE '%son%';
Этот запрос ищет авторов с 'son' в любом месте их имени. %
до и после 'son' означает "любые символы до и после".
Это может вернуть:
- Jodi Picoult
- Orson Scott Card
- Jason Reynolds
Пример 3: Поиск заголовков с точным количеством 5 символов
SELECT title
FROM books
WHERE title LIKE '_____';
Здесь мы используем пять подчеркиваний, чтобы найти заголовки, которые exact 5 символов.
Это может вернуть:
- Dunes
- Ender
- Holes
Пример 4: Case-insensitive поиск
По умолчанию предложению LIKE является чувствительным к регистру. Но что, если вы хотите найти 'the' независимо от того,是大写 или строчный? PostgreSQL имеет решение:
SELECT title
FROM books
WHERE LOWER(title) LIKE '%the%';
Этот запрос преобразует все заголовки в строчные перед поиском, поэтому он найдет 'The', 'THE', 'the' и любую другую комбинацию.
Продвинутые техники предложению LIKE
Теперь, когда у вас есть базовые знания, давайте посмотрим на некоторые более продвинутые техники.
Использование NOT LIKE
Иногда вы хотите найти все, что не соответствует шаблону. Вот где приходит NOT LIKE:
SELECT title
FROM books
WHERE title NOT LIKE 'The%';
Этот запрос найдет все заголовки, не начинающиеся с 'The'.
Уклонение от special символов
Что, если вы хотите искать заголовок, который действительно включает '%' или '_'? Вы можете использовать escape символ:
SELECT title
FROM books
WHERE title LIKE '50\% off%' ESCAPE '\';
Этот запрос найдет заголовки, начинающиеся с '50% off', treat '%', как literate символ, а не wildcard.
Методы предложению LIKE
Вот таблица, резюмирующая различные методы, которые мы можем использовать с предложению LIKE:
Method | Description | Example |
---|---|---|
LIKE 'pattern' | Matches the exact pattern | WHERE title LIKE 'The Great Gatsby' |
LIKE '%pattern%' | Matches pattern anywhere | WHERE title LIKE '%Great%' |
LIKE 'pattern%' | Matches pattern at the beginning | WHERE title LIKE 'The%' |
LIKE '%pattern' | Matches pattern at the end | WHERE title LIKE '%Gatsby' |
LIKE 'pattern' | Matches pattern with single character wildcards | WHERE title LIKE 'he' |
NOT LIKE 'pattern' | Matches everything not matching the pattern | WHERE title NOT LIKE 'The%' |
ILIKE 'pattern' | Case-insensitive LIKE | WHERE title ILIKE 'the%' |
Заключение
И вот вы, folks! Вы только что сделали свои первые шаги в чудесный мир предложению LIKE в PostgreSQL. Помните, что практика делает perfect, поэтому не бойтесь экспериментировать с различными шаблонами и комбинациями.
Предложению LIKE – это мощный инструмент в вашем PostgreSQL toolkit, позволяющий вам искать данные с гибкостью и точностью. Независимо от того, ищете ли вы book заголовки, имена клиентов или любую другую текстовую информацию, предложению LIKE всегда поможет.
Продолжайте исследовать, продолжайте запрашивать и,最重要的是, continue having fun с базами данных! Кто знает? Вы можете стать следующим superdatabase супергероем. До свидания, счастливого кодирования!
Credits: Image by storyset