database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Tutorials 9332 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 9332
View 테이블 만들기
작성자
정재익(advance)
작성일
2002-01-07 02:37
조회수
9,877

VIew 테이블 만들기

 

1. VIEW 테이블의 정의

 

테이블에 대한 제한을 가지고 테이블의 일정한 부분만 보일 수 있는 가상의 테이블로서 VIEW TABLE은 실제 자료를 갖지는 않지만, VIEW을 통해 Table을 관리 할 수 있다.

하나의 테이블에 View의 개수는 제한이 없다.

 

2. VIEW 테이블의 목적

권한을 제한하여 만들수 있다.

 

*사용자에게 테이블에 대해 사용할 수 있는 모든 권한을 부여시는 다음과 같이 쓴다,

*권한부여시) GRANT SELECT/INSERT ON 테이블명 TO 사용자

*그러나, 일반적으로 사용자에게 테이블에 관한 모든 권한은 주지 않으며..따라서,, 제한적으로 권한부여를 해 주기 위해 View명령사용한다.

*실데이타는 가지고 있지않으며, 어떤 테이블을 제한적으로 다른 사용자가 볼수 있도록 해준다.

 

두개의 테이블을 join 할 경우 자료로 View 테이블로 만들어 작업의 효율성을 높일수 있다.

(복잡한 Query를 간단하게 해준다.) 여러 개의 테이블이 있을 때 view를 만든후, 쉽게 자료를 여러 개의 테이블로부터 볼 수 있다.

 

3. 형식

Create View view테이블명 AS Select …..Where …..

Drop View view테이블명 - :삭제

Alter View view테이블명 - :수정

 

4. 제한 조건

View을 통한 자료의 transation (DELETE./UPDATE/…)이 가능하게 하려면

1. Group By ,Distinct, Group 함수등을 이용한 View가 아니어야 한다.

2. 하나의 테이블에서 생성된 View이어야한다.

수식이 사용된 필드는 수정, 삭제 할 수 없다.

view을 통한 삽입이 가능하려면 NOT NULL 로 설정된 필드가 VIEW에 모두 포함되어야 한다.

view 생성시 Order By는 사용할 수 없으며, Group By, Having조건을 사용할 수 있다.

 

SQL> Create View v_sa5 as select saname,sajob,deptno from sawon where deptno=10;

SQL> update sawon set deptno=20 where saname='이상아'; - UPDATE 의 경우

1 개의 행이 갱신되었습니다.

SQL> Grant select on V_sa5 to scott;

권한 부여 성공입니다.

 

Connect Scott에서 View Table 보기

SQL> select * from Angle.V_sa5;

 

SQL> Create table v_sa6 as select saname,sapay,sapay*2 as bouns from sawon where deptno=20;

**** 필드명을 안 써주었을 경우 Error 가 발생

 

SQL> Create table v-sa6 (x,y,z) as select saname,sapay,sapay*2 from sawon where deptno=20;

****원하는 필드명으로 Change할 수 있다.

 

원하는 필드명으로 JOIN을 할 경우

SQL> Create view v_sa7(부서명,이름,직책,급여) as select dname,saname,sajob,sapay from sawon,dept

 

where dept.deptno=sawon.deptno;

원하는 필드명으로 join 과 group by 을 사용했을 때

SQL> Create View v_sa8(부서명,인원수,급여합계) as select dname,count(*),sum(sapay) from sawon,deptwhere sawon.deptno=dept.deptno group by dname;

[Top]
No.
제목
작성자
작성일
조회
9347Oracle9i XMLType의 이해
정재익
2002-01-07
6535
9334오라클 9i 에서 추가된 timestamp 자료형
정재익
2002-01-07
9102
9333client-server환경에서 비정상 종료된 session정리 방법
정재익
2002-01-07
5532
9332View 테이블 만들기
정재익
2002-01-07
9877
9331오라클 tip 몇가지
정재익
2002-01-07
8302
9330오라클 설치후 각각의 디렉토리에 대한 설명
정재익
2002-01-07
5514
9329DYNAMIC SQL 이란?
정재익
2002-01-07
7850
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.051초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다