SELECT (컬럼명), COUNT(*)
FROM (테이블명)
GROUP BY (컬럼명); // 그룹의 기준 컬럼
👉 select (컬럼명) 후에 ','를 꼭 붙여야 한다.
👉 count(*)는 count와 괄호 간의 띄어쓰기가 없이 붙여서 작성해야 한다.
// 그룹함수 활용 방법
SELECT user_id, SUM(컬럼명) FROM rental GROUP BY user_id;
// 컬럼의 내용을 다 더한 값을 출력
SELECT user_id, AVG(컬럼명) FROM rental GROUP BY user_id;
// 컬럼의 평균을 출력
SELECT user_id, MAX(컬럼명) FROM rental GROUP BY user_id;
// 컬럼명이 가장 큰 값을 출력
SELECT user_id, MIN(컬럼명) FROM rental GROUP BY user_id;
// 컬럼명이 가장 작은 값을 출력
SELECT (컬럼명), COUNT(*)
FROM (테이블명)
GROUP BY (컬럼명)
HAVING COUNT(컬럼명) > (숫자);
테이블하나를 크게 만드는 것은 용량이 크고, 관리도 어렵고, 분석하는 사람도 힘듦.-> 테이블의 기능이나 특징별로 나눠서 줄이는 편
우리나라 데이터 관련 법상 한 사람을 특정할 수 있는 모든 데이터를 한 테이블에 넣으면 안됨 -> 해킹을 당했을 경우 개인정보법 관련한 이슈 발생 위험
inner join
, left join
, right join
의 종류가 있다. SELECT (검색할 컬럼명)
FROM (테이블명1)
INNER JOIN (테이블명2);
// 테이블명1과 테이블명2를 연결(join)
SELECT (검색할 컬럼명)
FROM (테이블명1)
INNER JOIN (연결할 테이블2)
ON(조건추가) (연결할 테이블명2).(컬럼명) = (테이블명 1).(컬럼명);
// 테이블이름. 컬럼명으로 구분
열의 정의가 애매합니다
라는 에러가 발생한다.null
을 넣는다. 예를 들어 테이블1에서 a에 해당하는 값이 있지만, 테이블 2에는 a에 해당하는 값이 없을 때 null을 넣는 것이다. null
은 어차피 데이터가 없는 것인데 필요할까?
라고 생각할 수도 있지만 실무에서는 유의미
할 때도 있다. 그래서 left join을 사용한다. // 기본 문법은 INNER JOIN, RIGHT JOIN과 동일
SELECT (검색할 컬럼명)
FROM (테이블1)
LEFT JOIN (연결할 테이블)
ON (테이블1).(컬럼명) = (연결할 테이블).(컬럼명);
SELECT *
FROM (테이블1)
RIGHT JOIN (연결할 테이블)
ON (테이블1).(컬럼명) = (테이블2).(컬럼명);
✨ 데이터 그룹 짓기 : GROUP BY
✨ 데이터 그룹 짓기 + 조건 추가하기 : having
✨ 두 개의 테이블 조회하기 : inner join, left join, right join
✨ 두 개의 테이블 조회하기 + 조건 추가하기 : on