October
4th,
2017
JOIN
JOIN 절은 두 개 이상의 테이블에있는 행을 결합하는 데 사용된다.
Orders 테이블과 Customer 테이블을 JOIN 해보자.
JOIN
JOIN 절은 두 개 이상의 테이블에있는 행을 결합하는 데 사용된다.
Orders 테이블과 Customer 테이블을 JOIN 해보자.
Orders 테이블
출처 - https://www.w3schools.com/sql/sql_join.asp
Customer 테이블
출처 - https://www.w3schools.com/sql/sql_join.asp
“Orders”테이블의 “CustomerID”열은 “Customer”테이블의 “CustomerID”를 나타낸다.
두 테이블에서 일치하는 값을 가진 레코드를 선택하여 다음 SQL문(INNER JOIN 포함)을 작성할 수 있다.
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
그럼 다음과 같은 결과를 얻을 수 있다.
출처 - https://www.w3schools.com/sql/sql_join.asp
JOIN의 여러가지 유형
- (INNER) JOIN : 두 테이블에서 값이 일치하는 레코드 반환
- LEFT (OUTER) JOIN : 왼쪽 테이블에서 모든 레코드를 반환하고 오른쪽 테이블에서 일치하는 레코드를 반환
- RIGHT (OUTER) JOIN : 오른쪽 테이블에서 모든 레코드를 반환하고 왼쪽 테이블에서 일치하는 레코드를 반환
- FULL (OUTER) JOIN : 왼쪽 또는 오른쪽 테이블에 일치하는 항목이 있으면 모든 레코드를 반환
출처 - https://www.w3schools.com/sql/sql_join.asp
UNION
UNION 연산자는 두 개 이상의 SELECT 문의 결과 집합을 결합하는 데 사용된다.
- UNION 내의 각 SELECT 문은 동일한 수의 열을 가져야한다.
- 열은 유사한 데이터 형식을 가져야한다.
- 각 SELECT 문의 열은 같은 순서로 있어야한다.
UNION 문법:
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
GROUP BY
GROUP BY 문은 집계 함수(COUNT, MAX, MIN, SUM, AVG)와 함께 사용되어 결과 집합을 하나 이상의 열로 그룹화한다.
GROUP BY 문법:
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);
Customer 테이블
출처 - https://www.w3schools.com/sql/sql_groupby.asp
각 국가의 고객 수를 나열해보자.
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country;
각 국가의 고객 수를 내림차순으로 정렬해보자.
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
ORDER BY COUNT(CustomerID) DESC;