1-4주차 동안 배운 문법을 총정리해보았다.
복습차원에서 그리고 나중에 다시 한번 살펴보는 용도로 기록한다.
(아래 내용은 기본적으로 스파르타 코딩클럽의 강의자료에서 가져온 것이며, 부분적으로 가공했다.)

=========

1주차

  1. 데이터베이스란? 여러 사람들이 같이 사용할 목적으로 데이터를 담는 통
    ㄴ 여기서 의외로 중요한 게 '여러 사람들이 같이 사용할' 인 것 같다.
    ㄴ 왜냐하면, 나만 사용하는 목적이라면 굳이 'SQL'과 같은 언어를 배우지 않아도 되기 때문.
    ㄴ 즉, 여러 사람들과 사용하는 데이터이기 때문에 'SQL'이 필요한 것이라고 이해했다. = SQL이 필요한 이유
  2. Select 쿼리문이란?
    ㄴ 먼저 쿼리(Query)문이란 질의를 의미한다. = 데이터베이스에 명령을 내리는 것
    ㄴ Select 쿼리문은, 데이터베이스에서 '데이터를 선택해서 가져오겠다'는 의미이다.
    ㄴ Select 쿼리문은 1) 어떤 테이블에서 2) 어떤 필드의 데이터를 가져올지 로 구성된다.
  3. Where 절이란?
    ㄴ Where 절은, Select 쿼리문으로 가져올 데이터에 조건을 걸어주는 것이다.
  4. Where 절과 자주 같이 쓰는 문법
    ㄴ '같지 않음' 조건 : !=
    ㄴ ! (느낌표)는 부정 (not)을 의미한다.
    ㄴ '범위' 조건 : between
    ㄴ '포함' 조건 : in
    ㄴ '패턴' 조건 : like '%'
  5. 이외 유용한 문법
    ㄴ 일부 데이터만 가져오기 : Limit
    ㄴ 중복 데이터는 제외하고 가져오기 : Distinct
    ㄴ 몇 개인지 숫자 세보기 : Count

꼭 기억할 것 !
에러 메시지가 나오면, 최소 5-10분 정도는 혼자서 왜 에러가 발생했는지 고민해보는 시간을 가져보자.

2주차

  1. Group by 란?
    ㄴ 동일한 범주를 갖는 데이터를 하나로 묶어서, 범주별 통계를 내주는 것이다.
  2. Group by 의 기능
    ㄴ 동일한 범주의 갯수 구하기 : count(*)
    ㄴ 동일한 범주의 최솟값 구하기 : min(필드명)
    ㄴ 동일한 범주의 최댓값 구하기 : max(필드명)
    ㄴ 동일한 범주 특정 필드의 평균값 구하기 : avg(필드명)
    ㄴ 동일한 범주 특정 필드의 합계 구하기 : sum(필드명)
  3. Order by 란?
    ㄴ 데이터를 정렬해주는 것이다.
    ㄴ 기본적으로 order by 의 정렬방식은 오름차순이다.
    ㄴ 내림차순으로 정렬할 때에는 desc 를 order by 뒤에 붙인다.

꼭 기억할 것!
group by 는 ~별로 묶어야 할 때 쓴다.
group by 기능 중 가장 자주 쓰는 것은 갯수를 구하는 count(*)이다.

3주차

  1. Join 이란?
    ㄴ 두 테이블의 공통된 정보 (key값)를 기준으로 테이블을 연결해서 한 테이블처럼 보는 것이다.
    ㄴ SQL 에서 Join 은 두 집합 사이의 관계와 같다.
  2. Left Join 이란?

    ㄴ 여기서 A와 B는 각각의 테이블을 의미한다.
    ㄴ A와 B를 Join 했을 때, A에 B를 붙이는 게 Left Join 이다.
  3. Inner Join 이란?

    ㄴ 여기서 A와 B는 각각의 테이블을 의미한다.
    ㄴ A와 B를 Join 했을 때, A와 B의 교집합이 Inner Join 이다.
  4. Union 이란?
    ㄴ Select 를 두 번하지 않고 한번에 모아서 보고 싶은 경우에 사용한다.
    ㄴ 대신 한번에 모아서 보고 싶은 필드명이 같아야 한다.

꼭 기억할 것!
Inner Join은 교집합이라 상관없지만, Left Join은 어디에 뭐를 붙일건지, 순서가 중요하다.
Left Join으로 붙였을 때 NULL 값은 count 로 세어지지 않는다.

4주차

  1. Subquery 란?
    ㄴ 하나의 SQL 쿼리 안에 또다른 SQL 쿼리가 있는 것을 말한다.
    ㄴ Subquery는 where, select, from 절에서 사용되며 특히 from절에서 많이 사용된다.
    ㄴ 실행되는 순서 : 안에 있는 Subquery가 먼저 실행되고 이것을 테이블처럼 여기고 밖의 Select가 실행된다.
  2. Where + Subquery
    ㄴ Where은 조건문이다.
    ㄴ Subquery의 결과를 조건에 활용하는 방식으로 사용한다.
    ㄴ where 필드명 in (subquery) 와 같이 쓴다.
  3. Select + Subquery
    ㄴ Select는 결과를 출력해주는 부분이다.
    ㄴ 기존 테이블에 함께 보고싶은 통계 데이터를 손쉽게 붙일 수 있다.
    ㄴ select 필드명, 필드명, (subquery) from .. 와 같이 쓴다.
  4. From + Subquery (가장 자주 사용!)
    ㄴ Select와 이미 있는 테이블을 Join하고 싶을 때 사용한다.
  5. With 절이란?
    ㄴ Subquery가 여러 개 붙을 경우 쿼리문을 보기 쉽게 정리해준다.
    ㄴ ex.
  6. SUBSTRING_INDEX 이란?
    ㄴ 문자열 쪼개기
    ㄴ ex. 이메일 주소에서 @앞의 아이디만 가져오거나, @뒤의 이메일 도메인을 가져오기
  7. SUBSTRING 이란?
    ㄴ 문자열 일부만 출력하기
    ㄴ ex. orders 테이블에서 created_at을 (시간을 제외한) 날짜까지만 출력하기
  8. Case 란?
    ㄴ 특정 조건에 따라, 데이터를 구분해서 정리해줄 때 사용한다.
    ㄴ ex.

꼭 기억할 것!
의외로 간단한 기본 문법으로도 문제해결이 가능할 수 있다.
결과를 얻기 위한 쿼리문에 단 한가지 정답만 있는 것은 아니다.
데이터베이스에 접근하여 지금까지 배운 내용을 꼭 실무에서도 활용해보자.