🥑 학습 내용
- SQL 기초
데이터 베이스(database) : 여러 테이블을 포함하는 큰 틀
테이블(table) : 데이터가 행과 열로 구성된 구조로 저장되는 곳
- 기본 명령어
SELECT, FROMㅣ 테이블에서 데이터를 조회 할 때FROM
SELECT 컬럼1, 컬럼2, ...
FROM 테이블이름;
WHERE ㅣ 특정 조건에 맞는 데이터만 조회
ORDER BY ㅣ 조회한 데이터를 정렬
GROUP BY ㅣ 범주별 연산 (카테고리화)
LIMIT l 조회할 데이터 개수 제한
- 조건문
AND ㅣ 두 조건이 모두 참일 때 사용
OR ㅣ 두 조건 중 하나만 참이면 사용
NOT ㅣ 조건이 거짓일 때 사용
- 집계 함수
COUNT() ㅣ 행의 개수를 셈
SUM() ㅣ 숫자 값의 합 계산
AVG() ㅣ 숫자 값의 평균 계산
MAX() ㅣ 최대 값 계산
MIN() ㅣ 최소 값 계산
- 날짜, 시간 계산 함수
CURDATE() ㅣ 현재 날짜를 반환
CURTIME() ㅣ 현재 시간을 반환한
NOW() ㅣ 현재 날짜와 시간 정보를 반환
오늘 날짜가 CURDATE()라면 어제 날짜로 검색하고 싶은 경우 SUBDATE(date, days) 함수를 사용
DATEDIFF ㅣ 두 기간 사이의 일수 계산
- - expr1 - expr2( expr1 : 종료일, expr2 : 시작일 )
- 날짜 포맷에 시간이 포함되어 있는 경우, 시간은 계산에 포함X
- 날짜 범위에서 벗어나는 값을 입력하는 경우 NULL을 반환
DATEDIFF(expr1, expr2)
SELECT DATEDIFF('2021-12-31','2021-01-02');
>> 345
DATE_SUB l 날짜와 시간을 빼는 함수
주로 DATE_SUB를 가장 많이 사용하고 일단위로 계산은 SUBDATE, 초단위 계산은 SUBTIME을 사용할 수도 있음
-- 원하는 단위만큼 빼기
DATE_SUB(date, INTERVAL value addunit)
SUBDATE(date, INTERVAL value addunit)
-- 일단위, 초단위
SUBDATE(date, adddays)
SUBTIME(date, addtime)
- JOIN 함수
데이터가 있는 테이블이 다를 때 각 테이블에서 정보를 가져올 수 있다.
LEFT JOIN ㅣ 공통컬럼을 기준으로 하나의 테이블에 값이 없더라도 모두 조회
INNER JOIN ㅣ 공통컬럼을 기준으로 테이블 모두에 있는 값만 조회
-- LEFT JOIN
select 조회 할 컬럼
from 테이블1 a left join 테이블2 b on a.공통컬럼명=b.공통컬럼명
-- INNER JOIN
select 조회 할 컬럼
from 테이블1 a inner join 테이블2 b on a.공통컬럼명=b.공통컬럼명
- 그 외
1. DISTINCT ㅣ 중복제거
2. NULL l 값이 없다는 의미(*0이나 공백인 필드와는 다름)
- IS NULL ㅣ 비어있는 값을 찾을 때
- IS NOT NULL ㅣ 비어있지 않은 값을 찾을 때
3. 순위 함수 RANK() ㅣ결과 집합의 파티션 내에서 각 행의 순서를 할당하는 윈도우 함수
- 동일한 값을 갖는 파티션 내의 각 행은 동일한 순위를 받는다.
- 파티션 내에서 첫 번째 순위는 1부터 시작한다.
- 같은 순위에 연결된 행의 수를 더하여 다음 행의 순위를 계산한다.
RANK() OVER (
[PARTITION BY partition_expression, ... ]
ORDER BY sort_expression [ASC | DESC], ...
)
PARTITION BY와 ORDER BY
파티션 내의 랭킹 순위를 할당하는 함수인만큼 ORDER BY는 필수이며, PARTITION BY는 옵션
- PARTITION BY 절은 함수가 적용되는 파티션을 나눈다. 무시할 경우 조회 결과의 모든 행을 한 파티션으로 취급한다.
- ORDER BY 절은 함수가 적용되는 각 파티션에 있는 행의 논리적인 정렬 순서(순위)를 결정한다.
4. 하드코딩 l 하드코딩되었다는 것은 상수나 변수에 들어가는 값(데이터)을 코드에 직접 입력해 프로그램이 동작할 때를 말한다.
🥑 회고
강의에서 배운 내용도 있고 스스로 찾아서 더 학습해야되는 부분도 있었다. 50개의 간단한 문제를 통해서 들었던 '엑셀보다 쉽고 빠른 SQL' 강의 내용을 다시 복기하고 복습할 수 있어서 좋은 경험이었다. 자주 쓰지 않으면 까먹기 때문에 자주 사용하는 연습을 하라고 하셨는데 그게 맞는 것 같다😅 조금씩 학습시간을 늘리면서 복습 시간을 따로 가지면 좋을 것 같다.
'Data' 카테고리의 다른 글
[Mysql] SQL 문법연습 풀이 및 해석 (0) | 2024.09.12 |
---|---|
[아티클스터디] 데이터 분석가는 어떤 일을 하는가? 요약 정리 (3) | 2024.09.06 |
[Mysql] SQL 왕초보 문법연습 +업데이트 (5) | 2024.09.05 |
[아티클 스터디] 데이터 분석이란 무엇일까? 주제 목차 (10) | 2024.09.04 |
[Mysql] SQL 문법 연습 풀이/order by, group by +업데이트 (3) | 2024.09.04 |