🧚 잠깐만요! Beekeeper Studio는 빠르고 모던한 오픈 소스 데이터베이스 GUI예요 다운로드
2026년 1월 13일 작성자: Matthew Rathbone

LIKE는 텍스트가 패턴과 일치하는지 확인해요. 여기서 %는 임의 길이의 문자열을, _는 정확히 한 글자를 나타내요. 특정 텍스트를 포함하거나, 그 텍스트로 시작하거나 끝나는 값을 찾을 때 사용해요. 예제는 PostgreSQL, MySQL, SQLite, SQL Server에서 동작해요.

LIKE 사용법

LIKE는 값을 패턴과 비교해요. 패턴은 값 전체와 일치해야 하고, 빈 부분은 두 가지 와일드카드로 채워요. %는 0개 이상의 문자와, _는 정확히 한 글자와 일치해요. NOT LIKE는 반대 결과를 반환해요.

expression [NOT] LIKE pattern [ESCAPE escape_character]
-- In SQL Server, LIKE only works in a condition, such as a WHERE clause
SELECT 'Joe Bloggs' LIKE 'Jo%';
-- Output: true

SELECT 'Joe Bloggs' LIKE 'J_e%';
-- Output: true

SELECT 'Joe Bloggs' LIKE 'Bloggs';
-- Output: false

마지막 결과가 false인 이유는 와일드카드가 없으면 패턴이 값 전체와 같아야 하기 때문이에요. 쿼리에서 LIKE는 보통 WHERE 절에 들어가요:

-- Input: customers
-- id | name
-- ---+-------------
-- 1  | Joe Bloggs
-- 2  | Jane Doe
-- 3  | Joanna Smith
-- 4  | Bob Jones

SELECT name
FROM customers
WHERE name LIKE 'Jo%';

-- Output:
-- name
-- ------------
-- Joe Bloggs
-- Joanna Smith

알아 둘 규칙

  • PostgreSQL의 LIKE는 대소문자를 구분해요. 다른 데이터베이스는 기본적으로 대소문자를 무시하지만, PostgreSQL에서는 'Smith' LIKE 'smith'가 false예요. 대소문자를 구분하지 않으려면 LOWER(name) LIKE '%smith%'처럼 양쪽을 소문자로 바꾸세요.
  • NULL은 절대 일치하지 않아요. NULL LIKE '%'는 true가 아니라 NULL이라서, 컬럼이 NULL인 행은 LIKE와 NOT LIKE 모두에서 빠져요. 이런 행도 포함하려면 OR column IS NULL을 추가하세요.
SELECT NULL LIKE '%';
-- Output: NULL
  • %와 _를 문자 그대로 찾으려면 이스케이프하세요. 와일드카드 앞에 이스케이프 문자를 붙이고 ESCAPE로 지정하세요:
-- Input: discounts
-- id | description
-- ---+---------------------
-- 1  | 50% off winter coats
-- 2  | Spend 50, save 10
-- 3  | Up to 25% off shoes

-- Without escaping, the % after 50 is a wildcard
SELECT * FROM discounts
WHERE description LIKE '%50%%';

-- Output:
-- id | description
-- ---+---------------------
-- 1  | 50% off winter coats
-- 2  | Spend 50, save 10

-- With ESCAPE '\', the \% matches a real percent sign
-- (in MySQL, write ESCAPE '\\': a single backslash escapes the quote)
SELECT * FROM discounts
WHERE description LIKE '%50\%%' ESCAPE '\';

-- Output:
-- id | description
-- ---+---------------------
-- 1  | 50% off winter coats
  • 앞에 %가 오면 인덱스를 쓸 수 없어요. LIKE 'INV-2026-%' 같은 접두사 검색은 컬럼의 인덱스를 활용할 수 있지만, LIKE '%widget%'는 모든 행을 확인해야 해요. 대량의 텍스트에서 단어를 검색하려면 대신 데이터베이스의 전문 검색(full-text search)을 사용하세요.

대체 문법

다음과 같은 데이터베이스별 추가 기능도 볼 수 있어요:

-- PostgreSQL: ILIKE ignores case
SELECT 'SMITH' ILIKE 'smith';
-- Output: true

-- SQL Server: [ ] in a LIKE pattern matches one character from a set or range
SELECT CASE WHEN 'B12' LIKE '[A-C]%' THEN 'match' ELSE 'no match' END;
-- Output: match

-- MySQL: REGEXP for regular expressions (PostgreSQL uses ~)
SELECT 'A12-345' REGEXP '^A[0-9]{2}-[0-9]{3}$';
-- Output: 1

패턴 없이 텍스트에 특정 문자열이 포함되어 있는지 확인하려면 그 위치를 찾으세요. 문자열이 없으면 결과는 0이에요:

SELECT INSTR('FinTech Corp', 'Tech');
-- Output: 4

-- PostgreSQL: POSITION('Tech' IN 'FinTech Corp')
-- SQL Server: CHARINDEX('Tech', 'FinTech Corp')

SQL Server의 CONTAINS()는 부분 문자열 검사가 아니에요. 전문 인덱스가 필요한 전문 검색 조건자예요.

LIKE는 언제 사용해야 할까요?

값의 일부만 알고 전체는 모를 때 LIKE를 사용하세요. 대부분의 용도는 다음 네 가지 중 하나에 해당해요.

특정 단어가 포함된 텍스트 찾기

단어 양쪽에 %를 붙이세요. '%Tech%'는 더 긴 단어 안에서도 일치하기 때문에 “Tech Solutions Inc”, “FinTech Corp”, “Technology Partners”와 모두 일치해요.

값의 시작이나 끝 일치시키기

접두사를 찾으려면 'INV-2026-%'처럼 끝에만, 접미사를 찾으려면 '%.pdf'나 '%@gmail.com'처럼 앞에만 %를 붙이세요. 인덱스로 속도를 높일 수 있는 건 접두사 검색이에요.

고정된 형식 일치시키기

_는 정확히 한 글자를 나타내므로 패턴으로 값의 형태를 표현할 수 있어요. 전화번호는 '___-___-____', 제품 코드는 'A__-___'처럼요. NOT LIKE와 함께 쓰면 같은 패턴으로 형식에 맞지 않는 값을 찾을 수 있어요.

대소문자 상관없이 검색하기

사용자는 “smith”라고 입력하는데 데이터에는 “Smith”로 저장되어 있죠. LOWER()로 양쪽을 소문자로 바꾸면 PostgreSQL에서도 대소문자를 무시하고 검색해요.

LIKE 실전 예제

여러 단어 중 하나로 검색하기

OR로 패턴을 조합하면 그중 하나라도 일치하는 제품을 찾을 수 있어요:

-- Input: products
-- id | name
-- ---+-----------------
-- 1  | Gaming laptop
-- 2  | Spiral notebook
-- 3  | Desk lamp
-- 4  | Desktop computer

SELECT * FROM products
WHERE name LIKE '%laptop%'
   OR name LIKE '%notebook%'
   OR name LIKE '%computer%';

-- Output:
-- id | name
-- ---+-----------------
-- 1  | Gaming laptop
-- 2  | Spiral notebook
-- 4  | Desktop computer

올해 송장 찾기

송장 번호는 유형과 연도로 시작하므로, 접두사 패턴으로 2026년 송장만 골라내고 대변표(credit note)는 건너뛸 수 있어요:

-- Input: invoices
-- invoice_no    | customer
-- --------------+----------
-- INV-2026-0012 | Northwind
-- INV-2025-0981 | Contoso
-- CN-2026-0003  | Northwind
-- INV-2026-0040 | Fabrikam

SELECT * FROM invoices
WHERE invoice_no LIKE 'INV-2026-%';

-- Output:
-- invoice_no    | customer
-- --------------+----------
-- INV-2026-0012 | Northwind
-- INV-2026-0040 | Fabrikam

형식이 잘못된 전화번호 찾기

글자마다 _를 하나씩 써서 기대하는 형식을 표현하고, NOT LIKE로 정리해야 할 행을 찾아요:

-- Input: customers
-- name      | phone
-- ----------+---------------
-- Ana Lima  | 555-010-1234
-- Ben Ode   | (555) 010-9876
-- Cara Diaz | 5550104321
-- Dev Rao   | 555-010-5555

SELECT name, phone FROM customers
WHERE phone NOT LIKE '___-___-____';

-- Output:
-- name      | phone
-- ----------+---------------
-- Ben Ode   | (555) 010-9876
-- Cara Diaz | 5550104321

대소문자 상관없이 성 찾기

양쪽을 소문자로 바꾸면 대문자나 소문자로 입력된 이름도 모두 찾을 수 있어요:

-- Input: customers
-- id | name
-- ---+------------
-- 1  | Anna Smith
-- 2  | BEN SMITH
-- 3  | Dana Jones
-- 4  | carla smith

SELECT * FROM customers
WHERE LOWER(name) LIKE '%smith%';

-- Output:
-- id | name
-- ---+------------
-- 1  | Anna Smith
-- 2  | BEN SMITH
-- 4  | carla smith

LIKE 관련 추가 자료

이 블로그의 글:

공식 문서:

Beekeeper Studio는 무료 오픈 소스 데이터베이스 GUI예요

지금까지 써 본 SQL 쿼리 & 에디터 도구 중 최고예요. 데이터베이스 관리에 필요한 모든 게 다 있어요. - ⭐⭐⭐⭐⭐ Mit

Beekeeper Studio는 빠르고 직관적이며 사용하기 쉬워요. 다양한 데이터베이스를 지원하고 Windows, Mac, Linux에서 모두 잘 작동해요.

Beekeeper의 Linux 버전은 100% 모든 기능을 갖추고 있어요. 대충 만든 부분도, 빠진 기능도 없어요.

Beekeeper Studio 사용자 후기

★★★★★
"Beekeeper Studio가 기존 SQL 작업 방식을 완전히 바꿔 놓았어요. 빠르고 직관적이라 데이터베이스 작업이 다시 즐거워졌어요."
— Alex K., 데이터베이스 개발자
★★★★★
"여러 데이터베이스 GUI를 써 봤지만, Beekeeper는 기능과 단순함 사이의 균형이 완벽해요. 그냥 잘 돼요."
— Sarah M., 풀스택 엔지니어

SQL 작업 방식을 개선할 준비가 되셨나요?

download 무료 다운로드