-
SQL 단순 VIEW 수정 & 삭제Data Base_Oracle/SQL 2020. 1. 9. 00:01
단순 VIEW 수정
DML을 사용하여 VIEW의 내용을 수정
VIEW의 레코드를 수정하면 VIEW가 참조한 기본 테이블의 레코드도 수정됨UPDATE
§ 형식
[ SQL> update 수정view명 set 수정 필드명 = 수정 값,,,, where 조건식; ]
# 예제
▷ 부서번호가 30인 사원의 이름, 급여, 부서번호만 보여주는 뷰 작성
▶ [ SQL> create view view_30 as select ename, sal, deptno from emp where deptno=30; ]
ENAME SAL DEPTNO ALLEN 1600 30 WARD 1250 30 ... ... ... ▷ ALLEN의 급여를 1600에서 0으로 감봉
▶ [ SQL> update view_30 set sal = 0 where ename='ALLEN';
1 행이 갱신되었습니다.
select ename, sal from view_30 where ename='ALLEN'; ]ENAME SAL ALLEN 0 ※ VIEW에 DML을 사용하면 VIEW가 참조한 Table에도 적용됨
[ SQL> select ename, sal from emp where ename='ALLEN'; ]ENAME SAL ALLEN 0 VIEW의 수정이 불가능한 경우
- 뷰 정의에 포함되지 않은 칼럼중에 기본 테이블의 칼럼이
NOT NULL 제약 조건이 지정되어 있는 경우 INSERT문 사용 불가 - SAL*12와 같이 산술 표현식으로 정의된 가상 칼럼이 뷰에 정의되면
INSERT, UPDATE 불가
※ 가상필드에 데이터를 입력할 수 없기 때문 - DISTINCT 포함 경우에도 DML 명령 사용 불가
- 그룹 함수나 GROUP BY 절을 포함한 경우에도 DML 명령 사용 불가
단순 VIEW 삭제
§ 형식
[ SQL> drop view view명; ]
# 예제
▷ 더 이상 사용하지 못하는 emp_name 뷰를 삭제
▶ [ SQL> drop view emp_name;
뷰가 삭제되었습니다. ]
단순 VIEW의 수정 / 삭제 방법에 대해 알아보았습니다.
VIEW에 DML구문을 사용하면 기본 테이블의 데이터도 변경된다는 것에 주의해야 합니다.
'Data Base_Oracle > SQL' 카테고리의 다른 글
SQL 복합 VIEW 생성 (0) 2020.01.09 SQL 단순 VIEW_그룹 함수 사용 (0) 2020.01.09 SQL 단순 VIEW 검색 & VIEW가 실행되지 않는 경우 (0) 2020.01.08 SQL 단순 VIEW 생성 (0) 2020.01.08 SQL_VIEW 개요 & USER_VIEWS (0) 2020.01.08 - 뷰 정의에 포함되지 않은 칼럼중에 기본 테이블의 칼럼이