괴발개발 개발하다
[Oracle] 오라클 서브쿼리( SELECT, FROM, WHERE 절 ) 본문
< 서브쿼리 >
: 하나의 쿼리 문장 내에 포함된 또 하나의 쿼리 문장.
: 서브쿼리를 각각의 어느 위치( SELECT, WHERE, FROM )에서 사용하냐에 따라 나누어진다.
1. SELECT 절 서브쿼리
스칼라 서브쿼리 ( Scalar Subqueries ) 라고 불리며 SELECT 절 안에 서브쿼리가 들어있다.
이 때, 서브쿼리의 결과는 반드시 단일 행이나 SUM, COUNT 등의 집계 함수를 거친 단일 값으로 리턴되어야 한다.
이유는 서브쿼리를 끝마친 값하나를 메인쿼리에서 SELECT 하기 때문이다.
SELECT 학생이름,
( SELECT 학과.학과이름
FROM 학과
WHERE 학과.학과ID = 학생.학생ID ) AS 학과이름
FROM 학생
WHERE 학생이름 = '홍길동' ;
2. FROM 절 서브쿼리
인라인뷰 ( Inline Views ) 라고 불리며 FROM 절 안에 서브쿼리가 들어있다.
이 때, 서브쿼리의 결과는 반드시 하나의 테이블로 리턴되어야 한다.
이유는 서브쿼리를 끝마친 테이블 하나를 메인쿼리의 FROM 에서 테이블로 잡기 때문이다.
SELECT 학생이름, 수학점수
FROM ( SELECT 학생.학생이름 AS 학생이름,
과목.과목점수 AS 수학점수
FROM 학생, 과목
WHERE 학생.학생이름 = 과목.학생이름
AND 과목.과목이름 = '수학' ) ;
3. WHERE 절 서브쿼리
중첩 서브쿼리 ( Nested Subqueries ) 라고 불리며 WHERE 절 안에 서브쿼리가 들어있다.
가장 자주 쓰이는 대중적인 서브쿼리이며 단일행과 복수행 둘 다 리턴이 가능하다.
이유는 서브쿼리를 끝마친 값들을 메인쿼리의 조건절을 통해 비교등을 하기 때문이다.
SELECT *
FROM 학생
WHERE 학생.학생이름 IN ( SELECT 과목.학생이름 FROM 과목 WHERE 과목.과목이름 = '수학' ) ;
< 참고 >
https://mjn5027.tistory.com/51
[ Oracle ] SQL 서브쿼리 SELECT, FROM, WHERE
서브쿼리란? - 하나의 쿼리 문장 내에 포함된 또 하나의 쿼리 문장. - 비교연산자의 오른쪽에 기술해야 하고 반드시 괄호 안에 넣어야 함. - 메인 쿼리가 실행되기 이전에 한 번만 실행됨. SQL의 기
mjn5027.tistory.com
https://goldsony.tistory.com/109
[오라클 DBMS 공부] 서브쿼리에 대해서 - 중첩쿼리, 인라인뷰 등
#109 1. 서브쿼리란? 서브라는 말처럼 메인쿼리가 있고 그 쿼리 내부에 존재하는 또 다른 쿼리를 의미합니다. 앞서 다른 파트를 공부할 때 잠깐 사용한 적이 있지만 서브쿼리의 경우 정말 많이 사
goldsony.tistory.com
'Oracle' 카테고리의 다른 글
[ Oracle ] 오라클 WITH절 사용 (임시 테이블 만들기) (0) | 2022.08.29 |
---|---|
[Oracle] 오라클 NVL, NVL2 함수 (Null 처리) (1) | 2022.08.08 |
[Oracle] 오라클 INSERT INTO SELECT 구문 (0) | 2022.08.07 |
[Oracle] 오라클 컬럼명으로 테이블 찾기 (0) | 2022.08.07 |
[Oracle] 오라클 테이블 코멘트(COMMENTS) 조회 (0) | 2022.08.01 |