쌍용 강북 교육센터 국비학원 Day 27일차
Sub Query
select 문속에 또 다른 select 문이 포함되어져 있을 때 포함되어진 select 문을 Sub Query(서브쿼리) 라고 부른다.
from ... -> Main Query (메인쿼리 == 외부커리)
where ... in (select ... from ... ) -> Sub Query (서브쿼리 == 내부쿼리)
select ...
, (select ... from ... ) -> Sub Query (서브쿼리 == 내부쿼리)
from ... -> Main Query (메인쿼리 == 외부커리)
Pairwise Sub Query
필요한 값이 두가지밖에 없기 때문에 이 두가지에 대해 where 절의 (department_id, salary) 가 마치 전체 컬럼인 것처럼 연산을 한다.
상관 서브쿼리 (Correlated Subquery)
Main Query에서 사용된 테이블(또는 뷰) 에 존재하는 컬럼이 Sub Query 의 조건절 (where절, having절) 에 사용 되어질때를 상관서브쿼리 라고 한다. 즉, 외부커리에서 사용된 컬럼이 내부쿼리의 조건절에 쓰일 때를 말한다.
Sub Query를 이용해 테이블 생성하기
항상 데이터의 Delete, Update 처리를 할 때는 반드시 해당테이블의 백업 필요 !
JOIN
JOIN은 테이블과 테이블을 합치는 것을 말하는데 행(ROW) 과 행을 합치는 것이 아니라, 컬럼과 컬럼을 합치는 것을 말한다. 행과 행을 합치는 것은 UNION 연산자를 사용하는 것이다.
JOIN의 사용법은 두가지가 있는데
옛날 방식인 SQL 1992 CODE 방식 -> 테이블과 테이블 사이에 콤마를 찍어주는 것. 콤마를 찍어주는 것을 제외한 나머지 문법은 데이터베이스 밴더(회사) 제품마다 조금씩 다르다
명시적 JOIN 절을 이용한 SQL 1992 CODE 방식 (ANSI,표준방식) -> 테이블과 테이블 사이에 JOIN 이라는 단어를 넣어주
는 것이다. (표준화 SQL)
CROSS JOIN 은 조인할 테이블간의 모든 경우의 수를 다 조인하는것을 말하며, 그룹함수로 나온 1개의 행을 가지고 어떤 데이터 값을 얻으려고 할 때 사용된다. (단 하나의 행만 나오는 컬럼의 값이 필요할 때) 이것을 수학에서 말하는 데카르트곱을 말하는 것이며 데이터베이스에서는 Catersian Product 라고 부른다. (모든 경우의 수)
'DB > Oracle' 카테고리의 다른 글
쌍용강북교육센터 국비 학원 Day 29일차 Oracle (SET 연산자, UNION, PSEUDO Column, DML) (0) | 2023.02.13 |
---|---|
쌍용강북교육센터 국비 학원 Day 28일차 Oracle (JOIN, INNER, OUTER, EQUI, SELF) (0) | 2023.02.10 |
쌍용강북교육센터 국비 학원 Day 26일차 Oracle (GROUP BY, HAVING, GROUPING, ROLLUP) (0) | 2023.02.08 |
쌍용강북교육센터 국비 학원 Day 25일차 Oracle (VIEW, 그룹함수) (0) | 2023.02.07 |
쌍용강북교육센터 국비 학원 Day 24일차 Oracle (Primary Key, Sequence, Like 연산자, 단일 행 함수) (0) | 2023.02.06 |