오늘의 학습 포인트
- SQL : 집계함수, 그룹화함수, 서브쿼리
- SQL 작성 시 주의사항
학습 포인트 정리
1. 집계함수
- COUNT, MAX, MIN, SUM, AVG
- 하나의 집계 함수만 사용 하는 것이 아닌, 여러개의 집계함수를 동시에 사용하여, 한 눈에 데이터셋을 확인 할 수 있음
[집계함수 개념]
COUNT : 테이블의 행 수 반환
MAX: 테이블의 열 최대값 반환
MIN: 테이블의 열 최소값 반환
SUM: 테이블의 열 합계 반환
AVG: 테이블의 열 평균 반환
2. 그룹화 함수
- GROUP BY : 특정컬럼을 기준으로 데이터를 요약해서 비교 하고 싶을 때 사용
- Having: Group By에 의한 결과를 필터링 할 때 사용
- WHERE절은 Group By 전 데이터를 기준으로 필터링
- HAVING절은 Group By 후 결과값을 기준으로 데이터를 필터링
select 기준컬럼, 집계함수(조건컬럼을 기준으로 여러개의 집계함수 동시사용 가능)
from 테이블명
where 조건
group by 기준컬럼
having 조건식;
2. 서브쿼리 (SUB QUERY)
1) 서브쿼리의 개념 및 정의
- 컬럼들을 활용한 많은 연산을 처리하는 경우, SUB QUERY 는 이를 순차적(구조적)으로 기록하는 역할 여러번의 SELECT~결과값을 보여주는 N번의 쿼리문을 서브쿼리문을 가지고 간편하게 정리!
- SUBQUERY의 실행순서 : 서브쿼리 실행(안쪽에 위치한 쿼리) → 메인쿼리(바깥쪽에 위치한 쿼리) 실행 (쿼리의 가장 안쪽부터, 바깥쪽 쿼리를 실행하며 최종 결과값을 반환)
2) 서브쿼리 종류
- 중첩(일반) 서브쿼리 : 서브쿼리의 결과에 따라 달라지는 조건 절
- 스칼라 서브쿼리 : SELECT 절에서 사용하며, 하나의 컬럼처럼 사용함.
(스칼라 서브쿼리 이용을 위해서는, 서로다른 테이블이 필요)
- 인라인뷰 : 가장 많이 사용하며 FROM 절에 사용. 하나의 테이블처럼 사용하며, AS 구문을 사용하여 명칭을 반드시 기재해야 함 (JOIN, UNION 함수에서도 많이 사용)
오늘의 회고
튜터님이 제공해주신 실습문제와 숙제를 풀면서 순서를 숙지 하는 것이 헷갈렸다. 보통 생각 나는 함수나 문법을 마구잡이로 잡아서 답을 맞추려 했지만, SQL 작성과정과 작동과정을 알게 되면서 순서를 바로 잡아 작성하는 습관을 길들이는게 보통 일은 아니라는 생각이 들었다. 생각해보니 생각나는 함수나 문법을 작성 했을 때, 내가 어떤 부분이 틀렸고, 어디서 에러가 발생 했는지 이해를 하지 못했었는데, 에러창이 뜰 때마다 내가 어떤 포인트가 틀렸는지 알게 되었다. 이번 숙제를 문제 풀고 코드카타 문제를 풀면서, 문제 풀이 순서와 내가 잘하고 잘못된 부분을 보완해서 실력을 키워야 겠다.