중요
번역은 여러분이 참여할 수 있는 커뮤니티 활동입니다. 이 페이지는 현재 100.00% 번역되었습니다.
15.5. 수업: 뷰
쿼리를 작성할 때, 쿼리를 구성하는 데 많은 시간과 노력을 들여야 합니다. 뷰를 사용하면 재사용할 수 있는 ‘가상 테이블’에 SQL 쿼리의 정의를 저장할 수 있습니다.
이 수업의 목표: 쿼리를 뷰로 저장하기.
15.5.1. 뷰 생성하기
뷰를 테이블과 똑같이 다룰 수 있지만, 뷰의 데이터는 쿼리에서 나옵니다. 앞의 내용을 바탕으로 간단한 뷰를 만들어봅시다:
create view roads_count_v as
select count(people.name), streets.name
from people, streets where people.street_id=streets.id
group by people.street_id, streets.name;
보면 알겠지만 단 하나 달라진 점은 시작 부분의 create view roads_count_v as 뿐입니다. 이제 이 뷰에서 데이터를 선택할 수 있습니다:
select * from roads_count_v;
결과:
count | name
-------+-------------
1 | Main Road
2 | High street
1 | Low Street
(3 rows)
15.5.2. 뷰 수정하기
뷰는 고정되어 있지 않으며, ‘실제 데이터’를 담고 있지도 않습니다. 즉 여러분의 데이터베이스에 있는 어떤 데이터도 건드리지 않고 뷰를 변경할 수 있다는 뜻입니다:
CREATE OR REPLACE VIEW roads_count_v AS
SELECT count(people.name), streets.name
FROM people, streets WHERE people.street_id=streets.id
GROUP BY people.street_id, streets.name
ORDER BY streets.name;
(또한 이 예시는 모든 SQL 키워드에 대문자 를 사용하는 모범적인 실행 규범을 보여주고 있습니다.)
ORDER BY 구문을 추가해서 뷰의 행들이 알파벳 순서로 정렬된 것을 볼 수 있을 것입니다:
select * from roads_count_v;
count | name
-------+-------------
2 | High street
1 | Low Street
1 | Main Road
(3 rows)
15.5.3. 뷰 삭제하기
뷰가 더 이상 필요 없을 경우, 다음과 같이 삭제할 수 있습니다:
drop view roads_count_v;
15.5.4. 결론
뷰를 이용하면 쿼리를 저장하고, 그 쿼리의 결과물에 마치 쿼리가 테이블인 것처럼 접근할 수 있습니다.
15.5.5. 다음은 무엇을 배우게 될까요?
데이터를 변경할 때, 가끔 변경 사항이 데이터베이스의 다른 부분에 영향을 주기를 바랄 수도 있습니다. 다음 수업에서 그 방법을 배워보겠습니다.