MySQL function

Gaeun·2022년 9월 26일
0
post-custom-banner

MySQL 내장 함수

  • 사용자의 편의를 위해 다양한 기능의 내장 함수를 미리 정의하여 제공
  • 대표적인 내장 함수의 종류
    - 문자열 함수
    - 수학 함수
    - 날짜와 시간 함수

LENGTH()

SELECT LENGTH(string)
  • 전달받은 문자열의 길이를 반환

CONCAT()

SELECT CONCAT(expression1, expression2, expression3,...)
  • 전달 받은 문자열을 모두 결합하여 하나의 문자열로 반환
  • 전달 받은 문자열 중 하나라도 NULL이 존재하면 NULL을 반환

LOCATE()

SELECT LOCATE(substring, string)
  • 문자열 내에서 찾는 문자열이 처음으로 나타내는 위치를 찾아서 해당 위치를 반환
  • 찾는 문자열이 문자열 내에 존재하지 않으면 0을 반환
  • MySQL에서는 문자열의 시작 인덱스를 1부터 계산

LEFT(), RIGHT()

SELECT LEFT(string, number_of_chars);
SELECT RIGHT(string, number_of_chars);
  • LEFT(): 문자열의 왼쪽부터 지정한 개수만큼의 문자를 반환
  • RIGHT(): 문자열의 오른쪽부터 지정한 개수만큼의 문자를 반환

LOWER(), UPPER()

SELECT LOWER(text);
SELECT UPPER(text);
  • LOWER(): 문자열의 문자를 모두 소문자로 변경
  • UPPER(): 문자열의 문자를 모두 대문자로 변경

REPLACE()

SELECT REPLACE(string, from_string, new_string)
  • 문자열에서 특정 문자열을 대체 문자열로 교체

TRIM()

SELECT TRIM(string)
  • 문자열의 앞이나 뒤, 또는 양쪽 모두에 있는 특정 문자를 제거

  • TRIM()함수에서 사용할 수 있는 지정자

    • BOTH: 전달받은 문자열의 양 끝에 존재하는 특정 문자를 제거 (기본 설정)
    • LEADING: 전달받은 문자열 앞에 존재하는 특정 문자를 제거
    • TRAILING: 전달받은 문자열 뒤에 존재하는 특정 문자를 제거

  • 만약 지정자를 명시하지 않으면, 자동으로 BOTH로 설정

  • 제거할 문자를 명시하지 않으면, 자동으로 공백을 제거

FORMAT()

SELECT FORMAT(number, decimal_places)
  • 숫자 타입의 데이터를 세 자리마다 쉼표(,)를 사용하는 '#,###,###.##'형식으로 변환
  • 반환되는 데이터의 형식은 문자열 타입
  • 두 번째 인수는 반올림할 소수 부분의 자릿수

FLOOR(), CEIL(), ROUND()

SELECT FLOOR(number);
SELECT CEIL();
SELECT ROUND();
  • FLOOR(): 내림
  • CEIL(): 올림
  • ROUND(): 반올림

SQRT(), POW(), EXP(), LOG()

SELECT SQRT(number);
SELECT POW(x, y);
SELECT EXP(number);
SELECT LOG(number);
  • SQRT(): 양의 제곱근
  • POW(): 첫 번째 인수로는 밑수를 전달하고, 두 번째 인수로는 지수를 전달하여 거듭제곱 계산
  • EXP(): 인수를 지수로 전달받아 e의 거듭제곱을 계산
  • LOG(): 자연로그 값을 계산

SIN(), COS(), TAN(), PI()

SELECT SIN(number);
SELECT COS(number);
SELECT TAN(number);
SELECT PI();
  • SIN(): 사인값 반환
  • COS(): 코사인값 반환
  • TAN(): 탄젠트값 반환
  • PI(): 파이값 반환

ABS(), RAND()

SELECT ABS(number);
SELECT RAND();
  • ABS(): 절대값을 반환
  • RAND(): 0.0보다 크거나 같고 1.0보다 작은 하나의 실수를 무작위로 생성
    - SELECT ROUND(RAND()*100, 0)의 형태로 자주 쓰임

NOW(), CURDATE(), CURTIME()

SELECT NOW();
SELECT CURDATE();
SELECT CURTIME()
  • NOW(): 현재 날짜와 시간을 반환, 반환되는 값은 'YYYY-MM-DD HH:NN:SS'또는 YYYYMMDDHHMMSS 형태
  • CURDATE(): 현재 날짜를 반환, 이떄 반환되는 값은 'YYYY-MM-DD' 또는 YYYYMMDD 형태
  • CURETIME(): 현재 시각을 반환, 이때 반환되는 값은 'HH:MM:SS' 또는 HHMMSS 형태

DATE(), MONTH(), DAY(), HOUR(), MINUTE(), SECOND()

SELECT DATE(expression);
SELECT MONTH(expression);
SELECT DAY(date)
SELECT HOUR(datetime);
SELECT MINUTE(datetime);
SELECT SECOND(datetime);
  • DATE(): 전달받은 값에 해당하는 날짜 정보를 반환
  • MONTH(): 월에 해당하는 값을 반환하며, 0부터 12 사이의 값을 가짐
  • DAY(): 일에 해당하는 값을 반환하며, 0부터 31 사이의 값을 가짐
  • HOUR(): 시간에 해당하는 값을 반환하며, 0부터 23사이의 값을 가짐
  • MINUTE(): 분에 해당하는 값을 반환하며, 0부터 59 사이의 값을 가짐
  • SECOND(): 초에 해당하는 값을 반환하며 0부터 59 사이의 값을 가짐
  • () 안에 NOW()가 들어갈 수 있다!

MONTHNAME(), DAYNAME()

SELECT MONTHNAME(date);
SELECT DAYNAME(date);
  • MONTHNAME(): 월에 해당하는 이름을 반환
  • DAYNAME(): 요일에 해당하는 이름을 반환

DAYOFWEEK(), DAYOFMONTH, DAYOFYEAR()

SELECT DAYOFWEEK(date);
SELECT DAYOFMONTH(date);
SELECT DAYOFYEAR(date);
  • DATYOFWEEK(): 일자가 해당 주에서 몇 번째 날인지 반환. 1부터 7 사이의 값을 가짐 (일요일=1, 토요일=7)
  • DAYOFMONTH(): 일자가 해당 월에서 몇 번째 날인지를 반환. 1부터 31사이의 값을 가짐
  • DAYOFYEAR(): 일자가 해당 연도에서 몇 번째 날인지를 반환, 1부터 366까지의 값을 가짐

DATE_FORMAT()

SELECT DATE_FORMAT(date, format)

참고 자료

profile
🌱 새싹 개발자의 고군분투 코딩 일기
post-custom-banner

0개의 댓글