본문 바로가기
  • BLG-ZYNGIROK-모토-꿈꾸며-배우고-나누며-이루다
ICT/SQL

SQL 문법 | 데이터 조회 및 필터 | WHERE LIKE

by dazwischen 2021. 8. 28. 18:39
반응형

SQL 문법 데이터 조회 필터 WHERE LIKE

01. 정확한 정보가 아닐 때 포함 문자열만 검색하고 싶을 때 : LIKE

어떤 정보를 정확히 알고 있진 않은데 포함 문자열을 알고 있을 때가 있다. 혹은 특정 문자열을 포함하고 있는 열들의 자료가 필요할 때가 있다. 그럴 때 사용 하는 것이 LIKE이다.

SELECT	COLUMN
FROM	TABLE
WHERE	COLUMN LIKE 'THIS'
;

THIS안에 조건을 넣어주면 된다. 위의 경우에는 THIS라는 문자열만 검색이 된다.

02. 조건 작성 방법

WHERE과 LIKE를 쓸 때는 적절한 조건을 작성해 줘야 원하는 결과값을 얻을 수 있다.

상황 작성해야 하는 조건 상세설명
A로 시작하는 모든 결과값을 원할 때 'A%'  
A로 끝나는 모든 결과값을 원할 때 '%A'  
A가 포함된 모든 결과값을 원할 때 '%A%'  
A로 시작하는 결과값 중 글자수를 정확히 알 때
*_은 원하는 만큼 사용가능
'A_' A뒤에 문자 한개 있는 경우
'A__' A뒤에 문자 두개 있는 경우
글자수를 알고 특정 문자의 위치를 정확히 알 때
*_은 원하는 만큼 사용가능
'_B' B앞에 문자 한개 있는 경우
'_B_' B앞뒤로 문자 한개씩 있는 경우
'_b_k' b와 k의 위치를 정확히 알고 b앞뒤로 문자 한개씩 있는 경우
특정 문자가 중간에 있고 특정부분에서는 문자수를 알고 특정부분은 모를 때 '_av%'  

EXAMPLE

김씨인 학생들의 이름과 전화번호를 알려주세요.

SELECT		NAME, TEL
FROM		CLASS
WHERE		NAME LIKE '김%'
;

이름이 네글자이고 세번째 글자가 '재'인 학생의 이름과 전화번호를 알려주세요.

SELECT	NAME, TEL
FROM	CLASS
WHERE	NAME LIKE '__재_'
;

이름 두번째 글자가 '진'인 학생의 이름과 전화번호를 알려주세요.

SELECT 	NAME, TEL
FROM	CLASS
WHERE 	NAME LIKE '_진%'
;

03. 특정 조건을 갖고 있지 않은 결과값을 원할 때 : NOT LIKE

특정 조건을 만족하는 결과를 LIKE로 얻었다면 반대의 결과는 NOT LIKE를 이용해서 얻을 수 있다.

SELECT 	COLUMN01, COLUMN02
FROM	TABLE
WHERE	COLUMN 01 NOT LIKE 'THIS'
;

EXAMPLE

성이 Ed로 시작하지 않는 학생들의 이름과 전화번호를 알려주세요.

SELECT 	FIRST_NAME, LAST_NAME, TEL
FROM	CLASS
WHERE	FIRST_NAME NOT LIKE 'Ed%'
;
반응형

댓글