티스토리 뷰
View - 뷰 생성(CREATE VIEW)
하나 이상의 Base table을 기반으로 생성은 되었으나 물리적으로 존재하지 않고 Data Dictionary에 Select 구문 형태로 정의만 되어 있는 가상의 논리적인 테이블
테이블과 쓰는게 똑같다.
테이블과 연결되어잇다.
겉으로는 테이블처럼 보인다.
Base table : 물리적인 테이블. DB에 저장되어 있는 것
가상의 논리적인 테이블 : View
Data Dictionary : DB 사전
문법
1 2 3 | CREATE [ FORCE | NOFORCE ] VIEW view [ ( alias [ , alias ] ... )] AS subquery | cs |
FORCE
- 베이스 테이블 존재여부에 관계없이 무조건 뷰 생성
- 뷰는 만들었지만 사용 하지 않는다
- 베이스 테이블 만들어질 때까지 사용 불가능.(이러건 드물다)
NOFORCE
- 기본 DEFAULT
- 베이스 테이블이 존재하는 경우에는 뷰 생성
View view
- 뷰 이름
1 2 3 4 | CREATE VIEW empvu80 AS SELECT employee_id, last_name, salary FROM employees WHERE department_id = 80; | cs |
employees : 베이스 테이블
1 | DESC empvu80 | cs |
1 2 | SELECT * FROM empvu80; | cs |
1 2 3 4 | CREATE VIEW salvu50 AS SELECT employee_id ID_NUMBER, last_name NAME, salary*12 ANN_SALARY FROM employees WHERE department_id = 50; | cs |
1 | DESC salvu50 | cs |
1 2 | SELECT * FROM salvu50; | cs |
VIEW 와 TABLE의 접근방법이 달라서 FROM 절 확인해야 함. 그래서 베이스테이블을 찾아간다
VIEW는 보안 때문에 사용. 성능이 떨어짐
많이 쓰는 이유
- 모든 것을 테이블로 만들어 쓰기에는 공간적인 이유가 크다.
- 데이터가 2중, 3중으로 저장되기 때문이다.
- 속도는 테이블보다 빠르다
임시데이터 상태라 COMMIT을 해줘야 한다
'부산 ITWILL 학원 실습 > ORACLE' 카테고리의 다른 글
[SQL 활용] 9. 데이터정의어(DDL) - View - 뷰 사용 (0) | 2018.08.09 |
---|---|
[SQL 활용] 9. 데이터정의어(DDL) - View - 뷰 수정 (0) | 2018.08.09 |
[SQL 활용] 실습 2. 표를 기반으로 테이블 생성 ( P.22 ) (0) | 2018.08.09 |
[SQL 활용] 8. 데이터정의어(DDL) - 테이블 삭제 - 테이블 절단 (0) | 2018.08.09 |
[SQL 활용] 8. 데이터정의어(DDL) - 테이블 삭제 - 휴지통 거치지 않고 테이블 삭제하기 (0) | 2018.08.09 |