LIKE 연산자

LIKE 연산자는 특정한 내용을 포함 하고 있는 데이터 값을 조회하고 싶을때 사용하실수 있습니다.
예를 들어 이름(ENAME)이 알파벳 'A'로 시작하는 사원 데이터를 출력 하고 싶은 경우 아래와 같이 조회 하시면 됩니다. 예제로 사용된 TABLE의 정보는 'SCOTT 계정 예제 Table(emp, dept, salgrade)'을 참고하시면 됩니다.

SELECT *
FROM EMP
WHERE ENAME LIKE 'A%'; 

조건문에 'A%'는 알파벳 'A'로 시작하는 모든 것 이라는 뜻을 담고 있습니다. 이때 사용 하는 '%' 기호를 와일드 카드(wild card)라고 합니다. 와일드 카드는 특정 문자 또는 문자열을 대체하거나, 문자열 데이터의 패턴을 표시하는 특수문자로 LIKE문에서 사용하는 와일드 카드로는 '%' 이외에 '_'가 있습니다. 

  • '_' :   어떤 값이든 상관없이 한 개의 문자열 데이터를 의미
  • '%'  : 길이와 상관없이 모든 물자열 데이터를 의미

두개의 와일드 카드를 모두 이용해서 데이터를 찾을 수도 있습니다. 예를 들어 이름(ENAME)의 두번째 알파벳이 'A'인 사원 데이터를 출력 하고 싶은 경우 아래와 같이 조회 하시면 됩니다.

SELECT *
FROM EMP
WHERE ENAME LIKE '_A%';

이와 같이 와일드 카드를 이용하면, 자료의 일부만 알아도 해당 자료를 조회 하실 수 있습니다.

 

이번에는 이름(ENAME)의 알파벳이 'A'인 사원 데이터를 출력 하고 싶은 경우 어떻게 하면 될까요? 와이들 카드 '%'를 앞, 뒤 두번 사용하여 아래와 같이 조회 하시면 됩니다.

SELECT *
FROM EMP
WHERE ENAME LIKE '%A%';

 

 

+ Recent posts