ROUND([칼럼명])
처럼 숫자타입의 칼럼 데이터에 함수로 산술표현 할 수 있다.
WHERE ABS(Quantity - 10) < 5;
와 같이 조건절 안에도 함수를 넣어 만족하는 데이터만 찾을 수 있다.
( Quantity 칼럼의 데이터들 중 10을 뺀 절대값이 5보다 작은 경우의 데이터들을 가지고 온다. )
ROUND( ) : 반올림
CEIL( ) : 올림
FLOOR( ) : 내림
ABS( ) : 절대값
여기서는 OrderDetailID , ProductID, Quantity 의 컬럼 데이터들을 비교하여 그 중 최대값과 최소값을 구했다.
GREATEST( ) : ( 괄호 안의 칼럼들의 데이터를 비교했을 때 ) 가장 큰 값
LEAST( ) : ( 괄호 안의 칼럼들의 데이터를 비교했을 때 ) 가장 작은 값
MAX( ) : ( 괄호 안 칼럼의 데이터들 중 ) 최대값
MIN( ) : ( 괄호 안 칼럼의 데이터들 중 ) 최대값
COUNT( ) : ( 괄호 안 칼럼의 데이터들의 ) 갯수 - 이때 NULL 값은 제외한다.
SUM( ) : ( 괄호 안 칼럼의 데이터들의 ) 총합
AVG( ) : ( 괄호 안 칼럼의 데이터들의 ) 평균 값
POW( A, B ) : A 를 B 만큼 제곱
POWER( A, B ) : A 를 B 만큼 제곱
SQRT( ) : ( 괄호 안 데이터의 ) 제곱근
숫자 1234.5678 의 소숫점 자리를 선택한다. 이때 음수면 실수 자리를 선택하여 나머지는 0으로 처리한다.
TRUNCATE( N, n ) : N을 소숫점 n자리까지 선택
UCASE( ) / UPPER( ) : 모두 대문자로
LCASE( ) / LOWER( ) : 모두 소문자로
CONCAT( ) : 괄호 안의 내용 이어붙인다. 이 때 숫자도 문자열로 변환된다.
CONCAT_WS( S, ... ) : 괄호 안의 내용들 사이사이 S로 이어붙인다.
LEFT( ) : 왼쪽부터 N 글자
여기서는 'ABCDEFG' 글자의 왼쪽에서부터 3개인 ABC를 보여준다.
RIGHT( ) : 오른쪽부터 N 글자
여기서는 'ABCDEFG' 글자의 오른쪽에서부터 3개인 EFG를 보여준다.
LENGTH( ) : 문자열의 바이트 길이
여기서 한글은 3byte 로 인식함.
CHAR_LENGTH( ) / CHARACTER_LEGNTH( ) : 문자열의 진짜 문자 길이
공백으로 인한 실수를 방지하는데 사용한다.
TRIM( ) : 양쪽 공백 제거
LTRIM( ) : 왼쪽 공백 제거
RTRIM( ) : 오른쪽 공백 제거
LPAD 로 SupplierID 의 앞에 5글자가 될 때까지 0을 붙여주었고
RPAD 로 Price 의 뒤에 6글자가 될 때까지 0을 붙여주었다.
LPAD( S, N, P ) : S가 N글자가 될 때까지 P를 앞에서 이어붙인다.
RPAD( S, N, P ) : S가 N글자가 될 때까지 P를 뒤에서 이어붙인다.
'맥도날드' 를 '버거킹' 으로 바꾸었다.
REPLACE( S, A, B ) : S중 A를 B로 변경
CustomerName의 띄어쓴 부분이 1~6글자 이내에 있는 것들의 데이터를 뽑아낸다. 즉, 이름의 첫 부분이 6글자 이내인 사람들의 데이터만 보여준다는 의미다.
이때 그냥 < 6 으로 하면 글자수에 상관 없이 띄어쓰기가 없는 이름도 포함이 되므로 주의해야 한다.
INSTR( S, s ) : S중 s의 첫 위치 반환, 없을 시 0
CAST( A AS T ) : A를 T 자료형으로 변환
예를 들어 CAST( '01' AS DECIMAL ) 을 사용하면 문자열을 숫자 자료형으로 바꿔준다
CONVERT( A, T ) : A를 T 자료형으로 변환
CURRENT_DATE( ) / CURDATE( ) : 현재 날짜 반환
CURRENT_TIME( ) / CURTIME( ) : 현재 시간 반환
CURRENT_TIMESTAMP( ) / NOW( ) : 현재 시간과 날짜 반환
DATE 는 날짜를 반환하고 TIME 은 시간을 반환한다.
그래서 DATE , TIME 비교시엔 날짜 = 시간 비교여서 false 가 나온다.
DATE( ) : 문자열에 따라 날짜 생성
TIME( ) : 문자열에 따라 시간 생성
YEAR( ) : 주어진 값의 년도 반환
MONTHNAME( ) : 주어진 값의 몇월인지 영문으로 반환
MONTH( ) : 주어진 값이 몇월인지 숫자로 반환
WEEKDAY( ) : 주어진 값의 요일값 반환 (월요일: 0)
DAYNAME( ) : 주어진 값의 요일명을 영문으로 반환
DAYOFMONTH( ) / DAY( ) : 주어진 값의 날짜(일) 반환
HOUR( ) : 주어진 값의 시 반환
MINUTE( ) : 주어진 값의 분 반환
SECOND( ) : 주어진 값의 초 반환
INTERVAL 구문이 들어간다.
가령 -2 MONTH 는 6월에서 2개월을 뺀다는 의미다.
ADDDATE( ) / DATE_ADD( ) : 시간/날짜 더하기
SUBDATE( ) / DATE_SUB( ) : 시간/날짜 빼기
DATE_DIFF( A, B ) : A, B 두 시간/날짜 간 일수차
TIME_DIFF( A, B ) : A, B 두 시간/날짜 간 시간차
LAST_DAY( ) : 주어진 값의 해당 달의 마지막 날짜
여기서 명령어는 DATE_FORMET 으로 지정한 형식으로 변환한 날짜/시간을 AM -> 오전으로 바꾸고 PM -> 오후로 바꾼다는 의미다.
DATE_FORMET( ) : 시간/날짜를 지정한 형식으로 반환
형식 :
STR_TO_DATE( S, F ) :S를 F형식으로 해석하여 시간/날짜 생성
좀 더 복잡한 구문은 CASE 절을 사용한다.
IFNULL( A, B ) : A가 NULL일 시 B 출력. 백업할 때 주로 사용.