저희가 이제 가끔씩 쿼리를 잘 보다보면 create table이 아닌 create view하는 경우가 있습니다.
이게 사실 둘다 똑같은데요. 먼지 한번 파헤쳐봅시다.(파묘 아닌 파뷰)
VIEW가 무엇이냐?
저희가 갑자기 여러 select 쿼리를 날리다가 마음에 드는 행이 출력된 결과가 있었습니다.
이거를 테이블로 두고두고 저장해서 쓰고 싶습니다.
그럴때 이제 실제 테이블로 저장해도 되지만 더 간단하게 view로 만들어 저장할 수 있습니다.
view는 가상의 테이블인데, 실제 테이블처럼 사용할 수 있습니다.
CREATE VIEW 뷰이름 AS
SELECT 컬럼1, 컬럼2, ...
FROM 테이블명
view 만드는 문법은 이렇습니다.
SELECT로 찾은 행을 view로 만들어줘라는 코드입니다.
이전에 사용했던 테이블 한번 조인 해보겠습니다.
SELECT * FROM teacher t JOIN program p
ON t.id = p.강사id;
이것을 뷰로 한번 만들어보겠습니다.
CREATE VIEW view1 AS
SELECT *
FROM teacher t JOIN program p
ON t.id = p.강사id;
view는 테이블이랑 똑같아서 SELECT, INSERT, UPDATE, DELETE 전부가능합니다.
백문이불어외판뼉다구문제없는중고520d라 했던가요?
진짜인지 직접해보시기 바랍니다.?
(일부 DBMS는 SELECT만 지원합니다.)
view 쓰는 이유
뭐든 왜 쓰는지를 알아야합니다. 왜 쓸까요?
용도를 한번 잘 생각해봅시다. 위에 가상의 테이블이라고 했죠?
- 복잡하게 JOIN 해놓은 테이블들을 하나의 테이블 또는 view로 만들어두면 두고두고 재사용이 가능해 편리합니다.
- 근데 view는 실제 테이블만큼 물리적으로 저장되는 것이 아니라 저장 공간을 많이 차지하지 않습니다.
- table에 컬럼변경이 필요할 때 view를 이용해 미리 먼저 해봅니다.
- view 안에 또 SELECT 해서 view를 만들 수 있습니다.(너무 많은 중첩은 금지❌)
위에 용도도 있지만 사실 열심히 JOIN해서 작성해놨던 SELECT문을 쉽게 테이블 형태로 재사용하고 싶을 때 view를 가장 많이 사용합니다.
여러분 모두 그럴때 꺼내먹어요
(view는 가상 테이블이라고 했지만 실제 테이블이 아니기 때문에 SELECT 문법을 테이블 형태로 눈속임해주는 것일 뿐입니다.)
'DI(Digital Innovation) > DataBase & SQL 뽀개기' 카테고리의 다른 글
procedure에서 많이 쓰는 변수 문법 (0) | 2024.03.28 |
---|---|
저장 프로시저 stored procedure 쓰면 나도 알파메일 (0) | 2024.03.28 |
데이터 수정 삭제는 UPDATE / DELETE (0) | 2024.03.14 |
데이터 넣거나 복사하려면 INSERT (5) | 2024.03.14 |
LEFT AND RIGHT(feat. jungkook of BTS) JOIN (1) | 2024.03.14 |