'%' : 포함
'A%' : A로 시작하는 문자열
'%A' : A로 끝나는 문자열
'%A%' : A를 포함하는 문자열
'_' : 글자 수
--EMPLOYEE 테이블에서 성이 '전'씨인 사원의 사번, 이름 조회
SELECT EMP_ID, EMP_NAME
FROM EMPLOYEE
WHERE EMP_NAME LIKE '전%';
--EMPLOYEE 테이블에서 전화번호가 010으로 시작하지 않는 사원의 사번, 이름, 전화번호 조회
SELECT EMP_ID, EMP_NAME, PHONE
FROM EMPLOYEE
WHERE PHONE NOT LIKE '010%';
-- EMPLOYEE 테이블에서 EMAIL의 _앞에 글자가 세글자인 사원 조회
SELECT EMP_NAME ,EMAIL
FROM EMPLOYEE
WHERE EMAIL LIKE'____%';
-- 문제점 : 와일드 카드 문자()와 패턴에 사용된 일반 문자()의 모양이 같아서 문제 발생
-- 해결 방법 : ESCAPE OPTION을 이용하여 일반 문자로 처리할 '_', '%' 앞에 아무 특수문자나 불임
<연습문제>
EMPLOYEE 테이블에서 이메일'_'앞이 4글자 이면서 부서코드가 'D9' 또는 'D6'이고 ,
입사일이 1990-01-01 ~ 2000-12-31 이고,급여가 270만 이상인 사원의
사번, 이름, 이메일, 부서보드, 입사일, 급여 조회
: 비교하려는 값과 목록에 작성된 값 중 일치하는 것이 있으면 조회하는 연산자
[작성법]
WHERE 컬럼명 IN (값1, 값2, 값3.....)
-- EMPLOYEE 테이블에서 부서코드가 D1, D6, D9인 사원의 사번, 이름, 부서코드 조회
SELECT EMP_ID, EMP_NAME, DEPT_CODE
FROM EMPLOYEE
WHERE DEPT_CODE IN('D1', 'D6', 'D9');
(WHERE DEPT_CODE NOT IN('D1', 'D6', 'D9');)
--> NOT 연산자 사용 가능
NULL : 컬럼에 값이 없음을 의미하는 값
1) IS NULL: NULL인 경우 조회
2) IS NOT NULL : NULL이 아닌 경우
-- EMPLOYEE 테이블에서 보너스가 있는 사원의 이름, 보너스 조회
SELECT EMP_NAME, BONUS
FROM EMPLOYEE
WHERE BONUS IS NOT NULL;
: 정렬과 관계
-- EMPLOYEE 테이블 급여 오름차순으로 번, 이름, 급여 조회
SELECT EMP_ID , EMP_NAME , SALARY
FROM EMPLOYEE
ORDER BY SALARY;
-- ASC가 기본값이어서 굳이 안써도 됨
-- 급여 200만 이상인 사원의 사번, 이름, 급여 조회 단, 급여 내림 차순으로 조회
SELECT EMP_ID , EMP_NAME , SALARY
FROM EMPLOYEE
WHERE SALARY >= 2000000
ORDER BY SALARY DESC;
-- SALARY 대신 컬럼 순서인 3을 써줘도 됨 별칭으로 써줘도 됨 근데 보통 컬럼명으로
: 대분류 정렬 후 소분류 정렬 ( , 사용하면 됨)
SELECT EMP_NAME, DEPT_CODE , SALARY
FROM EMPLOYEE
ORDER BY DEPT_CODE, SALARY DESC;
-- 오름차순은 생략