개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

 

* 개요
- 메인쿼리의 비교 조건에서 서브쿼리의 출력 결과와 하나라도 일치하면 메인쿼리 조건절이 참이 되는 연산자
-  ‘=‘ 연산자를 OR로 연결한 것과 같은 의미
- IN 연산자를 이용한 서브쿼리의 예

 

 

* 사용 예
- 정보미디어학부(부서번호:100)에 소속된 모든 학생의 학번, 이름, 학과 번호를 출력하여라

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

 

* 개요
- 서브쿼리에서 반환되는 결과 행이 하나 이상일 때 사용하는 서브쿼리
- 메인쿼리의 WHERE 절에서 서브쿼리의 결과와 비교할 경우에는 다중 행 비교 연산자 를 사용하여 비교
다중 행 비교 연산자 : IN, ANY, SOM, ALL, EXISTS
다중 행 비교 연산자는 단일 행 비교 연산자와 결합하여 사용 가능

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

* 실습 예
- 20101번 학생과 학년이 같고, 키는 20101번 학생보다 큰 학생의 이름, 학년, 키를 출력하여라

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

 

* 사용 예
- 사용자 아이디가 ‘jun123’인 학생과 같은 학년인 학생의 학번, 이름, 학년을 출력하여라

 

* 사용 예
- 101번 학과 학생들의 평균 몸무게보다 몸무게가 적은 학생의 이름, 학과번호, 몸무게를 출력하여라

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

* 개요 *
- 서브쿼리에서 단 하나의 행만을 검색하여 메인쿼리에 반환하는 질의문
- 메인쿼리의 WHERE 절에서 서브쿼리의 결과와 비교할 경우에는 반드시 단일행 비교 연산자 중 하나만 사용해야함
● 단일 행 비교 연산자 : =, >, >=, <, <>, <=


- 서브쿼리의 결과로 하나의 행만이 출력되어야 함
● 방법 1. 서브쿼리의 조건절에서 기본 키나 고유 키를 ‘=‘ 비교 하는 방식
● 방법 2. 서브쿼리의 SELECT 절에서 전체 집합을 대상으로 그룹 함수 사용

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

* 개요
- 서브쿼리 필요성 - 계속

 

 

- 처리과정
1. 서브쿼리는 메인쿼리가 실행되기 전에 한번씩 실행됨
2. 서브쿼리에서 실행된 결과가 메인 쿼리에 전달되어 최종적인 결과를 출력 

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

* 개요 *
- 하나의 SQL 명령문의 결과를 다른 SQL 명령문에 전달하기 위해 두 개 이상의 SQL 명령문을 하나의 SQL명령문으로 연결하여 처리하는 방법
- 서브쿼리의 필요성
● 예 : 교수 테이블에서 ‘전은지’ 교수와 직급이 동일한 모든 교수의 이름 검색
● 처리방식
1. 교수 테이블에서 ‘전은지’ 교수의 직급 검색 SQL 명령문 실행
2. 교수 테이블의 직급 칼럼에서 1 에서 얻은 결과 값과 동일한 직급을 가진 교수 검색 명령문 실행
●1, 2 SQL 명령문 처리과정을 통합하여 하나의 SQL 명령문으로 처리

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

 

개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr

 

 

 

* 개요
- 하나의 테이블내에 있는 칼럼끼리 연결하는 조인이 필요한 경우 사용
- 조인 대상 테이블이 자신 하나라는 것 외에는 EQUI JOIN과 동일

* WHERE 절을 사용한 SELF JOIN
- 한 테이블에서 두 개의 칼럼을 연결하여 EQUI JOIN
- FROM절에서 하나의 테이블에 테이블 별명지정

- 예
부서 테이블에서 WHERE 절을 사용하여 SELF JOIN을 처리

 

 

 

 

 

* JOIN ~ ON 절을 사용한 SELF JOIN
- 오라클 9i에서 JOIN ~ ON 지원

 

 

 

* 사용 예
- 부서 테이블에서 SELF JOIN을 이용하여 부서 이름과 상위 부서의 이름을 출력하여라.
- WHERE절을 사용한 SELF JOIN방법

 

* JOIN~ON절을 사용한 SELF JOIN방법

 

 

* ​사용 예
- 부서 번호가 201 이상인 부서 이름과 상위 부서의 이름을 출력하여라.
- WHERE절을 사용한 SELF JOIN방법

* JOIN~ON절을 사용한 SELF JOIN방법

 

 

 

 

 

 

 

 

 

+ Recent posts