16.5. Lesson: 뷰

쿼리 작성 시 쿼리를 구성하는 데 많은 시간과 노력을 들여야 합니다. 뷰를 사용하면 SQL 쿼리의 정의를 재사용할 수 있는 〈가상 테이블’에 저장할 수 있습니다.

이 강의의 목표: 쿼리를 뷰로 저장하기.

16.5.1. 뷰 생성

You can treat a view just like a table, but its data is sourced from a query. Let’s make a simple view based on the above:

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;

As you can see the only change is the create view roads_count_v as part at the beginning. We can now select data from that view:

select * from roads_count_v;

결과 :

 count |    name
-------+-------------
     1 | Main Road
     2 | High street
     1 | Low Street
(3 rows)

16.5.2. 뷰 수정

A view is not fixed, and it contains no 〈real data〉. This means you can easily change it without impacting on any data in your database:

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 키워드에 대문자 를 사용하는 모범적인 실행 관습을 보여주고 있습니다.)

You will see that we have added an ORDER BY clause so that our view rows are nicely sorted:

select * from roads_count_v;

 count |    name
-------+-------------
     2 | High street
     1 | Low Street
     1 | Main Road
(3 rows)

16.5.3. 뷰 삭제

If you no longer need a view, you can delete it like this:

drop view roads_count_v;

16.5.4. In Conclusion

뷰를 이용하면 쿼리를 저장하고, 그 쿼리가 마치 테이블인 것처럼 결과물에 접근할 수 있습니다.

16.5.5. What’s Next?

데이터 변경 시, 가끔 변경 사항이 데이터베이스의 다른 부분에 영향을 주기를 바랄 수도 있습니다. 다음 강의에서 그 방법을 배워보겠습니다.