일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 이펙티브자바
- 인프런김영한
- CleanCode
- 네트워크
- 기술면접
- 인프런백기선
- DDD
- java
- 자료구조
- 알고리즘분석
- 이펙티브 자바
- 도메인 주도 개발 시작하기
- 스프링부트와AWS로혼자구현하는웹서비스
- SQL쿡북
- react
- 자바스터디
- MariaDB
- vue.js
- 알고리즘
- 인덱스
- AWS
- aop
- AWS RDS
- mysql
- 자바
- 클린코드
- jpa
- 자바예외
- 이팩티브 자바
- 혼공SQL
- Today
- Total
기록이 힘이다.
[혼공 SQL] 가상의 테이블: 뷰 본문
뷰는 데이터베이스 개체 중에 하나입니다. '가상의 테이블'
뷰는 단순 뷰와 복합 뷰로 나뉘는데, 단순 뷰는 하나의 테이블과 연관된 뷰를 말하고, 복합 뷰는 2개 이상의 테이블과 연관된 뷰를 말합니다.
뷰의 개념
뷰의 기본 생성
CREATE VIEW 뷰_이름
AS
SELECT 문;
SELECT 열_이름 FROM 뷰_이름
[WHERE 조건];
뷰를 만든 후에 뷰에 접근하는 방식은 테이블과 동일하게 SELECT 문을 사용합니다. 전체에 접근할 수도 있고, 필요하면 조건식도 테이블과 동일하게 사용할 수 있습니다.
뷰를 사용하는 이유
보안(security)에 도움이 됩니다.
앞의 예에서 만든 v_member 뷰에는 사용자의 아이디, 이름, 주소만 있을 분 사용자의 중요한 개인 정보인 연락처, 평균 키, 데뷔 일자 등의 정보는 들어 있지 않습니다.
복잡한 SQL을 단순하게 만들 수 있습니다.
뷰의 실제 작동
뷰의 단순한 형태에 대해 살펴보았는데, 실무에서는 좀 더 복잡하게 사용합니다. 실제로 사용하는 방법을 익혀보겠습니다.
뷰의 실제 생성, 수정, 삭제
기본적인 뷰를 생성하면서 뷰에서 사용될 열 이름을 테이블과 다르게 지정할 수도 있습니다. 별칭 AS를 사용.
단, 뷰를 조회할 때는 열 이름에 공백이 있으면 백틱(`)으로 묶어줘야 합니다. 한글도 가능합니다.
생성 CREATE 개체_종류/ CREATE VIEW
수정 ALTER 개체_종류/ ALTER VIEW
삭제 DROP 개체_종류/ DROP PROCEDURE
뷰의 정보 확인
뷰를 통한 데이터의 수정/삭제
뷰를 통해서 데이터를 입력하려면, 뷰에서 보이지 않는 테이블의 열에 NOT NULL이 없어야 합니다.
뷰를 통한 데이터의 입력
예약어 WITH CHECK OPTION을 통해 뷰에 설정된 값의 범위가 벗어나는 값은 입력되지 않도록 할 수 있습니다.
키가 167 미만인 데이터는 입력되지 않고, 167 이상의 데이터만 입력됩니다. 이러한 방식이 좀 더 합리적 입니다.
뷰가 참조하는 테이블의 삭제
바람직하지는 않지만, 관련 뷰가 있더라도 테이블은 쉽게 삭제됩니다.
뷰가 조회되지 않으면 CHECK TABLE 문으로 뷰의 상태를 확인해볼 수 있습니다.
'SQL' 카테고리의 다른 글
[혼공 SQL] 인덱스의 내부 작동 (0) | 2022.12.14 |
---|---|
[혼공 SQL] 인덱스 개념을 파악하자 (0) | 2022.12.14 |
[혼공 SQL] 제약조건으로 테이블을 견고하게 (0) | 2022.12.13 |
[혼공 SQL] 테이블 만들기 (0) | 2022.12.13 |
[혼공 SQL] SQL 프로그래밍 (0) | 2022.12.13 |