728x90
뷰(View)란?
- 데이터베이스에 존재하는 일종의 가상 테이블
- 실제 테이블처럼 행과 열을 가지고 있지만, 데이터를 직접 저장하고 있지는 않음
- 단지 다른 테이블이나 다른 뷰에 있는 데이터를 보여주는 역할만을 수행
뷰를 만드는 이유?
- 삽입, 삭제, 수정 작업에 제한 사항을 두기 위해
- 특정 사용자한테 뷰에 대한 권한만 줄 수 있음
- 내부 데이터를 전체 공개하고 싶지 않을 때
- SQL 코드를 간결하게 만들기 위해
뷰의 장점
- 특정 사용자에게 테이블 전체가 아닌 필요한 필드만 보여줄 수 있음
- 복잡한 쿼리를 단순화해서 사용 가능
- 사용한 쿼리를 재사용 가능
뷰의 단점
- 한 번 정의된 뷰는 변경 불가
- 삽입, 삭제, 갱신 작업에 많은 제한 사항을 가짐
- 뷰는 자신만의 인덱스를 가질 수 없음
뷰 연습
1. 뷰 생성
- 원본 테이블과 같은 이름을 가질 수 없음
- 테이블을 만들 듯 생성 가능
- CREATE 문 사용
- 단일 테이블의 필요한 컬럼 조회
CREATE VIEW [view_name]
SELECT [column_1], [column_2] ...
FROM [table_name]
WHERE [조건];
- 여러 테이블의 필요한 컬럼 조회
CREATE VIEW [view_name]
SELECT a.[column_1], b.[column_2]
FROM [table_name_1] AS a, [table_name_2] AS b
WHERE [조건];
2. 뷰 대체
- 기존에 생성했던 뷰를 다시 새로운 뷰로 대체
- 뷰는 한 번 생성하면 변경이 불가능하기 때문에 새로운 뷰로 대체하는 것으로 뷰에 설정한 필드를 대체할 수 있음
- 해당 뷰가 존재하지 않으면 CREATE VIEW 문과 같은 결과를 반환
-- 기존의 view_name 이라는 VIEW를 새로운 필드로 설정
CREATE OR REPLACE VIEW [view_name]
SELECT [column_1], [column_2]
FROM [table_name];
3. 뷰 수정
ALTER VIEW [view_name]
SELECT [column_1], [column_2] ...
FROM [table_name]
WHERE [조건];
4. 뷰 삭제
DROP VIEW [view_name];
728x90
반응형
'TIL - 프로그래밍 > SQL' 카테고리의 다른 글
[MySQL] FIND_IN_SET : 콤마로 구분된 문자열 검색 (0) | 2024.08.28 |
---|---|
MySQL FOREIGN KEY 기본 (설정, 삭제) (0) | 2024.07.23 |
MySQL 곱셈 구하기 (0) | 2024.07.02 |
MySQL 공백/문자 제거 - TRIM() (0) | 2024.07.02 |
조건에 맞는 값들을 묶어서 출력하기 - GROUP_CONCAT() (0) | 2024.07.02 |
댓글