자격증/SQLD

[SQL 첫걸음] 8강. 패턴 매칭에 의한 검색

동호다찌 2022. 4. 4. 09:21
반응형

1. LIKE로 패턴 매칭하기

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

SELECT * FROM SAMPLE25 WHERE TEXT LIKE '%SQL';
  • text 열 데이터가 SQL ~ 로 시작하는 행을 검색(전방일치)

SELECT * FROM SAMPLE25 WHERE TEXT LIKE '%SQL%';
  • text 열 데이터가 중간에 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'; 
//==> 실행 가능

💡 간단한 패턴 매칭이라면 LIKE로 사용이 충분히 가능하지만 복잡한 패턴 매칭을 하는 경우는 정규 표현식을 사용하는 편이 좋다.

반응형