본문 바로가기
Back-End/Database

Oracle SQL(5)

by newny 2023. 3. 3.
반응형

rownum

  • 고정된 값이 아닌 select되는 값에 따라서 동적으로 부여되는 번호
  • 위의 순서대로 진행됨

 

작동방식

  • where절이 실행될 때 조건에 맞으면 1을 부여하고, 맞지 않으면 번호를 부여하지않고 버림
  • select문이 실행되면서 번호가 부여됨

→ 따라서 rownum은 where절이 실행될때 존재하는 컬럼이 아니므로 rownum=1 외에 숫자 지정은 할 수 없음
 

rownum을 이용해서 4번~6번 데이터 조회하기

select uname, hakno, address, rownum
from tb_student
where rnum between 4 and 6
order by uname;

위의 방식대로 데이터를 추출하면 아무런 값이 추출되지 않음

  1. rownum은 고정된 값이 아닌 select되는 값에 따라서 동적으로 부여되는 번호이기 때문에 order by로 정렬됨으로써 순서가 뒤죽박죽됨
  2. 1번을 만족시켜서 정렬을 잘 시켰다고 해도 where절의 조건이 rownum을 1부터 지정하지 않고 4부터 지정했기 때문에 조건이 충족되지 않아 아무런값도 출력되지 않음

 
[조회방법]

select *
from (select A.*, rownum as rnum
      from (select uname, hakno, address
            from tb_student
            order by uname) A) B
where rnum between 4 and 6;
  1. order by 이용하여 원하는 데이터의 가상 테이블을 만듦 - A
  2. A테이블에 rownum을 넣어서 순서를 붙힘 - B
  3. rownum이 고정된 B테이블에 where절을 사용하여 원하는 값을 도출 - (rownum의 번호 4번~6번 출력)
  4. 코드가 복잡해지므로 Alias(별칭)와 AS는 되도록 사용해주는것이 좋음

CSV 파일

  • Comma-Separated Values
  • 스프레드시트의 파일 형식 (쉼표(,)로 값이 구분됨을 의미)

 

oracle diveloper에서 csv파일 import 방법

테이블 생성
디벨로퍼 왼쪽의 테이블 파일에 임포트할 테이블선택, 오른쪽 클릭하여 데이터임포트 선택
파일찾아서 지정, 1행이 컬럼명 또는 제목인 파일일 경우 헤더를 표시여부 선택
임포트방식 확인, 임포트행 제한여부
아래의 csv문서 확인 후 사용할 열 선택 왼쪽 테이블에 선택
csv 파일의 열에 맞는 테이블의 컬럼 선택
완료
반응형

'Back-End > Database' 카테고리의 다른 글

SQL 예제(3)  (0) 2023.03.03
Oracle SQL(4)  (0) 2023.03.02
SQL 예제(2)  (0) 2023.02.28

댓글