Study/DB

[SQL 첫걸음] 2장.테이블에서 데이터 검색 - 08.패턴 매칭에 의한 검색(LIKE)

momo02 2018. 8. 28. 18:07
반응형

저자 : 아사이 아츠시

출판 : 한빛미디어 

발매 : 2015.11.01



1. LIKE로 패턴 매칭하기.
- 열명 LIKE '패턴'
- 패턴을 정의할 때 사용할 수 있는 메타문자로는 % _가 있다. 
퍼센트(%)는 임의의 문자열을 의미하며, 언더스코어(_)는 임의의 문자 하나를 의미함.
- 패턴을 정의할 때는 메타문자를 여러개 사용 가능, 와일드카드로 자주 쓰이는 *는 LIKE에서는 사용
불가.




▼ SELECT * FROM sample25 WHERE text LIKE 'SQL%'

: text 열 데이터가  'SQL'~로 시작하는 행 검색.(전방 일치)




 SELECT * FROM sample25 WHERE text LIKE '%SQL%'
: text 열 데이터에  'SQL'이 포함되는 행 검색.(중간 일치)
*** 메타문자 %는 빈 문자열과도 매치 된다. (첫번째 행의 경우 '%SQL%'에서 'SQL'앞의 %에 매치하는 문자열은 없는데도 검색이 됨. 



- SELECT * FROM sample25 WHERE text LIKE '%SQL'
: text 열 데이터가  ~'SQL'로 끝나는 행 검색.(후방 일치)




2.LIKE로 %를 검색하기

- 메타문자와 동일한 문자인 %를 LIKE로 검색할 경우..
LIKE 와 함께 쓰이는 % 메타문자는 임의의 문자열을 의미하므로,  일반문자 %를 검색하기위해서는 '이스케이프'처리(예외처리) 해야함.
- '\%'와 같이 \을 %앞에 붙임.


%를 포함하는 데이터 검색


==> %를 LIKE로 검색할 경우에는 \%로, _를 LIKE로 검색할 경우에는 \_로 함.




3.문자열 상수 ' 의 이스케이프 

- 문자열 상수 안에 ' 를 포함하고 싶을 경우 :  표준 SQL에서는 '를 2개 연속해서 기술하는것으로 이스케이프 처리.


예로, 'it's'라는 문자열을 문자열 상수로 표기하려면 'it''s'로 씀.
SELECT 'it's';  ==>   실행 시 SQL syntax 에러발생.
SELECT 'it''s'; (O) 




cf .. 간단한 패턴 매칭이라면 LIKE로 충분하지만 더 복잡한 패턴 매칭을 하는 경우는 정규 표현식(Regular Expression)을 사용하는 편이 나음. 정규 표현식에서는 더 많은 메타문자를 사용해 폭넓게 패턴 지정 가능.


반응형