우당탕탕 개발 블로그 도전기

03 07 ~ 03 15[Oracle DB] 본문

국비지원 과정 기록

03 07 ~ 03 15[Oracle DB]

나루나른 2024. 3. 17. 01:42

03. 07(목)

테이블 조인

여러 테이블을 하나의 테이블처럼 사용하는 기법으로 두 개 이상의 테이블을 결합하여 데이터를 추출하며,

테이블 조인으로 묶인 두 테이블의 공통값을 이용하여 컬럼을 조합하는 수단이다.

 

   형식)
    select 칼럼명
    from 테이블1 join 테이블2        -- 표준SQL문 = ANSI SQL문
    on 조건절;                       
    
    select 칼럼명
    from 테이블1 , 테이블2           -- Oracle DB SQL문
    on 조건절;

    select T1.*, T2.*               -- T1.모든칼럼, ,T2 모든칼럼
    from T1 inner join T2           -- inner 생략가능
    on T1.x = T2.x                  -- 테이블명.칼럼명

    select T1.*, T2.*, T3.*
    from T1 join T2
    on T1.x = T2.x join T3
    on T1.y = T3.y;                 -- 3개 테이블 조인

 

on 조건절을 늘려가며 여러개의 테이블을 연결할 수 있다. 다른 Sql문들처럼 조건절을 이용해 테이블 간의 특정한 데이터들을 추출한다.

SQL문에서 사용된 물리적 테이블과 논리적 테이블은 서로 동등한 관계를 지닌다.

 

- 물리적 테이블 : 실제 create table한 테이블
- 논리적 테이블 : SQL문에 의해 가공된 테이블

 

 

모조칼럼 [rownum]을 통한 페이징 기법

'rownum'은 Oracle 데이터베이스에서 사용되는 가상의 열로, 해당 열은 쿼리 결과 집합에서 각 행의 고유한 번호를 나타낸다.  일반적으로 데이터를 페이징하거나 특정 범위의 행을 선택하는 데 사용함.

 

페이징 기법은 일반적으로 대량의 데이터를 사용자에게 보여줄 때 유용하며, 웹 애플리케이션에서 검색 결과를 페이지 단위로 보여주거나, 무한 스크롤이 아닌 페이지를 나눠서 보여줄 때 사용될 수 있다.

 

Oracle 데이터베이스에서 rownum을 사용하여 페이징을 구현하는 쿼리의 예시

SELECT *
FROM (
    SELECT
        your_columns,
       	row_number() OVER (order by your_order_column) AS row_num
    FROM
        your_table
    WHERE
        your_conditions
) sub
WHERE
    row_num BETWEEN :start_row AND :end_row; 	-- ":start_row"와 ":end_row"는 각각 페이징된 결과의 시작 및 끝을 나타내는 매개변수

 

03.08(금)

뷰(view)

데이터베이스에서 View는 하나 이상의 테이블 또는 다른 뷰로부터 파생된 가상 테이블이다. View는 데이터베이스에 저장되는 실제 데이터를 가지고 있지 않으며, 쿼리를 실행할 때마다 정의된 쿼리에 따라 실제 데이터를 반환함.

 

View를 사용하면 여러가지 이점을 가지는데 다음과 같다.

 

데이터 보안: 사용자가 특정 열 또는 행에 대한 접근을 제한하려는 경우, View를 사용하여 사용자에게 필요한 데이터만 허용할 수 있다.

 

데이터 접근성 개선: 여러 테이블에 대한 복잡한 조인을 미리 정의된 View로 만들어 복잡성을 감소시켜 사용자가 매번 조인을 작성할 필요가 없다.

 

데이터 형식 변환: View를 사용하여 데이터의 형식을 변환하거나 특정 형식으로 제한할 수 있다. 자주 사용하는 방법으로는 날짜를 포맷팅하거나 문자열을 변환할 수 있다.

 

코드 재사용: View를 사용하여 자주 사용되는 쿼리를 재사용할 수 있는데 이는 코드의 중복을 줄이고 유지 관리성을 향상시킴

 

프로시저(Stored Procedure)

 

프로시저(Stored Procedure)는 하나 이상의 SQL 문과 제어 구문으로 구성된 저장된 코드 블록으로 이 코드 블록은 데이터베이스 내에서 저장되어 있으며, 필요할 때마다 호출하여 실행할 수 있다.

 

프로시저는 다음과 같은 장점을 제공한다.

  • 코드 중복 최소화: 반복되는 작업이나 로직을 프로시저로 묶어서 재사용할 수 있다.
  • 성능 향상: 데이터베이스 내부에서 실행되기 때문에 네트워크 부하를 최소화하고 실행 속도를 향상시킬 수 있다.
  • 보안 강화: 사용자는 프로시저를 호출하여 실행할 뿐 직접 SQL을 실행하지 않으므로 보안을 강화할 수 있다.

03. 11 ~ 03.15 

● 특정 사이트를 벤치마킹하여 직접 모델링을 해보는 팀 프로젝트

(모델링 시나리오, 정의서를 토대로 DB를 구성)

 

'국비지원 과정 기록' 카테고리의 다른 글

03.26 [Java]  (0) 2024.03.26
03.25 [Java]  (1) 2024.03.25
03.20~03.21[Java]  (0) 2024.03.23
03.18 ~ 03.19[Java]  (0) 2024.03.20
02.28 ~ 03.06 (Oracle DB)  (0) 2024.03.10