4. Subquery Advanced
UPDATE
UPDATE emp_test SET dname =
(SELECT dname FROM dept
WHERE dept.deptno = emp_test.deptno);
UPDATE dept_test SET empcnt =
(SELECT count(*) FROM emp
WHERE deptno = dept_test.deptno);
DELETE
DELETE FROM dept_test
WHERE deptno NOT IN(SELECT deptno
FROM emp
GROUP BY deptno);
DELETE FROM dept_test
WHERE deptno NOT IN(SELECT deptno
FROM emp
WHERE emp.deptno = dept_test.deptno);
DELETE FROM dept_test
WHERE NOT EXISTS (SELECT 'X'
FROM emp
WHERE emp.deptno = dept_test.deptno);
WITH
WITH 쿼리블럭 이름1 AS (
SELECT 쿼리1
) [, 쿼리블럭 이름2 AS (
SELECT 쿼리2
) ]
SELECT *
FROM 쿼리블럭 이름;
- 한쿼리에서 query block이 중복적으로 등장하는것이 잘못된 쿼리일 가능성이 있다.
- WITH 절에 기술된 쿼리블록은 메모리에 한번 올리고 재사용 하기 때문에 속도향상을 기대할 수 있다.
반응형
'IT > SQL' 카테고리의 다른 글
| [ORACLE] Window 함수, 분석함수 (0) | 2022.01.11 |
|---|---|
| [ORACLE]계층쿼리 (0) | 2022.01.11 |
| [ORACLE]Group function (0) | 2022.01.11 |
| [ORACLE]Merge⭐ (0) | 2022.01.11 |
| [ORACLE]Multiple Insert (0) | 2022.01.11 |