2021-11-5 데이터베이스 첫걸음 (9주차)

뷰를 작성하고 복수 테이블에서 선택

  • 뷰를 작성할 때는 ‘CREATE VIEW’를 사용한다
CREATE VIEW citykyonggi as select id, name, population from city where
countrycode='KOR' and district='Kyonggi';

city테이블에서 경기도의 id name poulation 표시하는 (citykyonggi) 작성

select * from citykyonggi; //설렉트로 조회 가능
  • 서브쿼리
create view citykorea as select id, name district, population from city
where countrycode = 'KOR';
//한국의 도시만을 가진  생성

select count(*) from citykorea where population > (select avg(population) 
from citykorea);
//한국의 도시 중에서 인구가 평균 이상인 도시  세기

select district, name, population from citykorea as c1 where population > 
(select avg(population) from citykorea as c2 where c1.district = c2.district
grout by district);
// 행정구역 내에서 인구가 평균보다 많은 도시 표시
  • 결합(내부결합, 외부결합)

image

  • 위의 표는 한국어를 사용하는 국가를 조회한것이지만 국가코드로만 국가를 알아보기 힘들지만 국가코드로 국가명을 검색해서 조회
select countrylanguage.*, country.name from countrylanguage inner join country
on countrylanguage.countrycode = country.code where language = 'Korean';

image

뷰를 사용하는 이점

  • 테이블과 동일하지만 테이블과 같은 데이터는 가지고있지 않으며 테이블에 대한 SELECT를 가지고 있다
  • 복잡합 SELECT 문을 일일이 매번 기술할 필요가 없다
  • 필요한 열과 행만 사용자에게 보여줄 수 있다, 뷰를 제거해도 참조하는 테이블은 영향이 없다

조인

  • 2개의 태이블의 행을 결합
  • Inner Join
    • 행을 결합하기 위한 조건을 ON으로 지정한다. 내부결합에서는 지정한 조건에 일치하는 행만 가져온다
  • OUTER JOIN
    • 한 쪽 테이블 기준으로 천체 행을 표시하고 다른테이블은 값이 있으면 표시하고싶을 경우 자주 사용
    • SELECT 열 FROM 첫번째 테이블 LEFT OUTER JOIN 두번쨰 테이블 ON 결합조건;
    • 왼쪽테이블 전체 표시하고 일치하는값이 없으면 오른쪽엔 NULL
Written on November 5, 2021