MySQL 내장함수 정리

Minjae An·2024년 2월 16일
0

Database

목록 보기
3/5

LENGTH

SELECT LENGTH('AAAAA');

CONCAT

SELECT CONCAT('MY', 'SQL', '5.0');
  • 전달받은 문자열을 모두 결합하여 한 문자열로 반환
  • 하나라도 NULL이 존재하면 NULL 반환

LOCATE

SELECT LOCATE('ABC', 'ABCABCBAC');
  • 문자열 내에서 찾는 문자열이 처음 나타나는 위치를 찾아 위치 반환
  • 찾는 문자열 존재하지 않을 시 0 반환
  • MySQL에서는 문자열 시작 인덱스가 1임에 유의

LEFT, RIGHT

SELECT
LEFT('MYSQL IS DBMS FOR DEVS', 3), -- MYS, 왼쪽부터 개
RIGHT('MYSQL IS DBMS FOR DEVS', 3); -- EVS, 오른쪽부터 3개

정해진 방향에서 지정 개수만큼 문자열 반환

LOWER, UPPER

SELECT
LOWER('ABC'),
UPPER('abc');

영어 대소문자 변환시 사용

REPLACE

SELECT REPLACE('MSSQL', 'MS', 'My');

문자열 대체시 사용

TRIM

SELECT TRIM('        MySQL'),
	TRIM(LEADING '#' FROM '###MySQL###'), -- MySQL###
	TRIM(TRALING '#' FROM '###MySQL###'); -- ###MySQL
  • 문자열 앞/뒤 혹은 양쪽 모두에 있는 특정 문자 제거
  • 제거할 문자를 명시하지 않으면 기본으로 공백을 제거

FORMAT

SELECT FORMAT(123123123.123123123, 3);
  • 숫자 타입 데이터를 세 자리마다 쉼표로 구분하는 형식 문자열로 변환(1,000 꼴)
  • 반환 데이터 타입은 문자열
  • 두번째 인수는 반올림할 소수 부분의 자릿수

FLOOR, CEIL, ROUND

SELECT FLOOR(10.95), -- 내림
CEIL(10.95), -- 올림
ROUND(10.95); -- 반올림

SQRT, POW, EXP, LOG

SELECT SQRT(4), -- 양의 제곱근
POW(2,3), -- 제곱
EXP(3), -- 인수로 지수를 받아 e의 거듭제곱 계산
LOG(10) -- 자연로그 값을 계산

SIN, COS, TAN

SELECT SIN(PI()/2),
COS(PI()),
TAN(PI()/4); -- 삼각함수 계산

ABS, RAND

SELECT ABS(-3), -- 절댓값 반환
RAND(), -- 0.0~1.0의 난수값 반환
ROUND(RAND()*100, 0); -- 0~100의 범위

NOW, CURDATE, CURTIME

SELECT NOW(), -- 현재 날짜와 시간 반환, 'YYYY-MM-DD HH:MM:SS'
CURDATE(), -- 현재 날짜 반환, 'YYYY-MM-DD'
CURTIME(); -- 현재 시각 반환, 'HH:MM:SS'

DATE, MONTH, DAY, HOUR, MINUTE, SECOND

SELECT
DATE(NOW()),
MONTH(NOW()), -- 0~12의 월에 해당하는 값 반환
DAY(NOW()), -- 0~31의 일에 해당하는 값 반환
HOUR(NOW()), -- 0~23의 시간에 해당하는 값 반환
MINUTE(NOW()), -- 0~59의 분에 해당하는 값 반환
SECOND(NOW()); -- 0~59에 초에 해당하는 값 반환

MONTHNAME, DAYNAME

SELECT
MONTHNAME(NOW()), -- 월 이름
DAYNAME(NOW()); -- 요일 이름

DAYOFWEEK, DAYOFMONTH, DAYOFYEAR

SELECT
DAYOFMONTH(NOW()), -- 주간 기준 일 반환, 1~7의 값(일요일=1, 토요일=7)
DAYOFWEEK(NOW()), -- 0~31까지의 월에서의 일 값 반환
DAYOFYEAR(NOW()); -- 1~366의 연도에서 몇번째 날인지 반환

DATE_FORMAT

SELECT
DATE_FORMAT(NOW(), '%Y-%m-%d'); -- 특정 포맷으로 도출, EX) '2022-10-12'
profile
도전을 성과로

0개의 댓글