문자열함수
limit
: limit 0,10 붙이면 1 부터 10번째 까지만
concat
: concat ( A, B) 연결
upper
, ucase
: 대문자로
lower
, lcase
: 소문자로
substring('문자열' , 시작index , 시작으로부터몇개인지)
:문자열 자르기
lpad
, rpad
: lpad(’내용’, 전체칸수, ‘나머지채울내용’) 왼쪽정렬 / rpad는 오른쪽 정렬
trim
, ltrim
, rtrim
: MySQL 문자열에 공백 또는 문자 제거
length
: 문자 길이 (공백 포함)
수학함수
abs
: 절댓값 반환
floor
: 소숫점 내림(버림)
ceil
: 소숫점 올림
mod(a,b)
: a%b 의 값. 나머지 반환
power(x,y)
: x의 y승
pow(x,y)
: x의 y제곱근
round(x)
, round(x,y)
: x에 가장 가까운 정수 (반올림) / x값 중에서 소수점 y자리에 가장 근접한 실수
greatest
, least
: 주어진 값들 중에서 최댓값 , 최솟값 반환
날짜함수
curdate()
, current_date
: 현재시간
now()
vs sysdate()
: 현재시간 시분초까지
now()의 경우 쿼리가 실행되는 그 순간을 기점으로 삼는다. 반면 sysdate()의 경우 함수가 실행되는 순간을 기점으로 삼는다.
date_format
:
%Y | 4자리 년도 | %m | 숫자 월 ( 두자리 ) |
---|---|---|---|
%y | 2자리 년도 | %c | 숫자 월(한자리는 한자리) |
%M | 긴 월(영문) | %d | 일자 (두자리) |
%b | 짧은 월(영문) | %e | 일자(한자리는 한자리) |
%W | 긴 요일 이름(영문) | %I | 시간 (12시간) |
%a | 짧은 요일 이름(영문) | %H | 시간(24시간) |
%i | 분 | %r | hh:mm:ss AM,PM |
%T | hh:mm:SS | %S | 초 |
period_diff(p1,p2)
:p1 - p2 만큼 개월 수 를 구함
date_add(adddate,더할날짜길이)
: 더할날짜만큼 날짜 더하기
date_sub(=subdate)
: 뺄날짜만큼 날짜 빼기
cast('내용' as 타입)
: type 변경
집계함수
avg
: 평균
max
, min
: 최댓값, 최솟값
count
: 갯수 반환
sum
: 합 반환
stddev
: 표준편차 반환
select절에 그룹함수(통계함수) 있는 경우, 어떤 컬럼도 select절에 올 수 없다 → 와도 의미가 없음
쿼리 순서
- from: 테이블에 접근
- where: 조건에 맞는 row를 선택
- projection: 집계(임시 테이블, 메모리 캐시)
- 결과를 반환: 출력
group by 한 컬럼은 select절에 올 수 있다.
Having 절
: 집계결과(결과 테이블) 에서 row를 선택해야 하는 경우 , 이미 where절은 실행 후 이기 때문에 having 절에서 조건을 줘야 한다.