3. DQL(2)

KIHYUK MOON·2023년 2월 15일
0
post-thumbnail
post-custom-banner

IN 연산자 : 포함 여부를 확인

IN 연산자를 쓰지 않았을 때,

SELECT *
    FROM EMP
    WHERE JOB = 'MANAGER' 
       OR JOB = 'SALESMAN'
       OR JOB = 'CLERK';
       -- 특정 열에 포함된 데이터를 여러개 조합할 때 사용

IN 연산자 사용

SELECT *
    FROM EMP
    WHERE JOB IN('MANAGER', 'SALESMAN', 'CLERK');

IN 연산자를 사용하여 부서번호가 10과 20번인 사원의 사원번호, 이름, 입사일, 급여 출력

SELECT EMPNO 사원번호, ENAME 이름, HIREDATE 입사일, SAL 급여
    FROM EMP
    WHERE DEPTNO IN('10', '20');

등가 비교연산자와 AND 연산자

SELECT *
    FROM EMP
    WHERE JOB != 'MANAGER'
      AND JOB <> 'SALESMAN'
      AND JOB ^= 'CLERK';

일정 범위를 지정하는 BETWEEN 연산자

급여가 2000에서 3000 사이를 표시

SELECT *
    FROM EMP -- BETWEEN 2000 AND 3000 => 2000과 같거나 크고 3000과 같거나 작음
    WHERE SAL BETWEEN 2000 AND 3000;

BETWEEN 절을 사용해서 급여가 1000에서 2500 사이이고, 부서가 10,20 아닌 사원 출력

SELECT *
    FROM EMP
    WHERE SAL BETWEEN 1000 AND 2500 
        AND NOT DEPTNO IN(10, 20);

BETWEEN 절을 사용해서 사원번호가 7000에서 7999 사이이고, 입사일이 81년 5월 1일 이후인 사람 출력

SELECT *
    FROM EMP
    WHERE EMPNO BETWEEN 7000 AND 7999
        AND HIREDATE > '81/05/01';

1980년이 아닌 해에 입사한 사원을 조회해서 출력

SELECT *
    FROM EMP
    WHERE HIREDATE NOT BETWEEN '80/01/01' AND '80/12/31';

LIKE 절 : 일부 문자열이 포함되어 있는지 여부를 확인 할 때 사용

% : 길이와 상관없이 모든 문자 데이터를 의미
_ : 문자 1자를 의미

SELECT *
    FROM EMP
    WHERE ENAME LIKE '_M___';
SELECT *
    FROM EMP
    WHERE ENAME LIKE '_L%';

이름에 AM이 포함되어 있는 사원 출력

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

이름에 AM이 포함되어 있지 않은 사원 출력

SELECT *
    FROM EMP
    WHERE ENAME NOT LIKE '%AM%';

IS NULL :

NULL 이란 ? 0이 아니고 빈공간이 아님을 의미. 즉 미확정된 값이라는 의미

SELECT *
    FROM EMP
    WHERE COMM IS NULL;
SELECT *
    FROM EMP
    WHERE COMM IS NOT NULL;

MGR이 있는 사원만 출력하기

SELECT * FROM EMP
    WHERE MGR IS NOT NULL;

ORDER BY : 특정 컬럼의 데이터를 기준으로 오름차순이나 내림차순으로 정렬하는 기능을 하는 절

  • 반드시 가장 마지막에 기술되어야 하며, 남발하면 좋지 않다
  • 오름차순 : ASC / 내림차순 : DESC
  • 정렬조건을 기술하지 않으면 기본적으로 ASC(오름차순) 입니다.
SELECT * FROM EMP
    ORDER BY SAL ASC;

사원번호 기준으로 오름차순 정렬하기

SELECT * FROM EMP
    ORDER BY EMPNO;

급여 기준으로 오름차순 하고 급여가 같은 경우 이름 기준

SELECT * FROM EMP
    ORDER BY SAL, ENAME;

급여 기준으로 오름차순 하고 급여가 같은 경우 이름 내림차순 정렬

SELECT * FROM EMP
    ORDER BY SAL, ENAME DESC;

연결 연산자 : SELECT 조회시 컬럼 사이에 특정한 문자를 넣고 싶을 때 사용하는 연산자

SELECT ENAME || 'S JOB IS ' || JOB AS EMPLOYEE
    FROM EMP;
profile
개발자 전직중..
post-custom-banner

0개의 댓글