-
자바&파이썬 웹애플리케이션 전문가 양성과정 채용연계형 교육과정 23일차
KT 자바교육 후기 (2021-07-22 ~ 2021-12-03)
2021-08-24 (참고, 8월 16일 ~ 9월 3일 비대면 주간, 4단계 거리두기로 인하여)
SQL Oracle 서브 쿼리
[오전]
실습 예제────────────────
1. 급여가 2000을 초과하는 사원들의 부서 정보, 사원정보를 출력하세요
>> DB_Oracle,SQL 급여가 2000을 초과하는 사원들의 부서 정보, 사원정보를 출력 :: HappyEndingIsMine (tistory.com)
2. 부서정보와 사원정보를 부서번호, 사원 이름순으로 정렬하여 출력해보세요
>> DB_Oracle,SQL 부서정보와 사원정보를 부서번호, 사원 이름순으로 정렬하여 출력 :: HappyEndingIsMine (tistory.com)
3. 모든 부서 정보, 사원 정보, 급여 정보, 각 사원의 직속 상관의 정보를 부서번호, 사원 번호 순서로 정렬하여 출력해보세요
>> DB_Oracle,SQL 사원 정보를 특정 정렬 조건에 맞춰 정렬하기. :: HappyEndingIsMine (tistory.com)
───────────────────────────
[오후]
서브쿼리(SubQuery) 란?
Main Query에 반대되는 개념
하위 쿼리라고도 하며, 하나의 SQL 문장 내부에 존재하는 또 다른 SELECT 문장
SELECT, INSERT, DELETE, UPDATE 절에서 모두 사용 가능.
서브쿼리의 결과 집합을 메인 쿼리가 중간 결과값으로 사용.
서브쿼리 자체는 일반 쿼리와 다를 바가 없음.
단일행 서브쿼리(single-row subquery)
실행 결과가 단 하나의 행으로 나오는 서브쿼리
연산자 : >, >=, =, <=, <, <>, !=, ^=
SELECT * FROM EMP WHERE HIREDATE < ( SELECT HIREDATE FROM EMP WHERE ENAME = ‘SCOTT’) SELECT E.EMPNO, E.ENAME, E.SAL, D.DEPTNO, D.DNAME, D.LOC FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO AND E.DEPTNO = 20 AND E.SAL > (SELECT AVG(SAL) FROM EMP);
다중행 서브쿼리(multiple-row subquery)
실행 결과 행이 여러 개로 나오는 서브쿼리
연산자 :
SELECT * FROM EMP WHERE SAL IN (SELECT MAX(SAL) FROM EMP GROUP BY DEPTNO); SELECT * FROM EMP WHERE SAL < ALL(SELECT SAL FROM EMP WHERE DEPTNO = 30); SELECT * FROM EMP WHERE SAL < ALL(SELECT SAL FROM EMP WHERE DEPTNO = 30);
인라인 뷰(inline view)
FROM 절에 사용하는 서브쿼리
SELECT E10.EMPNO, E10.ENAME, E10.DEPTNO, D.DNAME, D.LOC FROM (SELECT * FROM EMP WHERE DEPTNO = 10) E10, (SELECT * FROM DEPT) D WHERE E10.DEPTNO = D.DEPTNO; WITH E10 AS (SELECT * FROM EMP WHERE DEPTNO = 10), D AS (SELECT * FROM DEPT) SELECT E10.EMPNO, E10.ENAME, E10.DEPTNO, D.DNAME, D.LOC FROM E10, D WHERE E10.DEPTNO = D.DEPTNO;
스칼라 서브쿼리(scalar subquery)
SELECT 절에 사용하는 서브쿼리, SELECT 절에 하나의 열 영역으로 결과 출력
SELECT 절에 명시하는 서브쿼리는 반드시 하나의 결과만 반환되어야 함
SELECT EMPNO, ENAME, JOB, SAL, (SELECT GRADE FROM SALGRADE WHERE E.SAL BETWEEN LOSAL AND HISAL) AS SALGRADE, DEPTNO, (SELECT DNAME FROM DEPT WHERE E.DEPTNO = DEPT.DEPTNO) AS DNAME FROM EMP E;
실습 예제────────────────
1. 전체 사원 중 ALLEN과 같은 직책인 사원들의 사원정보, 부서정보를 출력해보세요
>> DB_Oracle,SQL 특정 이름과 같은 내용을 출력하는 쿼리 출력 :: HappyEndingIsMine (tistory.com)
2. 10번 부서에 근무하는 사원 중 30번 부서에는 존재하지 않는 직책을 가진
사원들의 사원정보, 부서정보를 출력해보세요
>> DB_Oracle,SQL 특정 조건에 맞는 데이터 출력 예제 :: HappyEndingIsMine (tistory.com)
'KT_DS' 카테고리의 다른 글
KTDS_자바&파이썬 웹애플리케이션전문가 양성과정교육_25일차(HTML/CSS) (0) 2021.08.25 KTDS_자바&파이썬 웹애플리케이션전문가 양성과정교육_24일차(DB) (0) 2021.08.25 KTDS_자바&파이썬 웹애플리케이션전문가 양성과정교육_22일차(DB) (0) 2021.08.23 KTDS_자바&파이썬 웹애플리케이션전문가 양성과정교육_21일차(DB) (0) 2021.08.20 KTDS_자바&파이썬 웹애플리케이션전문가 양성과정교육_20일차(DB) (0) 2021.08.19 댓글 (비로그인 댓글 허용하지 않습니다.)