SQL 첫걸음 - 2장 패턴 매칭에 의한 검색(4/4)

2020-11-01

1. LIKE로 패턴 매칭하기.

열명 LIKE ‘패턴’

패턴을 정의할 때 사용할 수 있는 메타문자로는 %와 _가 있다.

퍼센트(%)는 임의의 문자열을 의미하며, 언더스코어(_)는 임의의 문자 하나를 의미함.

패턴을 정의할 때는 메타문자를 여러개 사용 가능, 와일드카드로 자주 쓰이는 *는 LIKE에서는 사용불가.

99A0D54D5B850E842C

▼ SELECT * FROM sample25 WHERE text LIKE ‘SQL%’

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

998E97425B850EB20C

▼ SELECT * FROM sample25 WHERE text LIKE ‘%SQL%’

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

99DB80485B850F052A

▼ SELECT * FROM sample25 WHERE text LIKE ‘%SQL’

text 열 데이터가 ~’SQL’로 끝나는 행 검색.(후방 일치)

2.LIKE로 %를 검색하기

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

’\%’와 같이 \을 %앞에 붙임.

999522425B850F3139

%를 포함하는 데이터 검색 ==> %를 LIKE로 검색할 경우에는 \%로, _를 LIKE로 검색할 경우에는 _로 함.

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

문자열 상수 안에 ‘ 를 포함하고 싶을 경우

표준 SQL에서는 ‘를 2개 연속해서 기술하는것으로 이스케이프 처리.

예로, ‘it’s’라는 문자열을 문자열 상수로 표기하려면 ‘it’’s’로 씀.

SELECT ‘it’s’; ==> 실행 시 SQL syntax 에러발생.

SELECT ‘it’’s’; (O)

99FDE64E5B850FF51F

9907EA445B85100728

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

출처 : https://smilejh.tistory.com/