1-4주차 동안 배운 문법을 총정리해보았다.
복습차원에서 그리고 나중에 다시 한번 살펴보는 용도로 기록한다.
(아래 내용은 기본적으로 스파르타 코딩클럽의 강의자료에서 가져온 것이며, 부분적으로 가공했다.)
=========
1주차
- 데이터베이스란? 여러 사람들이 같이 사용할 목적으로 데이터를 담는 통
ㄴ 여기서 의외로 중요한 게 '여러 사람들이 같이 사용할' 인 것 같다.
ㄴ 왜냐하면, 나만 사용하는 목적이라면 굳이 'SQL'과 같은 언어를 배우지 않아도 되기 때문.
ㄴ 즉, 여러 사람들과 사용하는 데이터이기 때문에 'SQL'이 필요한 것이라고 이해했다. = SQL이 필요한 이유 - Select 쿼리문이란?
ㄴ 먼저 쿼리(Query)문이란 질의를 의미한다. = 데이터베이스에 명령을 내리는 것
ㄴ Select 쿼리문은, 데이터베이스에서 '데이터를 선택해서 가져오겠다'는 의미이다.
ㄴ Select 쿼리문은 1) 어떤 테이블에서 2) 어떤 필드의 데이터를 가져올지 로 구성된다. - Where 절이란?
ㄴ Where 절은, Select 쿼리문으로 가져올 데이터에 조건을 걸어주는 것이다. - Where 절과 자주 같이 쓰는 문법
ㄴ '같지 않음' 조건 : !=
ㄴ ! (느낌표)는 부정 (not)을 의미한다.
ㄴ '범위' 조건 : between
ㄴ '포함' 조건 : in
ㄴ '패턴' 조건 : like '%' - 이외 유용한 문법
ㄴ 일부 데이터만 가져오기 : Limit
ㄴ 중복 데이터는 제외하고 가져오기 : Distinct
ㄴ 몇 개인지 숫자 세보기 : Count
꼭 기억할 것 !
에러 메시지가 나오면, 최소 5-10분 정도는 혼자서 왜 에러가 발생했는지 고민해보는 시간을 가져보자.
2주차
- Group by 란?
ㄴ 동일한 범주를 갖는 데이터를 하나로 묶어서, 범주별 통계를 내주는 것이다. - Group by 의 기능
ㄴ 동일한 범주의 갯수 구하기 : count(*)
ㄴ 동일한 범주의 최솟값 구하기 : min(필드명)
ㄴ 동일한 범주의 최댓값 구하기 : max(필드명)
ㄴ 동일한 범주 특정 필드의 평균값 구하기 : avg(필드명)
ㄴ 동일한 범주 특정 필드의 합계 구하기 : sum(필드명) - Order by 란?
ㄴ 데이터를 정렬해주는 것이다.
ㄴ 기본적으로 order by 의 정렬방식은 오름차순이다.
ㄴ 내림차순으로 정렬할 때에는 desc 를 order by 뒤에 붙인다.
꼭 기억할 것!
group by 는 ~별로 묶어야 할 때 쓴다.
group by 기능 중 가장 자주 쓰는 것은 갯수를 구하는 count(*)이다.
3주차
- Join 이란?
ㄴ 두 테이블의 공통된 정보 (key값)를 기준으로 테이블을 연결해서 한 테이블처럼 보는 것이다.
ㄴ SQL 에서 Join 은 두 집합 사이의 관계와 같다. - Left Join 이란?
ㄴ 여기서 A와 B는 각각의 테이블을 의미한다.
ㄴ A와 B를 Join 했을 때, A에 B를 붙이는 게 Left Join 이다. - Inner Join 이란?
ㄴ 여기서 A와 B는 각각의 테이블을 의미한다.
ㄴ A와 B를 Join 했을 때, A와 B의 교집합이 Inner Join 이다. - Union 이란?
ㄴ Select 를 두 번하지 않고 한번에 모아서 보고 싶은 경우에 사용한다.
ㄴ 대신 한번에 모아서 보고 싶은 필드명이 같아야 한다.
꼭 기억할 것!
Inner Join은 교집합이라 상관없지만, Left Join은 어디에 뭐를 붙일건지, 순서가 중요하다.
Left Join으로 붙였을 때 NULL 값은 count 로 세어지지 않는다.
4주차
- Subquery 란?
ㄴ 하나의 SQL 쿼리 안에 또다른 SQL 쿼리가 있는 것을 말한다.
ㄴ Subquery는 where, select, from 절에서 사용되며 특히 from절에서 많이 사용된다.
ㄴ 실행되는 순서 : 안에 있는 Subquery가 먼저 실행되고 이것을 테이블처럼 여기고 밖의 Select가 실행된다. - Where + Subquery
ㄴ Where은 조건문이다.
ㄴ Subquery의 결과를 조건에 활용하는 방식으로 사용한다.
ㄴ where 필드명 in (subquery) 와 같이 쓴다. - Select + Subquery
ㄴ Select는 결과를 출력해주는 부분이다.
ㄴ 기존 테이블에 함께 보고싶은 통계 데이터를 손쉽게 붙일 수 있다.
ㄴ select 필드명, 필드명, (subquery) from .. 와 같이 쓴다. - From + Subquery (가장 자주 사용!)
ㄴ Select와 이미 있는 테이블을 Join하고 싶을 때 사용한다. - With 절이란?
ㄴ Subquery가 여러 개 붙을 경우 쿼리문을 보기 쉽게 정리해준다.
ㄴ ex. - SUBSTRING_INDEX 이란?
ㄴ 문자열 쪼개기
ㄴ ex. 이메일 주소에서 @앞의 아이디만 가져오거나, @뒤의 이메일 도메인을 가져오기 - SUBSTRING 이란?
ㄴ 문자열 일부만 출력하기
ㄴ ex. orders 테이블에서 created_at을 (시간을 제외한) 날짜까지만 출력하기 - Case 란?
ㄴ 특정 조건에 따라, 데이터를 구분해서 정리해줄 때 사용한다.
ㄴ ex.
꼭 기억할 것!
의외로 간단한 기본 문법으로도 문제해결이 가능할 수 있다.
결과를 얻기 위한 쿼리문에 단 한가지 정답만 있는 것은 아니다.
데이터베이스에 접근하여 지금까지 배운 내용을 꼭 실무에서도 활용해보자.
'[왕초보] 엑셀보다 쉬운, SQL' 카테고리의 다른 글
엑셀보다 쉬운 SQL 3주차 (0) | 2023.05.12 |
---|---|
엑셀보다 쉬운, SQL 2주차 (1) | 2023.05.12 |
엑셀보다 쉬운 SQL! 1주차 - 숙제 (0) | 2023.05.11 |