/* LIKE
- 비교하려는 값이 특정한 패턴을 만족 시키면 조회하는 연산자
[작성법]
WHERE 컬럼명 LIKE '패턴'
- LIKE 패턴 (와일드카드) : '%(포함)', '_' (글자수)
'%' 예시
1) 'A%' : 문자열이 A로 시작하는 모든 컬럼 값
2) '%A' : 문자열이 A로 끝나는 모든 컬럼 값
3) '%A%' : 문자열이 A가 포함되어있는 모든 컬럼 값
'_' 예시
1) 'A_' : A뒤에 아무거나 한 글자
2) '____A' : A 앞에 아무거나 세글자(4글자 문자열이면서 A로 끝나야함)
*/
-- EMPLOYEE 테이블에서 성이 '전'씨인 사원의 사번, 이름 조회
SELECT EMP_ID, EMP_NAME
FROM EMPLOYEE
WHERE EMP_NAME LIKE '전%';
-- EMPLOYEE 테이블에서 이름에 '하'가 포함된 사원의 사번, 이름 조회
SELECT EMP_ID, EMP_NAME
FROM EMPLOYEE
WHERE EMP_NAME LIKE '%하%';
-- EMPLOYEE 테이블에서
-- 전화번호가 010으로 시작하는 사원의 사번, 이름, 전화번호 조회'
SELECT EMP_ID, EMP_NAME, PHONE
FROM EMPLOYEE
WHERE PHONE LIKE '010%';
SELECT EMP_ID, EMP_NAME, PHONE
FROM EMPLOYEE
WHERE PHONE LIKE '010________';
-- 010으로 시작하지 "않는'사람들 조회
--> NOT LIKE(LIKE 결과 부정)
SELECT * FROM EMPLOYEE
WHERE PHONE NOT LIKE '010%';
-- EMPLOYEE 테이블에서
-- 이메일에 _앞글자가 세글자인 사원의 사번, 이름, 이메일 조회
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 '$';
'괴발개발 > DB' 카테고리의 다른 글
| IN 연산자, 연결연산자(||) (0) | 2024.05.29 |
|---|---|
| SQL 연산자 우선순위 (0) | 2024.05.28 |
| BETWEEN A AND B (0) | 2024.05.28 |
| 함수 (0) | 2024.05.09 |
| SELECT (0) | 2024.05.08 |