표준 SQL 및 데이터베이스 입문
SELECT문으로 여러가지 작업을 할 수 있다는 것을 이해하게 되었습니다. 그런데 매번 작성하는 것은 정말 귀찮습니다. 그래서 자주 사용하는 조합이라면 뷰(view)를 만들어두면 편리합니다.
관계형 데이터베이스에서는 데이터를 저장하는 그릇으로서의 테이블 외에도 뷰(view)라는 가상 테이블을 생성할 수 있습니다. 뷰는 SELECT문에서 테이블과 동일하게 참조할 수 있습니다.
뷰(View)의 생성은 간단합니다. 'CREATE VIEW 뷰명 AS'를 SELECT문 앞에 붙이면 됩니다. 우선 SELECT문을 작성해 보고, 결과가 마음에 들면 이름을 붙여서 책갈피하듯이 사용하는 것입니다.
즉, 뷰 생성은 'CREATE VIEW 뷰명 AS SELECT'문으로 수행합니다. 앞에서 예제로 든 캠퍼스와 과목별로 인원수를 집계한 SELECT문을 '과목별 인원수 목록'이라는 뷰를 만드는 예제입니다.
생성한 뷰는 테이블과 마찬가지로 SELECT문으로 표시할 수 있습니다. 이번에 생성한 뷰는 참조전용 뷰이지만, 뷰의 구조에 따라 데이터의 추가 및 삭제, 변경도 가능합니다. 뷰에 대해서는 자세한 내용은 따로 다룹니다.
뷰 삭제는 DROP VIEW로 수행합니다. 데이터는 뷰는 일종의 '별칭이 붙은 SELECT문'에 불과하므로 실제 데이터에는 영향을 주지 않습니다.
즉 뷰를 삭제하려면 'DROP VIEW 뷰명;'으로 수행하며 앞서 생성한 '과목별인원수목록'을 삭제하라면 다음과 같이 합니다.
뷰를 삭제해도 실제 데이터에는 영향을 주지 않지만, '뷰를 사용한 뷰'가 존재할 경우, 다른 뷰에서 참조되고 있는 뷰를 삭제하면 이후 작업에서 오류가 발생할 수 있어 주의해야 합니다.
평소에 사용하고 싶었던 표가 있다면 View로 만들면 되는 것입니다. 또한 테이블과 똑같이 사용할 수 있고, 뷰와 뷰를 결합(JOIN)도 가능합니다. 단, 너무 과하게 사용하면 성능 저하가 있을 수 있어 뷰를 많이 결합시키는 경우에는 테이블에서 직접 같은 뷰를 만들 수 있는지를 고민해보는 것을 추천합니다. 대개의 경우 SELECT문 한줄로 충분히 만들 수 있기 때문입니다. 결론은 테이블 설계가 중요하다는 것입니다.
©2024-2025 GAEBAL AI, Hand-crafted & made with Damon JW Kim.
GAEBAL AI 개발사: https://gaebalai.com
AI 강의 및 개발, 컨설팅 문의: https://talk.naver.com/ct/w5umt5