mysql은 따로 깃헙에 수업자료를 올리기 애매한 관계로 블로그에 따로 정리하여 작성할까 한다.
우선 오늘배운 view관련 하여 정리를 할 것이고 추후에 차례대로 정리하여 블로그를 작성할 예정이다.
다음은 view의 기본적인 개념사항이다.
* 엄청 공들여 정리한다기 보다 그날 배운 수업에 대한 복습목적으로 ..
1. view 개념
- 뷰(view)
. 필요한 정보만 추출하여 가상테이블 형태(view)로 제공한다.
. 복잡한 질의문을 간소화
. 작업결과를 임시로
. 뷰를 기초로 다른 뷰를 생성할수도 있다.
. 관리자로부터 테이블에 대한 접근권한과 생성권한을 부여받아야 한다. - 목적
. 데이터 노출로부터 데이터베이스를 보호(정보보호/관리)
. 데이터이 독립성
. 다양한 구조의 테이블 사용효과
. 작업의 단순화 - 생성방법
CREATE VIEW 이름 AS
SELECT 칼럼 조건문; - 수정
ALTER VIEW 이름(컬럼,컬럼...)as
select 컬럼,컬럼... where 조건;
*컬럼을 맞춰준다. - 삭제
DROP VIEW 이용
*삭제를 해도 원래 테이블에는 아무런 영향이 없다. - 예외사항(뷰를 통한 입력이 안되는 경우)
. 원본 테이블 not null의 칼럼은 view에도 존재해야 insert가 된다. (not null고려)
. 그룹함수를 사용한 뷰에서 데이터 입력불가
. 가공한 데이터는 뷰에 입력될수 없다.
. join 한 뷰에서는 데이터 입력 불가.
2. 사용예시
#컴퓨터과학과 교수view를 생성해보자
create view 컴퓨터과학과 as
select \* from 교수 where 소속학과='컴퓨터과학과';
#조건을 걸어 뷰를 만들기, 강의테이블에서 인원제한이 100명이상인 강의의 강의번호, 강의이름, 교수번호, 인원제한 칼럼 '대강의' 뷰 생성
create view 대강의 as
select 강의번호, 강의이름, 교수번호, 인원제한 from 강의 where 인원제한>=100;
뷰를 검색할 떄도 마찬가지로 select를 사용하여 검색한다.
select * from 대강의;
#조인을 사용한 view 생성, 직급이 사원에 해당하는 사람들의 사번, 이름, 직급, 수당, 부양가족수를 검색하는 뷰생성
create view 사원 as
select a.사번, b.성명, a.직급, a.수당, b.부양가족수
from 급여 a inner join 신상 b
on a.사번=b.사번;
select * from 사원;
'DBMS > mysql' 카테고리의 다른 글
mysql - 기본 문법 정리(SELECT, 내부함수) (1) | 2023.05.07 |
---|---|
mysql 기본 문법 정리 - 제약조건 (0) | 2023.05.06 |
mysql 기본문법 정리 - 트리거 (0) | 2023.05.05 |
mysql 기본문법정리 - 저장프로그램(procedure, 함수) (0) | 2023.05.03 |
댓글