본문 바로가기
IT Study/DBMS

Oracle - EQUI JOIN / 페이징처리

by hhyyyjun 2023. 1. 1.

| JOIN

여러개의 테이블 데이터를 조합하여 출력하는 것

Equi Join(등가조인)

가장 많이 사용하는 조인문

2개 이상의 테이블에서 공통적으로 존재하는 데이터의 값이 일치되는 행을 연결해서 결과를 생성하는 것

조인 조건이 정확히 일치하는 경우에 사용 (PK(기본키) 와 FK(외래키) 를 사용한 조인)

조인 조건에 ' = ' 를 이용

2중 이상의 조인이 가능하다.

아래와 같이 2개의 테이블을 생성하였고, 각각 데이터를 삽입하였다.

TEST1

 

TEST2

 

두 테이블에서 데이터 값이 일치하는 컬럼에 = 를 이용하여 조인을 해주었다.

***다른 테이블의 정보를 가져올 때에는 반드시 해당 테이블의 PK 가져와야 함

***이렇게 가져온 상대 테이블의 PK컬럼을 외래키(FOREIGN KEY)라고 한다.

이와 같이 조인되어 출력된 것을 확인할 수 있다.


| 페이징 처리

데이터베이스에서 읽어와 화면에 출력할 때 한꺼번에 모든 데이터를 가져오는 것보다

출력될 페이지의 데이터만 나눠서 가져오는 것을 페이징(Paging)이라고 한다.

ROWNUM이란?

오라클에서 조회된 행이 몇번째 행인지 부여해주는 것

 

ROWNUM을 올바로 사용하기 위해서는?

ROWNUM을 사용한 곳에 ORDER BY를 사용하면 안된다

ORDER BY를 사용해야 한다면 서브쿼리 안에 사용할 것

테이블을 만들고 데이터를 삽입하였다.

 

여기서 아래와 같은 코드에서 같은 결과값을 얻을 수 있다.

둘 다 같은 결과이지만 차이점은

사용자가 지정한 컬럼의 경우에는 모든 데이터를 전부 확인 후 3개를 출력하지만

ROWNUM의 경우에는 조건식에 따라 3개만 확인하고 출력하므로 속도개선을 위해 사용된다.

**주의할 점

ROWNUM을 추가한 상태에서 ORDER BY로 다른 컬럼을 지정할 시 ROWNUM이 엉망이 된다.

따라서 서브쿼리 내에서 ORDER BY할 컬럼을 먼저 지정 후 ROWNUM을 사용해야 한다.

컬럼 PID를 내림차순 정렬하는 별칭 A인 테이블을 조회하면서 별칭 RNUM인 컬럼 ROWNUM이 7이하면서 3초과인 결과값을 조회

* 별칭 AS는 생략이 가능하다

결과값

'IT Study > DBMS' 카테고리의 다른 글

MySQL - 이클립스 연동하기  (0) 2023.01.02
Oracle - 함수 사용법  (0) 2023.01.02
Oracle/JDBC - Java 드라이버 연동  (0) 2023.01.02
Oracle - GROUP BY/HAVING  (0) 2023.01.01
DBMS  (0) 2023.01.01

댓글