table에 데이터를 저장한 후, 특정 컬럼의 정보에만 접근할 수 있는 커스텀된 view를 생성할 수 있다.
Table
실제 DB에 데이터를 저장하는 행과 열의 객체
사용
- DB의 정보를 보고(view) 체계화(organize)하기 위해
구성
- Table name
- Field name
- Definition
- 테이블을 생성하는 구문
- 어떻게 데이터를 저장하고, 보여주고, 어떤 제약사항들이 있는지
View
하나 이상의 테이블로부터 만든 논리적인 부분집합
SQL 쿼리를 수행한 후에 생성되는 객체
가상 테이블
특징
- view 스스로 데이터를 담고 있지 않다.
- 테이블의 데이터가 view를 통해 보여지거나 변경될 수 있는 'window' 같은 역할
- 다른 테이블로부터 얻어온 데이터의 컬럼들을 포함한다.
- 세션이 열려있는 동안 테이블에 적재하는 대신 뷰를 생성해서 사용할 수 있다.
- stored query
- 하나 이상의 테이블로 정보를 표현하는 쿼리
- derived table
- 실제로 데이터를 저장하지 않는 대신 base table로부터 데이터를 얻는다.
문법
CREATE [OR REPLACE] VIEW view_name AS
SELECT column_list
FROM table_name
[WHERE condition];
종류
- Simple
- 하나의 테이블로부터 데이터를 얻는다.
- 테이블에 컬럼을 추가하거나 삭제할 수 있다.
- Complex
- 여러 테이블로부터 데이터를 얻는다.
- 어떤 컬럼을 포함할지 선택할 수 있다.
차이점
저장
- Table
- DB는 테이블과 그 데이터를 저장한다.
- 삭제하지 않는 이상 테이블의 모든 데이터가 남아있다.
- View
- DB는 쿼리 결과인 뷰의 데이터를 저장하지 않는다.
- 쿼리를 통해 생성된 뷰는 어플리케이션이 종료되면 사라진다.
구조
- Table
- 컬럼과 로우로 구조화되어 이해하기 쉬운 SQL 테이블
- View
- 컬럼과 로우를 가지고 있지만 테이블의 일부이거나 2개 이상 테이블의 조합이다.
사용
- Table
- View
의존성
- Table
- View
데이터 조작
- Table
- 쉽게 데이터를 추가, 수정, 삭제할 수 있다.
- View
속도
- Table
- 한 번 어플리케이션이 시작되면, db에 저장된 원하는 정보에 접근하는 속도가 빠르다.
- View
- 쿼리를 한 번 실행해야하기 때문에 접근 시간이 테이블 접근 시간보다 더 걸린다.
- 여러 테이블로부터 결과를 얻으면 더 걸린다.
재생성
- Table
- View
- replace 옵션을 통해 쉽게 뷰를 다시 만들 수 있다.
출처