SQL JOIN 실습 - 테이블 분리

테이블 분리

 - 데이터의 중복을 피하고 효율적인 데이터 관리를 위해 1개의 테이블은 부족

 - 성격이 비슷한 정보끼리 따로 떼어 새로운 테이블로 만들어 관리

    → 정보간의 의존도가 줄어들어 좀 더 효율적으로 데이터를 관리할 수 있음

 

다음과 같이 3개의 테이블이 있음

테이블을 이용하여 다음 문제를 풀어보자

 

1. 손흥민의 주문 개수는?

SELECT COUNT(*)
FROM t_order
INNER JOIN t_user
ON t_order.userNo = t_user.id
WHERE t_user.userName = '손흥민';

 

2. 손흥민이 산 상품은?

SELECT p.pname, COUNT(*)
FROM t_order AS o
INNER JOIN t_user AS u
ON o.userNo = u.id
INNER JOIN t_product AS p
ON o.productNo = p.id
WHERE u.userName = '손흥민'
GROUP BY u.id, p.id;

 

3. 스커트를 산 사람은?

SELECT DISTINCT userName
FROM t_order AS o
INNER JOIN t_user AS u
ON o.userNo = u.id
INNER JOIN t_product AS p
ON o.productNo = p.id
WHERE p.pname = '스커트';

 

4. 가장 많이 주문한 사람의 아이디와 이름, 주문개수는?

SELECT userId, userName, COUNT(*) AS cnt
FROM t_order AS o
INNER JOIN t_user AS u
ON o.userNo = u.id
INNER JOIN t_product AS p
ON o.productNo = p.id
GROUP BY u.id
ORDER BY cnt DESC;

 

5. 소지섭이 사용한 총 금액은?

SELECT *
FROM t_order AS o
INNER JOIN t_user AS u
ON o.userNo = u.id
INNER JOIN t_product AS p
ON o.productNo = p.id
WHERE u.userName = '소지섭';

'Back-End Study > DBMS' 카테고리의 다른 글

셀프 조인, 서브 쿼리 실습  (0) 2022.08.29
SELF JOIN 과 서브 쿼리  (0) 2022.08.29
SQL JOIN  (0) 2022.08.26
SQL 활용3  (0) 2022.08.25
SQL 활용2  (0) 2022.08.23