[Oracle] 오라클 - UPDATE JOIN VIEW / 서브쿼리
by mini_min[Oracle]
오라클 - UPDATE JOIN VIEW / 서브쿼리
✔️ UPDATE JOIN VIEW
테이블을 조인하면서 업데이트 해주는데, 서브쿼리보다 훨씬 빠르다고 한다.
: tb_a 테이블의 내용(new_addr1, new_addr2)을 tb_b에 존재하는 내용(n_addr1, n_addr2)으로 수정
❌ 조인 조건의 컬럼이 UNIQUE 속성이어야 가능하며(관계가 1:1) 그렇지 않으면 ORA-01779 오류가 발생한다.
✔️ subquery
: 다른 하위 쿼리 내부에 중첩된 SELECT 절이다.
-- 단일 행 서브 쿼리
: 실행하면 무조건 행수가 1개, 컬럼도 1개 나와야한다.
SELECT empNo, name, sal
FROM emp
WHERE sal < (SELECT AVG(sal) FROM emp);
-- 다중 행 서브 쿼리 (IN, ANY, SOME, EXISTS 등...)
SELECT bCode, bName
FROM book
WHERE bCode IN (SELECT UNIQUE bCode FROM dsale);
-- 상호 연관 서브 쿼리
: 성능이 좋지 않은 단점이 있다.
SELECT name, sal,
(SELECT COUNT(e2.sal) +1 FROM emp e2 WHERE e2.sal > e1.sal) 순위
FROM emp e1;
🔒 문제
-- 학점 구하기
SELECT hak, s1.score, grade FROM (
SELECT hak, score,
(SELECT MAX(score) FROM grade_table WHERE score<=score_table.score) gscore
FROM score_table;
) s1
JOIN grade_table s2 ON s1.gscore = s2.score;
💡 score 컬럼을 가지고 두 테이블을 조인
s1 은 grade_table 에서 max score 를 뽑아낸 서브쿼리문이다.
'SQL쿼리' 카테고리의 다른 글
[Oracle] 오라클 - 뷰(VIEW) 및 시퀀스 / 시노님 (0) | 2022.08.15 |
---|---|
[Oracle 문제] 조인 - 비회원의 판매 현황 (0) | 2022.08.13 |
[Oracle] 오라클 - OUTER JOIN (LEFT/RIGHT/FULL) (0) | 2022.08.13 |
[Oracle] 오라클 - 제약조건 확인 / 부자 관계 출력 / 부모 테이블, 자식 테이블 목록 (0) | 2022.08.13 |
[Oracle] 오라클 - 셀프 조인 / NON-EQUI JOIN (0) | 2022.08.11 |
블로그의 정보
개발자 미니민의 개발로그
mini_min