프로그래머스 고득점 키트 돌리면서 익혔던 문법들 정리
is null과 is not null
다른 비교의 경우 =를 사용하여 비교하지만,
null과 비교할 때는 is를 사용해 비교한다.
alias
칼럼명 as c1
으로 alias를 줄 수 있다. as는 생략이 가능하다. 또한 select에서 alias를 사용하면 출력에서 alias로 칼럼명이 나온다.
Date
Date 타입의 경우 여러 가지 관련 함수가 존재한다.
format을 지정해주지 않으면 기본적으로 다음과 같은 형식으로 출력된다.
2024-03-19 01:29:56 (yyyy-MM-dd hh:mm:ss)
Date 함수
함수명 | 역할 |
---|---|
year() | 년도만 반환함 |
month() | 월만 반환함 |
day() | 일만 반환함 |
month와 day에서 첫글자 0이면 떼고 반환함
SQL date_format 기호
기호 | 역할 | 기호 | 역할 |
---|---|---|---|
%Y | 4자리 년도 | %y | 2자리 년도 |
%M | 영문 긴 월 | %b | 영문 짧은 월 |
%m | 숫자 월(두자리) | %c | 숫자 월(한자리 달 한자리) |
%d | 숫자 일(두자리) | %e | 숫자 일(한자리 일 한자리) |
%W | 영문 긴 요일명 | %a | 영문 짧은 요일명 |
%l | 시(12h) | %H | 시(24h) |
%i | 분 | %S | 초 |
%T | hh:mm:ss(24h) | %r | hh:mm:ss AM/PM(12h) |
date_format 함수
date_format(date, '%Y-%m-%d')
1번째 매개변수에는 날짜를, 두번째에는 위 기호를 사용한 형식을 string으로 지정해준다. 그러면 해당 형식에 맞게 출력된다.
order by
order by c1
특정 칼럼에 대한 정렬
asc는 오름차 desc는 내림차(asc는 default이므로 생략 가능)
여러 조건에 대해서 정렬을 하고 싶으면 콤마로 칼럼을 구분하면 된다.
대신 우선순위가 높은 정렬부터 왼쪽에 기재한다.
order by c1, c2, ...
group by
group by c
특정 조건을 가진 행들을 하나의 그룹으로 묶는다.
having
group by c having cnt(c) > 2;
group by에 대한 조건을 달 때 사용한다.(반드시 group by와 함께 사용됨. 단독 사용은 안됨)
조건 예시 - 집계함수, like문
Aggregation Function
집계함수는 조건에 맞는 여러 행에 대해서 하나의 출력을 만들어낸다.
함수명 | 역할 |
---|---|
count() | 지정된 열에서 같은 열 값을 가지는 행들의 갯수합 |
min() | 지정된 열에서 같은 열 값을 가지는 행들의 최소 value |
max() | 지정된 열에서 같은 열 값을 가지는 행들의 최대 value |
avg() | 지정된 열에서 같은 열 값을 가지는 행들의 평균값 |
sum() | 지정된 열에서 같은 열 값을 가지는 행들의 value합 |
avg, sum의 경우 null인 행은 default 0으로 바꿔서 계산한다.
round, ceiling, floor
반올림, 올림, 내림 함수이다.
limit
limit n
갯수 제한을 할 때 사용한다.
order by와 함께 사용하여 상위 n개, 하위 n개와 같은 행을 뽑아낼 수 있다.
전처리 값 지정
select문에서 특정 칼럼에 대한 값을 일괄적으로 지정할 수 있음
select NULL c
칼럼 c의 모든 값이 null로 들어감
select IFNULL(c, 'NONE')
칼럼 c에서 어떤 행이 NULL이면 그 행은 NONE으로 값 지정해줌.
'DB' 카테고리의 다른 글
전체 데이터 삭제 DELETE vs TRUNCATE (0) | 2024.08.25 |
---|---|
문자열 인덱스, like문 주의사항 (0) | 2024.08.25 |
DB 개념 6편 - ER 모델 (0) | 2024.08.25 |
DB 개념 5편 - View와 MView의 차이 (0) | 2024.08.25 |
DB 개념 4편 - SQL과 DB 사용자의 분류 (0) | 2024.08.22 |