ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Oracle - View(뷰)
    DataBase/Oracle 2024. 9. 26. 23:10
    반응형

    SQL에서 뷰(View)와 테이블 관리

    1. 뷰(View)란?
      • 는 데이터베이스에서 제공하는 가상의 테이블로, 원본 테이블에서 특정 데이터를 조회할 때 사용됩니다. 직접 복잡한 쿼리문을 작성하지 않고, 뷰를 통해 간단히 데이터를 불러올 수 있어 개발의 효율성을 높여줍니다.
      • 뷰를 생성할 때는 해당 쿼리문이 저장되고, 뷰를 조회할 때마다 저장된 쿼리가 실행되어 데이터를 반환하게 됩니다.

     

    2. 뷰 생성 및 사용 예시

    CREATE VIEW emp_dept_view AS
    SELECT a1.EMPNO, a1.ENAME, a1.SAL, a2.DNAME, a2.LOC 
    FROM emp a1, dept a2
    WHERE a1.DEPTNO = a2.DEPTNO;
    
    SELECT * FROM emp_dept_view;
    • 위 코드는 사원 번호, 이름, 급여, 근무 부서 이름, 근무 지역을 포함한 뷰를 생성하는 예시입니다. emp 테이블과 dept 테이블을 조인하여 두 테이블의 관련 정보를 하나의 뷰에서 조회할 수 있도록 설계되었습니다.

     

    3. 테이블 생성 및 데이터 관리

    DROP TABLE emp100;
    
    CREATE TABLE emp100 AS
    SELECT * FROM emp;
    
    DROP TABLE dept100;
    
    CREATE TABLE dept100 AS
    SELECT * FROM dept;
    • 기존의 emp와 dept 테이블을 활용하여 emp100과 dept100이라는 새로운 테이블을 생성합니다. 이는 테스트 용도로 새로운 테이블을 복제한 것입니다.

     

    4. 새로운 뷰 생성

    CREATE VIEW emp100_dept100_view AS
    SELECT a1.empno, a1.ename, a1.sal, a2.dname, a2.loc
    FROM emp100 a1, dept100 a2 
    WHERE a1.deptno = a2.deptno;
    • 앞서 생성한 emp100과 dept100을 이용해 동일한 뷰를 생성하고, 조인한 테이블에서 데이터를 조회할 수 있습니다.

     

    5. 원본 테이블에 데이터 추가

    INSERT INTO emp100 (empno, ename, sal, deptno)
    VALUES (5000, '홍길동', 2000, 10);
    
    SELECT * FROM emp100;
    SELECT * FROM emp100_dept100_view;
    • emp100 테이블에 데이터를 추가한 후, 그 결과가 뷰에 반영되는지 확인할 수 있습니다.

     

    6. 뷰에 데이터 추가 시 발생하는 문제

    INSERT INTO emp100_dept100_view (empno, ename, sal)
    VALUES (6000, '김길동', 2000);
    • 뷰에 데이터를 직접 추가하려는 시도는 실패할 수 있습니다. 이는 뷰가 단순 조회용으로 설계되었기 때문에, 조인된 뷰에서는 직접적인 데이터 추가가 불가능합니다. 뷰는 원본 테이블의 데이터 변경에 의존하므로, 뷰를 통해 데이터를 삽입하려는 시도는 오류가 발생하게 됩니다.

     

    7. 단순한 뷰를 사용한 데이터 삽입 예시

    CREATE VIEW emp200_view AS
    SELECT empno, ename, sal
    FROM emp100;
    
    INSERT INTO emp200_view (empno, ename, sal)
    VALUES (7000, '박길동', 3000);
    
    SELECT * FROM emp200_view;
    • 위와 같이 단순한 뷰를 생성한 후에는, 원본 테이블과 연결된 데이터 컬럼을 기준으로 데이터를 삽입할 수 있습니다. 다만, 조인된 테이블이 포함된 뷰는 삽입이 불가능합니다.

    추가 설명

    • 뷰의 사용 시 장점: 뷰는 복잡한 쿼리 구문을 간단히 작성하여 데이터를 조회할 수 있게 해주는 장점이 있습니다. 특히, 여러 테이블을 조인하여 하나의 결과 테이블처럼 사용할 수 있으므로, 효율적인 데이터 관리와 조회가 가능합니다.
    • 뷰 사용 시 주의사항: 뷰를 사용하여 데이터를 삽입하거나 삭제하는 것은 권장되지 않으며, 이러한 작업은 원본 테이블에서 수행하는 것이 바람직합니다. 또한 뷰는 실제 데이터가 아니라, 원본 테이블에 의존하는 가상의 테이블임을 이해하고 사용해야 합니다.

     

    반응형

    'DataBase > Oracle' 카테고리의 다른 글

    oracle - 특정 스키마 dmp하기  (0) 2025.02.12
    Oracle - 오라클 버전 확인  (0) 2025.02.11
    Oracle - 인덱스(index)  (0) 2024.09.25
    Oracle - 테이블 구조 변경하기  (0) 2024.09.19
    Oracle - 제약조건 추가하기  (0) 2024.09.12

    댓글

Designed by Tistory.