ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SUBQUERY
    Oracle-diary/QUERY 2020. 1. 30. 17:53
    요약
    SUBQUERY종류 SINGLE ROW SUBQUERY,MULTIPLE ROW SUBQUERY 존재
    요령 SUB먼저 작성,MAIN 그다음에 작성
    정의 SINGLE ROW란 SUBQUERY실행하면 한개의 정보, MULTIPLE ROW란 한번 실행하면 여러개의 정보 (연산자가 달라진다.)
    주의사항 SUBQUERY는 ()안에,ORDERBY절은 SUBQUERY안에서 무의미하나 FROM절 안에서는 가능하다.
     
     
     
    -------------------------------------------------------------------------------------------------------------------------------------
    종류?
    SINGLE ROW SUBQUERY
    MULTIPLE ROW SUBQUERY
    MULTIPLE COLUMN SUBQUERY
     
    jones 사원보다 더많은 급여를 받는 사원의 이름,급여?
    SQL> SELECT ENAME SAL
    2 FROM EMP
    3 WHERE SAL>=(SELECT SAL <-문장이 또 들어가있음. MAIN QUERY <-더많은 급여를 받는 사원의 이름,급여?
    4 FROM EMP
    5 WHERE ENAME='JONES'); sub query <-jones 사원 급여
     
    SAL
    ----------
    JONES
    SCOTT
    KING
    FORD
    ---------------------------------------------------------------------------------------------------------------------------------------
    요령
     
    1. sub먼저 작성
    2. main그다음에 작성
    BLAKE 사원보다 늦게 입사한 사원의 이름 입사일?
    SUB -> BLAKE 사원의 입사일
    MAIN-> 늦게 입사한 사원의 입사일
     
     
    sub
    select hiredate
    from emp
    where ename='blacke'
     
     
    main
    select ename,hiredate
    from emp
    where hiredate>'80/01/01' '80/01/01'을 sub로 대체해주면 된다.
     
    최종
    SQL> select ename,hiredate
    2 from emp
    3 where hiredate> (select hiredate
    4 from emp
    5 where ename='BLAKE');
    -------------------------------------------------------------------------------------------------------------
    sigle row subquery란?
    select ename,sal
    from emp
    where sal >= (select sal
    from emp
    where ename='BLAKE')라고 하면 SUBQUERY가 실행하고나면 값이 1개가 나오는데 그걸 SINGLEROWSUBQUERY라고한다.
     
    MULTIPLE ROW SUBQUERY란?
    select ename,sal
    from emp
    WHERE SAL >=(SELECT SAL
    FROM EMP
    WHERE DEPTNO=10); 이면 값이 여러개가 나오는데 그것을 MULTIPLE ROW SUBQUERY라고한다.
     
    MULTIPLE COLUMN SUBQUERY 란?
    SUBQUERY 안쪽에 SELECT SAL,COMM등 보여주는 열이 여러개인 것을 말한다.
    -------------------------------------------------------------------------------------------------------------
    주의 사항
    1. SUBQUERY는 ()안에 있어야 한다.
    2. SINGLE ROW SUBQUERY(SRS) 앞에는 SINGLE ROW OPERATOR(SRO)가 있어야 한다.
    3. MULTIPLE ROW SUBQUERY(MRS) 앞에는 MULTIPLE ROW OPERATOR가(MRO) 와야한다. OPERATOR는 예를들어 비교연산자처럼 성질을 나타낸것.
    MRO는 IN처럼 여러개가 나오게 되는것.
    4.SUBQUERY 안에서는 ORDER BY절은 의미가 없다.
    따라서 지원하지 않는다.
    |단 ORACLE 8i 버전부터 |
    |from 절에서 사용되는 subquery의 경우|
    |지원한다 |

    'Oracle-diary > QUERY' 카테고리의 다른 글

    ||와 DISTINCT  (0) 2020.01.30
    TABLE,RDBMS,사용자종류  (0) 2020.01.30
    JOIN조건  (0) 2020.01.30
    DESC,절과 문,기본 명령어  (0) 2020.01.30
    BUFFER  (0) 2020.01.30

    댓글

Designed by Tistory.