SQL
MySQL 내장함수
딩관
2022. 5. 11. 21:11
대표적인 내장 함수의 종류
- 문자열 함수
- 수학 함수
- 날짜와 시간 함수
문자열 함수
LENGTH()
- 전달받은 문자열의 길이를 반환
CONCAT()
- 전달받은 문자열을 모두 결합하여 하나의 문자열로 반환 (컴마로 구분해준다)
- 전달받은 문자열 중 하나라도 NULL이 존재하면 NULL로 반환
CONCAT('문자열','문자열');
LOCATE()
- 문자열 내에서 찾는 문자열이 처음으로 나타나는 위치를 찾아서 해당 위치를 반환
- 찾는 문자열이 문자열에 존재하지 않으면 0을반환
- MySQL에서는 문자열의 시작인덱스를 1부터 계산
LOCATE('찾을문자열' , '대상문자열')
LEFT() , RIGHT()
- LEFT() : 문자열의 왼쪽부터 지정한 개수만큼의 문자를 반환
- RIGHT() : 문자열의 오른쪽부터 지정한 개수만큼의 문자를 반환
LEFT('문자열' , 3)
해당 문자열의 왼쪽에서 3개만큼 반환
LOWER() , UPPER()
- LOWER() : 문자열의 문자를 모두 소문자로 변경
- UPPER() : 문자열의 문자를 모두 대문자로 변경
REPLACE()
- 문자열에서 특정 문자열을 대체 문자열로 교체
REPLACE('기준문자열' , '교체하고싶은 문자열' , '교체할 문자열');
TRIM()
- 문자열의 앞이나 뒤 또는 양쪽 모두에 있는 특정문자를 제거
- BOTH : 전달받은 문자열의 양 끝에 존재하는 특정 문자를 제거(기본 설정)
- LEADING : 전달받은 문자열 앞에 존재하는 특정 문자를 제거
- TRAILING : 전달받은 문자열 뒤에 존재하는 특정 문자를 제거
- 지정자를 명시하지 않으면 자동으로 BOTH로 설정
- 제거할 문자를 명시하지 않으면 자동으로 공백을 제거
TRIM(지정자 '제거할 문자열' FROM '기준문자열')
기준문자열에서 지정자가 지정한 구간에 있는 '제거할문자열' 을 제거해줘
수학 함수
FORMAT()
- 숫자 타입의 데이터를 세 자리마다 쉼표를 사용하는 형식으로 변환
- 반환되는 데이터의 형식은 문자열 타입
- 두번째 인수는 반올림할 소수 부분의 자릿수 (소숫점이하 자릿수)
사용하기
FORMAT(123123123123.123123 , 3);
결과
'123,123,123,123.123'
FLOOR() , CEIL() , ROUNT()
- FLOOR() : 내림
- CEIL() : 올림
- ROUND() : 반올림
SQRT() , POW() , EXP() , LOG()
- SQRT() : 양의 제곱근
- POW() : 거듭제곱연산 POW(밑수 , 지수)
- EXP() : 인수로 지수를 전달받아 , e의 거듭제곱을 계산
- LOG() : 자연로그 값을 계산
SIN() , COS() , TAN()
- SIN() : 사인값 반환
- COS() : 코사인값 반환
- TAN() : 탄젠트값 반환
ABS() , RAND()
- ABS(X) : 절대값을 반환
- RAND() : 0.0보다 크거나 같고 1.0보다 작은 하나의 실수를 무작위 생성
날짜와 시간 함수
NOW() , CURDATE() , CURTIME()
- NOW() : 현재 날짜와 시간을 반환 'YYYY-MM-DD HH:MM:SS' or YYYYMMDDHHMMSS 형태로 반환
- CURDATE() : 현재 날짜를 반환 'YYYY-MM-DD' or YYYYMMDD 형태로 반환
- CURTIME() : 현재 시각을 반환 'HH:MM:SS' or HHMMSS 형태로 반환
DATE() , MONTH() , DAY() , HOUR() , MINUTE() , SECOND()
- DATE() : 전달받은 값에 해당하는 잘짜 정보를 반환
- MONTH() : 월에 해당하는 값을 반환 (0~12 사이의 값을 가짐)
- DAY() : 일에 해당하는 값을 반환 (0~31 사이의 값을 가짐)
- HOUR() : 시간에 해당하는 값을 반환 (0~23 사이의 값을 가짐)
- MINUTE() : 분에 해당하는 값을 반환 (0~59사이의 값을 가짐)
- SECOND() : 초에 해당하는 값을 반환 (0~59사이의 값을 가짐)
MONTHNAME() , DAYNAME()
- MONTHNAME() : 월에 해당하는 이름을 반환
- DAYNAME() : 요일에 해당하는 이름을 반환
DAYOFWEEK() , DAYOFMONTH() , DAYOFYEAR()
- DAYOFWEEK() : 일자가 해당 주에 몇번째 날인지를 반환 (일요일 = 1 , 토요일 = 7)
- DAYOFMONTH() : 일자가 해당 월에서 몇번째 날인지를 반환 (0~31 값을 반환)
- DAYOFYEAR() : 일자가 해당 연도에서 몇번째 날인지를 반환 (1~366 사이의 값을 반환)
DATE_FORMAT()
- 전달받은 형식에 맞춰 날짜와 시간정보를 문자열로 반환
- https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html
MySQL :: MySQL 8.0 Reference Manual :: 12.7 Date and Time Functions
12.7 Date and Time Functions This section describes the functions that can be used to manipulate temporal values. See Section 11.2, “Date and Time Data Types”, for a description of the range of values each date and time type has and the valid formats
dev.mysql.com