더북(TheBook)

LIKE 조건식

LIKE 조건식은 문자열의 패턴을 검색할 때 사용하는 조건식이다. 예를 들어, 사원 테이블에서 사원이름이 ‘A’로 시작되는 사원을 조회하는 쿼리를 작성한다면 다음과 같이 LIKE 조건식을 사용한다.

입력

    SELECT emp_name
      FROM employees
     WHERE emp_name LIKE 'A%'
     ORDER BY emp_name;

결과

    EMP_NAME
    -------------------------------
    Adam Fripp
    Alana Walsh
    Alberto Errazuriz
    Alexander Hunold
    Alexander Khoo
    Alexis Bull
    Allan McEwen
    Alyssa Hutton
    Amit Banda
    Anthony Cabrio
     
    10개의 행이 선택됨

LIKE ‘A%’의 의미는 사원명 첫 글자는 ‘A’로 시작하되 나머지는 어떤 글자가 와도 상관없이 모두 조회하라는 의미다.

입력

    SELECT emp_name
      FROM employees
     WHERE emp_name LIKE 'Al%'
     ORDER BY emp_name;

결과

    EMP_NAME
    -------------------------------
    Alana Walsh
    Alberto Errazuriz
    Alexander Hunold
    Alexander Khoo
    Alexis Bull
    Allan McEwen
    Alyssa Hutton
     
    7개의 행이 선택됨.

Al로 시작되는 모든 사원을 조회한 쿼리다. ‘%’는 앞, 뒤, 중간 어디나 올 수 있으며 조건식을 검색할 때 대소문자를 구분한다는 점을 주의하자. ‘%’와는 다르게 ‘_’(밑줄, 언더스코어)는 나머지 글자 전체가 아닌 한 글자만 비교한다.

입력

    CREATE TABLE ex3_5 (
           names VARCHAR2(30));

결과

    table EX3_5이(가) 생성되었습니다.

입력

    INSERT INTO ex3_5 VALUES ('홍길동');

    INSERT INTO ex3_5 VALUES ('홍길용');

    INSERT INTO ex3_5 VALUES ('홍길상');

    INSERT INTO ex3_5 VALUES ('홍길상동');


    SELECT *
      FROM ex3_5
     WHERE names LIKE '홍길%';

결과

    NAMES
    ---------
    홍길동
    홍길용
    홍길상
    홍길상동

입력

    SELECT *
      FROM ex3_5
     WHERE names LIKE '홍길_';

결과

    NAMES
    --------
    홍길동
    홍길용
    홍길상

결과를 보면 알 수 있듯이, ‘홍길상동’의 경우 ‘%’를 사용했을 때는 조회되었으나, ‘_’를 사용했을 때는 한 글자만 비교하므로 검색되지 않았다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.