0Pricing
SQL Academy · 강의

LIKE 패턴과 와일드카드

%와 _ 와일드카드와 함께 LIKE를 사용하고 대소문자 구분을 이해하며, 대소문자를 구분하지 않는 일치에는 PostgreSQL의 ILIKE를 우선 사용합니다.

LIKE 패턴과 와일드카드은(는) CoddyKit의 무료 SQL Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 SQL Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. SQL Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

LIKE의 기능

LIKE는 문자열을 패턴과 비교합니다. 와일드카드는 두 가지입니다:

  • % — 빈 문자열을 포함한 모든 문자열
  • _ — 정확히 하나의 문자

간단한 예

접두사, 접미사 및 부분 문자열로 일치시킵니다:

SELECT email FROM users WHERE email LIKE 'a%';        -- starts with a
SELECT email FROM users WHERE email LIKE '%@gmail.com'; -- ends with @gmail.com
SELECT email FROM users WHERE email LIKE '%admin%';     -- contains admin

한 문자 와일드카드

_는 정확히 하나의 문자와 일치합니다. 고정 너비 코드에 유용합니다:

-- 6-char SKU starting with A:
SELECT * FROM products WHERE sku LIKE 'A_____';

-- US zip+4:
SELECT * FROM addresses WHERE zip LIKE '_____-____';

대소문자 구분

PostgreSQL에서 LIKE는 기본적으로 대소문자를 구분합니다. 대소문자를 구분하지 않고 일치시키려면 ILIKE를 사용하십시오:

SELECT * FROM users WHERE email LIKE  '%@gmail.com';  -- ✗ misses @GMAIL.com
SELECT * FROM users WHERE email ILIKE '%@gmail.com';  -- ✓

와일드카드 이스케이프하기

리터럴 % 또는 _와 일치시키려면 백슬래시로 이스케이프하거나 직접 ESCAPE 문자를 정의하십시오:

-- Match strings that contain '50%':
SELECT * FROM coupons WHERE code LIKE '%50\%%';

-- Custom escape character:
SELECT * FROM coupons WHERE code LIKE '%50!%%' ESCAPE '!';

LIKE와 인덱스

B-트리 인덱스는 접두사 패턴에만 도움이 됩니다:

-- Uses index (prefix is fixed):
SELECT * FROM users WHERE email LIKE 'alice%';

-- Does NOT use a normal index (leading wildcard):
SELECT * FROM users WHERE email LIKE '%example.com';

앞쪽 와일드카드 검색 개선하기

"%example%" 검색에는 삼중항(pg_trgm) GIN 인덱스를 사용하십시오. Advanced Indexing에서 다룹니다.

CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE INDEX users_email_trgm_idx ON users USING GIN (email gin_trgm_ops);

SELECT * FROM users WHERE email LIKE '%example%';  -- now indexable

NOT LIKE

일치 결과를 부정합니다:

SELECT * FROM emails WHERE subject NOT LIKE 'RE:%';

SIMILAR TO와 정규 표현식(PostgreSQL)

더 풍부한 패턴 일치가 필요할 때 사용합니다:

-- SIMILAR TO — SQL regex (rarely used)
SELECT 'abc' SIMILAR TO '%(a|b)%';      -- TRUE

-- POSIX regex:
SELECT 'abc123' ~ '^[a-z]+[0-9]+$';     -- TRUE
SELECT 'ABC'    ~* 'abc';                -- TRUE (case insensitive)

검색 상자 만들기

사용자 검색 상자를 연결할 때는 예상하지 못한 동작을 방지하기 위해 먼저 입력값의 와일드카드를 정제하십시오:

-- Escape user input's special chars before concatenating to LIKE pattern,
-- or use to_tsquery for word-level search.

SELECT * FROM products
WHERE LOWER(name) LIKE LOWER('%' || $1 || '%');

전문 검색을 직접 다시 만들지 마십시오

문서 전체에서 순위가 지정되고 언어를 인식하는 검색을 하려면 LIKE가 아니라 tsvector + GIN을 사용하십시오. Advanced Indexing에서 나중에 다룹니다.

복습

LIKE는 간단한 패턴 일치에 적합합니다.

  • % = 모든 문자열, _ = 한 문자
  • 대소문자를 구분하지 않으려면 ILIKE 사용
  • 접두사 검색에는 B-트리, 부분 문자열 검색에는 삼중항 사용

빠른 확인

.com으로 끝나는 문자열과 일치하는 패턴은 무엇입니까?

자주 묻는 질문

“LIKE 패턴과 와일드카드” 강의는 무료인가요?

네 — “LIKE 패턴과 와일드카드” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 SQL Academy 강의 전체를 잠금 해제할 수 있습니다. SQL Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“LIKE 패턴과 와일드카드”에서 뭘 배우나요?

%와 _ 와일드카드와 함께 LIKE를 사용하고 대소문자 구분을 이해하며, 대소문자를 구분하지 않는 일치에는 PostgreSQL의 ILIKE를 우선 사용합니다. 브라우저에서 직접 실행하는 실습 코드로 SQL Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

SQL Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 SQL Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“LIKE 패턴과 와일드카드” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 SQL Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 SQL Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. LIKE 패턴과 와일드카드
  2. 집합을 위한 IN과 NOT IN
  3. 범위를 위한 BETWEEN
  4. IS NULL, IS NOT NULL과 COALESCE
← SQL Academy(으)로 돌아가기