티스토리 뷰

기능

와일드카드로 지정한 패턴과 일치하는 문자열, 날짜, 시간 등을 검색할 수 있다. 

 

기본 형식

SELECT [열] FROM [테이블] WHERE [열] LIKE [조건값]

 

[열]: 조건을 적용할 열 이름을 입력한다.

[조건값]: 조건값을 입력한다.

 

활용 

1. LIKE 와 %로 특정 문자열을 포함하는 문자열 검색하기

% 사용법

  • A%: A로 시작하는 모든 문자열
  • %A: A로 끝나는 모든 문자열
  • %A%: A를 포함하는 모든 문자열

 

1.1. 'symbol' 열에서 A를 포함하는 문자열 검색

SELECT * FROM nasdaq_company 
WHERE symbol LIKE '%A%'

해석:

  1. 나스닥 회사의 모든 열을 검색한다.
  2.  'symbol' 열 데이터에 'A'를 포함하는 문자를 검색한다.

1.2. 'symbol' 열에서 첫 번째 글자가 A로 시작하지 않는 문자열 검색

SELECT * FROM nasdaq_company 
WHERE symbol NOT LIKE '%A%'

해석:

  1. 나스닥 회사의 모든 열을 검색한다.
  2.  'symbol' 열 데이터에 'A'를 포함하지 않는 문자를 검색한다.

 

2. _로 특정 문자열을 포함하는 특정 길이의 문자열 검색하기

_ 사용법

  • A_: A로 시작하면서 뒤의 글자는 무엇이든 상관없으며 전체 글자 수는 2개인 문자열
  • _A: A로 끝나면서 앞의 문자는 무엇이든 상관없으며 전체 글자 수는 2개인 문자열
  • _A_: 세 글자 중 가운데 글자만 A이며 앞뒤로는 무엇이든 상관없는 문자열

 

2.1. 문자열의 길이가 2인 'symbol' 검색: 'A' 를 포함

SELECT * FROM nasdaq_company
WHERE symbol LIKE 'A_'

해석:

  1. 나스닥 회사의 모든 열을 검색한다.
  2. 'A'를 포함해 문자열의 길이가 2인 'symbol'만 검색한다.

 

2.2 문자열의 길이가 4인 'symbol'를 검색: 'A'로 시작하고 'C'로 끝남

SELECT * FROM nasdaq_company
WHERE symbol LIKE 'A__C'

해석:

  1. 나스닥 회사의 모든 열을 검색한다.
  2. 'A'로 시작하고, 'C'로 끝나면서 문자열이 4개인 'symbol'을 검색한다.

 

3. [ ]로 문자나 문자 범위를 지정해 문자열 검색하기 

[ ] 사용법

  1. [A,B,C]%  또는 [A-C]%: 첫 글자가 A 또는 B 또는 C로 시작하는 모든 문자열 검색
  2. %[A,B,C] 또는 %[A-C]: 마지막 글자가 A 또는 B 또는 C로 끝나는 모든 문자열 검색

 

3.1. 첫 글자가 'A'이고 2번째 문자가 'A' 또는 'B'  또는 'C'인 'symbol' 검색

SELECT * FROM nasdaq_company
WHERE symbol LIKE 'A[A,B,C]'

해석:

  1. 나스닥 회사의 모든 열을 검색한다.
  2. 1번째 문자가 'A', 2 번째 문자가 'A' 또는 'B' 또는 'C'인 symbol을 검색한다.

 

3.2. 첫 글자가 'A'이고 2번째 문자가 'A' , 'B' , 'C'가 아닌 'symbol' 검색

SELECT * FROM nasdaq_company
WHERE  symbol LIKE 'A[^A, ^B, ^C]'

 

참고 

특수 문자를 포함한 문자열을 검색하고 싶다면 

%는 0개 이상의 문자를 의미하는 예약어이기 때문에 그냥 LIKE를 사용해서 검색하면 나오지 않는다.

이럴 때 사용하는 문법이 바로 ESCAPE이다. 

 

(임시테이블로 'CTE' 만들었다고 가정한다.)

WITH CTE (col_1) AS (
SELECT 'A%BC' UNION ALL
SELECT 'A_BC' UNION ALL
SELECT 'ABC'
)
SELECT * FROM CTE
WHERE col_1 LIKE '%#%%' ESCAPE '#'

 

ESCAPE 문이 쿼리를 실행할 때 # 을 제거해 쿼리 명령 단계에서는 '%#%%'이 호출되고 실제 실행할 때는 '%%%'로 해석되어, %를 포함하는 앞뒤 어떠한 문자가 와도 상관없는 데이터가 검색되는 원리이다. 

'SQL' 카테고리의 다른 글

[SQL] 데이터베이스, 테이블을 생성, 삭제, 수정  (0) 2023.06.07
[SQL] 데이터 그룹화 하기 GROUP BY, HAVING  (0) 2023.06.07
[SQL] ORDER BY  (1) 2023.06.04
[SQL] WHERE  (0) 2023.06.04
[SQL] SELECT  (0) 2023.06.04
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함