전체 방문자
오늘
어제
21종
종이의 코딩 공부방
21종
  • 분류 전체보기 (171)
    • JAVA (64)
    • Springboot (46)
      • 블로그만들기 (45)
    • Database (60)
      • Oracle (60)
    • 프로젝트 3 (CELOVER) (0)
    • 개발서버 구축 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
21종

종이의 코딩 공부방

Database/Oracle

[Oracle] LIKE

2023. 6. 28. 17:50

< LIKE >

비교하고자 하는 컬럼값이 내가 제시한 특정 패턴에 만족될 경우 조회
    
    [표현법]
    비교대상컬럼 LIKE '특정패턴'
    
    - 특정패턴 제시시 '%', '_'를 와일드 카드로 사용할 수 있음
    
    >> '%' : 0글자 이상
    EX) 비교대상칼럼 LIKE '문자%'       => 비교대상의 컬럼값이 문자로 "시작" 되는 걸 조회
         비교대상컬럼 LIKE "%문자"      => 비교대상의 컬럼값이 문자로 "끝" 나는 걸 조회
         비교대상컬럼 LIKE "%문자%"    => 비교대상의 컬럼값에 문자가 "포함" 되는 걸 조회 (키워드 검색)
         
     >> '_' : 1글자 이상
     EX) 비교대상컬럼 LIKE '_문자'   => 비교대상의 컬럼값에 문자앞에 무조건 한글자만 올 경우 조회
          비교대상컬럼 LIKE '__문자'  => 비교대상의 컬럼값에 문자앞에 무조건 두글자가 올 경우 조회;
          비교대상컬럼 LIKE '_문자_'  => 비교대상의 컬럼값에 문자앞과 문자 뒤에 무조건 한글짜씩 올 경우 조회;


사원들 중에 성이 전씨인 사원들의 사원명, 급여, 입사일 조회

SELECT EMP_NAME, SALARY, HIRE_DATE
FROM EMPLOYEE
WHERE EMP_NAME LIKE '전%';

 

이름이 하로 끝나는 사원들의 사원명, 주민번호, 전화번호 조회

SELECT EMP_NAME, EMP_NO, PHONE
FROM EMPLOYEE
WHERE EMP_NAME LIKE '%하';

 

이름중에 하가 포함된 사원들의 사원명, 주민번호, 전화번호 조회

SELECT EMP_NAME, EMP_NO, PHONE
FROM EMPLOYEE
WHERE EMP_NAME LIKE '%하%';

 

이름의 가운데 글자가 하 인 사원들의 사원명, 전화번호 조회

SELECT EMP_NAME, PHONE
FROM EMPLOYEE
WHERE EMP_NAME LIKE '_하_';

 

전화번호 3번째 자리가 1인 사원들의 사번, 사원명, 전번, 이메일 조회
와일드카드 : _(1글자), %(0글자 이상)

SELECT EMP_ID, EMP_NAME, PHONE, EMAIL
FROM EMPLOYEE
WHERE PHONE LIKE '__1%';

 

* 특이케이스
이메일 중 _ 기준으로 앞글자가 3글자인 사원들의 사번, 이름, 이메일 조회
ex) sim_bs@kh.or.kr, sum_di@kh.or.kr

SELECT EMP_ID, EMP_NAME, EMAIL
FROM EMPLOYEE
WHERE EMAIL LIKE '____%';    -- 원했던 결과 도출 못함!

-- 와일드카드로 사용되고 있는 문자와 컬럼값에 담긴 문자가 동일하기 때문에 제대로 조회 안됨
--> 어떤게 와일드카드고 어떤게 데이터 값인지 구분지어야됨!
--> 데이터 값으로 취급하고자 하는 값 앞에 나만의 와일드 카드를 제시하고 나만의 와일드 카드를 ESCAPE OPTION으로 등록해야됨!

SELECT EMP_ID, EMP_NAME, EMAIL
FROM EMPLOYEE
WHERE EMAIL LIKE '___$_%' ESCAPE '$';

 

위의 사원들이 아닌 그 외의 사원들 조회

SELECT EMP_ID, EMP_NAME, EMAIL
FROM EMPLOYEE
--WHERE EMAIL NOT LIKE '___$_%' ESCAPE '$';
WHERE NOT EMAIL LIKE '___$_%' ESCAPE '$';


실습문제

1. EMPLOYEE에서 이름이 '연'으로 끝나는 사원들의 사원명, 입사일 조회

SELECT EMP_NAME, HIRE_DATE
FROM EMPLOYEE
WHERE EMP_NAME LIKE '%연';

 

2. EMPLOYEE에서 전화번호 처음 3자리가 010이 아닌 사원들의 사원명, 전화번호 조회

SELECT EMP_NAME, PHONE
FROM EMPLOYEE
WHERE PHONE NOT LIKE '010%';

 

3. EMPLOYEE에서 이름에 '하'가 포함되어 있고 급여가 240만원 이상인 사원들의 사원명, 급여 조회

SELECT EMP_NAME, SALARY
FROM EMPLOYEE
WHERE EMP_NAME LIKE '%하%' AND SALARY >= 2400000;

 

4. DEPARTMENT 에서 해외영업부인 부서들의 코드, 부서명 조회

SELECT DEPT_ID, DEPT_TITLE
FROM DEPARTMENT
WHERE DEPT_TITLE LIKE '해외영업%';

    'Database/Oracle' 카테고리의 다른 글
    • [Oracle] IN
    • [Oracle] IS NULL / IS NOT NULL
    • [Oracle] BETWEEN A AND B
    • [Oracle] WHERE 절
    21종
    21종
    코딩 공부한 것 정리하려고 만든 블로그

    티스토리툴바