[SQL]VIEW - 가상의 테이블

2024. 9. 9. 02:29·SQL
목차
  1. 뷰(VIEW)
  2. 예시
  3. 뷰 생성
  4. 뷰 수정
  5. 뷰삭제
  6. 뷰와 테이블의 차이점
CREATE OR REPLACE VIEW 뷰이름 AS SELECT문;

뷰(VIEW)

: 하나 이상의 테이블의 데이터를 기반으로 하는 가상의 테이블

  • 단순화: 복잡한 쿼리를 단순화하여 사용자가 쉽게 데이터에 접근할 수 있도록 한다.
  • 보안: 특정 열이나 행을 숨길 수 있어 사용자에게 필요한 데이터만 노출할 수 있다.
  • 재사용성: 자주 사용하는 쿼리를 뷰로 정의해 놓으면 코드의 재사용이 가능해진다.
  • 데이터 일관성: 뷰를 통해 여러 사용자나 애플리케이션이 동일한 데이터 집합을 사용할 수 있다.

예시

뷰 생성


      
CREATE OR REPLACE VIEW VW_EMP_INFO
--REPLACE: 없으면 만들고 있으면 덮어쓰기(ORACLE에만 있는 기능, 다른 곳에서는 ALTER를 쓰거나 DROP을 해야함.)
AS
SELECT EMPLOYEE_ID EMPID,
FIRST_NAME||' '||LAST_NAME EMPNAME,
PHONE_NUMBER PHONE,
EMAIL EMAIL,
TO_CHAR(HIRE_DATE, 'YYYY-MM-DD') HIREDATE,
DEPARTMENT_ID DEPTID
FROM EMP0;

이때 권한을 부여하지 않은 상태에서 쿼리를 실행 시키면 다음과 같은 오류가 발생한다.

⚠️오류 보고 - ORA-01031: 권한이 불충분합니다

🔎명령 프롬프트나 WINDOWS POWERSHELL에서 권한을 부여한다.

GRANT CONNECT, RESOURCE, CREATE VIEW TO 권한을 부여할 접속명;

더보기

SQLPLUS /NOLOG

CONN /SYSDBA

GRANT CONNECT, RESOURCE, CREATE VIEW TO HDG;

VIEW는 구조나 제약조건에 따라 테이블의 데이터를 추가하거나 삭제, 수정이 가능하다.


      
INSERT INTO VW_EMP_INFO
VALUES((SELECT MAX(EMPID)+1 FROM VW_EMP_INFO), '이순신', '010-0001-0001', 'GENERALLEE', SYSDATE, NULL);

⚠️오류 보고 - SQL 오류: ORA-01733: 가상 열은 사용할 수 없습니다
      01733. 00000 -  "virtual column not allowed here"

뷰 수정


      
UPDATE VW_EMP_INFO
SET DEPTID=60
WHERE EMPID=208;

=>사원의 번호가 208인 사람의 부서번호를 60으로 UPDATE한다.

뷰삭제

📍데이터 삭제


      
DELETE FROM VW_EMP_INFO
WHERE EMPID=208;

📍 뷰 삭제


      
DROP VIEW VW_EMP_INFO;

뷰와 테이블의 차이점

  테이블 뷰
데이터 저장 방식 실제 데이터를 저장하는 구조 데이터를 저장하지 않고, SELECT 쿼리를 통해 정의된 결과 집합을 제공한다.
수정 가능성 데이터를 직접 삽입, 수정, 삭제할 수 있다.  일반적으로 뷰를 통해서는 직접 수정할 수 없다. (특정 조건을 만족하는 뷰는 수정이 가능할 수도 있음.)
사용 목적 데이터의 기본 저장소로 사용된다. 데이터 접근을 단순화하거나 특정 데이터를 필터링하여 보여주는 용도로 사용된다.
성능 직접적인 데이터 접근이 가능하므로 성능이 좋다 뷰를 호출할 때마다 기본 테이블의 데이터를 조회하므로 성능이 저하될 수 있다.
구조 고정된 구조를 가지며, 열과 데이터 타입이 명확하게 정의되어 있다.  동적인 구조를 가지며, 정의된 쿼리에 따라 결과가 달라질 수 있다.

 

'SQL' 카테고리의 다른 글

[SQL] DB LOCK  (0) 2024.09.09
[SQL] TRRIGER(트리거), TRANSACTION(트랜잭션)  (0) 2024.09.09
[SQL]PIVOT(행을 열로 전환)/UNPIVOT  (4) 2024.09.06
[sql]제약조건, 데이터 삽입∙수정∙삭제  (2) 2024.09.05
[SQL]테이블 생성, 삭제, 변경  (0) 2024.09.05
  1. 뷰(VIEW)
  2. 예시
  3. 뷰 생성
  4. 뷰 수정
  5. 뷰삭제
  6. 뷰와 테이블의 차이점
'SQL' 카테고리의 다른 글
  • [SQL] DB LOCK
  • [SQL] TRRIGER(트리거), TRANSACTION(트랜잭션)
  • [SQL]PIVOT(행을 열로 전환)/UNPIVOT
  • [sql]제약조건, 데이터 삽입∙수정∙삭제
라텐느
라텐느
이제 막 개발을 시작한 초보가 개인공부를 하는 공간입니다.
  • 라텐느
    괴발개발
    라텐느
    • 개발자 (153)
      • HTML|CSS (14)
      • JAVA (29)
      • JAVACSCRIPT (15)
      • SQL (16)
      • 기타 (5)
      • JSP (2)
      • SPRING (13)
      • SPRING BOOT (6)
      • Git&GitHub (1)
      • 시행착오 (2)
      • 개발일지 (35)
        • GreenMiniProject1 (12)
        • GreenMiniProject2 (9)
        • GreenFinalProject (14)
      • Flutter (5)
      • 자격증 (0)
        • SQLD (1)
      • AWS (2)
      • Linux (1)
      • 자료구조&알고리즘 (4)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 태그
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    AJAX
    JQuery
    티스토리챌린지
    input
    java
    tag
    CSS
    javascript
    JS
    부트캠프
    HTML
    태그
    개발자
    오블완
    SQL
    자기계발
    db
    일지
    링크
    link
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
라텐느
[SQL]VIEW - 가상의 테이블

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.