본문 바로가기
Data

[Mysql] SQL 문법연습 사용된 명령어/문법/함수 총정리

by Dora the explorer 2024. 9. 6.
반응형

🥑 학습 내용

 

- 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'  강의 내용을 다시 복기하고 복습할 수 있어서 좋은 경험이었다. 자주 쓰지 않으면 까먹기 때문에 자주 사용하는 연습을 하라고 하셨는데 그게 맞는 것 같다😅 조금씩 학습시간을 늘리면서 복습 시간을 따로 가지면 좋을 것 같다.

반응형