21.08.26

.·2021년 9월 25일
0

playdata

목록 보기
24/35
post-thumbnail

DAY27

✍️ 툴 설치

👉 SQL Developer 클릭

👉 JDK 8이 설치되어 있을 경우 다운로드!! 만약에 설치되어 있지 않으면 JDK8 포함되어 있는 것 다운로드

👉 압축풀기

👉 실행

👉 JDK 8 Path 설정


✍️ 계정 접속



✍️ ROWNUM

  • ROWNUM 특징

    1. WHERE 조건 절이 실행되면서 순차적으로 할당
    2. 할당된 후에는 변경되지 않는다.
    3. WHERE 절이 수행되면서 조건을 만족시키는 행에 ROWNUM을 할당한 결과로 1차 ResultSet을 생성한다.
  • ROWNUM 사용 - 순번 체크 할 때 사용

    1. ROWNUM 특정 값으로 사용은 불가능
    2. WHERE 절이 모두 수행되어야 ROWNUM이 할당된다.
      (특정 ROWNUM이 할당되기 이전이므로 실행은 되지만 원하는 결과를 만들 수 없다.)
    3. ResultSet의 1st 행(ROWNUM = 1)은 선택적으로 가능하다. (명시할 수 있다)
    4. 순번을 사용할 때 ROWNUM이 할당되기 전에 미리 정렬을 해야 하며 미리 정렬된 결과를 가지고 있도록
      하기 위해서 인라인 뷰를 사용한다.(1~3의 특징이 있기 때문이다.)
Q1) EMP 사원 테이블에서 급여를 1 ~3 위 까지만 출력 해보자 = CASE1

	SELECT ROWNUM , ENAME, SAL
	FROM ( 
		SELECT ENAME, SAL
		FROM EMP
		ORDER BY SAL DESC) // 인라인뷰 - 미리 정렬 (가상 테이블)

	WHERE ROWNUM <=3;// ROWNUM이 1,2,3을 리턴한다.

Q2) EMP 사원 테이블에서 급여를 1 ~3 위 까지만 출력 해보자 = CASE2
    
	SELECT EMPNO,ENAME,SAL
	FROM EMP E1
	WHERE ( SELECT COUNT(1) // 오라클에서는 COUNT()안에 숫자를 주면 TRUE로 간주
		FROM EMP E2
		WHERE E1.SAL < E2.SAL) <3 // EX 5000보다 큰 것은 0개?? 0,1,2
	ORDER BY 3 DESC;

Q3) SELECT ROW_NUMBER() OVER (ORDER BY SAL DESC) RNO, SAL FROM EMP; 

	 SELECT ROW_NUMBER() OVER (정렬조건) => ROWNUM과 동일하다 / SELECT랑만 사용 가능
          => 중간 추출 순위 사용

    사원테이블에서 4등에서 7등까지 순위를 추출하자
	SELECT RNO, ENAME,SAL
	FROM (SELECT ENAME, ROW_NUMBER() OVER (ORDER BY SAL DESC) RNO, SAL FROM EMP)
	WHERE RNO BETWEEN 4 AND 7
	ORDER BY SAL DESC;

0개의 댓글