day7 는
데이터 합치기
기준으로 테이블 합치기
한쪽을 기준으로 테이블 합치기
다양한 방식으로 테이블 합치기
의 항목들을 데이터 합치기라는 주제로 교육을 마저 진행하였다.
오늘 배운 교육을 바탕으로 실습을 진행해 보겠다.
오늘은 데이터를 그룹화해서 통계를 내 볼 것이다.
주어지는 테이블은 이 테이블을 참고 할 것이다.

실습1
포켓몬 테이블과 능력치 테이블을 합쳐서 포켓몬 이름, 공격력, 방어력을 한번에 가져와 주세요. 이 때, 포켓몬 테이블에 있는 모든 포켓몬의 데이터를 가져와 주세요. 만약, 포켓몬의 능력치 데이터를 구할 수 없다면, NULL을 가져와도 좋습니다
mypokemon컬럼에 있는 name이 사용되니 그 방향대로 left join을 사용한다.
기본적 left join 문법은
SELECT [컬럼 이름]
FROM [테이블 A 이름]
LEFT JOIN [테이블 B 이름]
ON [테이블 A 이름].[컬럼 A 이름] = [테이블 B 이름].[컬럼 B 이름]
WHERE 조건식;
이다
on 절에서 같은 이름의 컬럼을 사용하여 묶는다.


실습2
포켓몬 테이블과 능력치 테이블을 합쳐서 포켓몬 번호와 이름을 한번에 가져와 주세요. 이 때, 능력치 테이블에 있는 모든 포켓몬의 데이터를 가져와 주세요. 만약, 포켓몬의 이름 데이터를 구할 수 없다면, NULL을 가져와도 좋습니다.
이번에도 실습1 과 같이 ability에 있는 넘버가 필요하므로 그 방향대로 right조인을 실시한다.
하지만 select 절에서 어떤 테이블의 number을 사용하는지 구별하기 위해서 앞에 테이블명을 쓰고
on절에서 같은 이름의 컬럼으로 묶는다.


실습3
내 포켓몬의 타입 별 키의 평균과 몸무게의 평균을 함께 가져와 주세요
group by를 사용하여 type기준으로 실습2와 같은 실습을 진행했다.


실습4
번호가 100 이상인 내 포켓몬들의 번호, 이름, 공격력, 방어력을 가져와 주세요
위의 실습들과 거의 동일하지만
where절을 이용하여 조건을 추가하였다.


실습5
공격력과 방어력의 합이 큰 순서대로 내 포켓몬들의 이름을 나열해 주세요
위의 실습들과 거의 동일하지만
order by절을 이용하여 순서를 나열하였다.


실습6
속도가 가장 빠른 내 포켓몬의 이름을 가져와 주세요
실습5와 거의 유사하지만
가장 빠른 1개의 행만 가져와야 하기 때문에
limit 를 이용하여 행수를 제한하였다.


'SQL > 교육,실습' 카테고리의 다른 글
| SQL데이터 분석 첫걸음 실습 (서브 쿼리) (0) | 2023.04.25 |
|---|---|
| SQL데이터 분석 첫걸음 실습 (UNION, UNION ALL) (0) | 2023.04.24 |
| SQL데이터 분석 첫걸음 실습 (IF, CASE, 함수 만들기) (0) | 2023.04.22 |
| SQL데이터 분석 첫걸음 실습 (GROUP BY, HAVING) (0) | 2023.04.21 |
| SQL데이터 분석 첫걸음 실습 (ORDER BY, RANK() OVER, 각종 함수) (0) | 2023.04.20 |