[MYSQL] 왕초보가 정리한 기본 문법 구조 이해하기! (group by, order by)
서론
오늘은 스파르타 코딩클럽 데이터분석 과정에서 제공받은 SQL강의 2주차를 공부했다.
강사님 설명 너무 야무지셔서 나름 재밌게 공부하고 있다. 파이썬은 약간 헷갈리고 복잡한데 상대적으로 SQL은 아직은 조금 심플하다는 느낌이 들었다. 어제는 한두가지의 정보만 확인하는 초 간단 문법과 구조를 배웠다면 오늘은 조금 더 세부적으로, 여러가지 자료들을 깔끔하게 정리하는 문법을 배웠다.
본론
*SQL의 가장 기본 구조*
select : '데이터 조회' 의 명령어로 필수 구문
from : '어디에서 데이터를 조회할까' 의 명령어로 필수 구문
where : 조건을 지정해주는 구문 (필터링 역할)
*조건 지정하는 방법*
- 비교연산자 : <, >, =, <>
- 다양한 구문 : IN, BETWEEN, LIKE
- 여러가지 조건의 적용 : AND, OR, NOT
0. 기본 연산을 통한 컬럼 정리 (기본 연산: + , -, *, /)
예시) 원하는 기본 연산과 결과값을 보기 편하게 확인이 가능하도록 as 뒤에 별명을 지어준다.
select 컬럼1,
컬럼2
컬럼 1 + 컬럼2 as 별명
from 테이블명
1. 컬럼의 합계(SUM) 와 평균(AVG)
예시) 결과값을 보기 편하게 확인이 가능하도록 as 뒤에 별명을 지어준다.
select sum(컬럼1) as 별명,
avg(컬럼2) as 별명
from 테이블명
2. 컬럼의 데이터의 갯수 구하기 COUNT
- count(*) or count(1) 은 같은 의미
- Distinct : 몇개의 값인지 구해야 할 때
예시) 전체 값 중에 컬럼1의 갯수를 구하고, 또 다른 컬럼 내에 몇개의 값이 있는지 확인 할 때
결과값을 보기 편하게 확인이 가능하도록 as 뒤에 별명을 지어준다.
select count(1) 컬럼1,
count(distinct 컬럼2)as별명
from 테이블명
3. 컬럼의 최솟값(MIN), 최댓값(MAX) 구하기
예시) 결과값을 보기 편하게 확인이 가능하도록 as 뒤에 별명을 지어준다.
select min(컬럼1) as 별명 (별명예시 'min_000'),
max(컬럼1)as별명 (별명예시 'max_000')
from 테이블명
4. 범주 별로 연산 할때 사용하는 Group by
예시) select 에서 선택한 컬럼 내의 범주별로 정리하는 것이니, group by 뒤에도 똑같이 해당 컬럼을 적어준다.
select 컬럼1,
sum(계산 컬럼) as별명,
from 테이블명
group by 컬럼1
5. 범주 별로 연산 할때 사용하는 Order by (오름차순, 내림차순 정렬)
- 오름차순 : 생략
- 내림차순 : desc
예시) select 에서 선택한 컬럼 내의 범주별로 정리하는 것이니, group by 뒤에도 똑같이 해당 컬럼을 적어준다.
select 컬럼1,
sum(계산 컬럼)as별명,
from테이블명
group by컬럼1
order by 컬럼1 혹은 sum(계산 컬럼) 둘 다 가능 desc
결론
오늘은 한 단계 나아가서 조금 새로운 것들 배웠는데 정리하면서 보니 강의 들은지 얼마 되자않았지만 벌써 기억 안나는 것들도 좀 있다.. 계속 반복하면서 자연스럽게 익히는게 답인것 같다. 본 과정이 시작하려면 얼마 남지 않았는데 스스로 공부하는 습관 잘 키워봐야겠다. 화이팅!