Oracle DB ( is null , 집합연산)
개발/K-DigitalTraining 수강중2023. 3. 20. 16:02
728x90
반응형
IS NULL
-- IS NULL : 데이터 값이 완전히 비어있는 상태
-- NULL은 연산 불가
SELECT *
FROM EMP
WHERE COMM IS NULL;
SELECT *
FROM EMP
WHERE MGR IS NULL;
SELECT *
FROM EMP
WHERE MGR IS NOT NULL;
--MGR_ID 가 없는 사람들의 LAST_NAME,JOB_ID조회
SELECT LAST_NAME , JOB_ID
FROM employees
WHERE MGR_ID IS NULL;
-- JOB_ID 가 ST_CLERK 인 사원의 부서번호 조회(단 부서번호가 NULL인 사원 제외)
-- 중복을 제거한 후 부서번호만 조회
SELECT DISTINCT DEPARTMENT_ID
FROM employees
WHERE JOB_ID != 'ST_CLERK' AND department_id IS NOT NULL;
--COMMISSION_PCT 가 NULL이 아닌 사원들 중에서 COMMISSION = SALARY * COMMISSION_PCT를
--구하여 EMPLOYEE_ID , FIRST_NAME , JOB_ID 출력
SELECT EMPLOYEE_ID , FIRST_NAME , JOB_ID , (salary * COMMISSION_PCT)AS COMMISSION
FROM employees
WHERE commission_pct IS NOT NULL ;
집합 연산자
--집합연산자
--UNION , UNION ALL(합집합)
--UNION 은 동일한 결과값제거 , UNION ALL은 중복제거 안함
SELECT EMPNO , ENAME , SAL , DEPTNO
FROM EMP
WHERE DEPTNO= 10
UNION
SELECT EMPNO , ENAME , SAL , DEPTNO
FROM EMP
WHERE DEPTNO= 10;
SELECT EMPNO , ENAME , SAL , DEPTNO
FROM EMP
WHERE DEPTNO= 10
UNION ALL
SELECT EMPNO , ENAME , SAL , DEPTNO
FROM EMP
WHERE DEPTNO= 10;
--MINUS ( 차집합)
SELECT EMPNO , ENAME , SAL , DEPTNO
FROM EMP
MINUS
SELECT EMPNO , ENAME , SAL , DEPTNO
FROM EMP
WHERE DEPTNO=10;
--INTERSECT (교집합)
SELECT EMPNO , ENAME , SAL , DEPTNO
FROM EMP
INTERSECT
SELECT EMPNO , ENAME , SAL , DEPTNO
FROM EMP
WHERE DEPTNO= 10;
-- 연산자 우선순위
-- 1) 산술 연산자 + -
-- 2) 산술 연산자 * /
-- 3) 비교 연산자
-- 4) IS NULL , IS NOT NULL, LIKE , IN
-- 5*BETWEEN A AND B
-- 6) NOT
-- 7) AND
-- 8) OR
728x90
반응형
'개발 > K-DigitalTraining 수강중' 카테고리의 다른 글
Oracle DB ( 오라클 함수 - 문자열 ) (0) | 2023.03.20 |
---|---|
Oracle DB 연습문제 (0) | 2023.03.20 |
Oracle DB ( Like 연산자와, 와일드 카드) (0) | 2023.03.20 |
Oracle DB ( 연산자 활용 WHERE문 , BETWEEN A AND B) (0) | 2023.03.20 |
Oracle DB (order by , where) (1) | 2023.03.20 |
댓글()