[DB] MySQL 함수정리

2020. 5. 23. 16:59DataBase/MySQL

반응형

문자열 함수

1. ASCII()

※ 문자를 아스키코드 값으로 변환하여 반환한다.

 

설명) 문자 a를 아스키코드 값으로 변환하여 97을 반환한다.

SELECT ASCII('a') FROM DUAL;

2. CHAR()

아스키코드 값을 주면 그에 해당하는 문자값을 반환한다.

 

설명) 아스키코드 97에 해당하는 문자값 'a'를 반환한다.

SELECT CHAR(97) FROM DUAL;
=
SELECT CAST(CHAR(97) AS CHAR(1)) FROM DUAL;

3. LENGTH()

 문자열의 길이를 반환한다.

 

설명) 열이름에 해당하는 모든 데이터의 문자열 길이를 반환한다.

SELECT LENGTH(열이름) FROM 테이블명;

4. INSTR()

※ 찾고자 하는 문자열의 시작위치를 반환한다.

 

설명) 열이름에 해당하는 모든 데이터의 값 중 찾고자하는 문자열의 위치를 반환한다.

SELECT INSTR(열이름, 찾고자 하는 문자열) FROM 테이블명;

5. LEFT() or MID() or RIGHT()

※ 문자열에서 원하는 위치에서 갯수만큼 문자열를 추출할때 사용

 

설명) 문자열의 시작위치는 1 이다.

# LEFT()
SELECT LEFT(문자열, 추출갯수) FROM DUAL;
# MID()
SELECT MID(문자열, 시작위치, 추출갯수) FROM DUAL;
# RIGHT()
SELECT RIGHT(문자열, 추출갯수) FROM DUAL;

예시)
# LEFT()
SELECT LEFT('ABCDEFGHIJK',3) FROM DUAL;
# MID()
SELECT MID('ABCDEFGHIJK',3,6) FROM DUAL;
# RIGHT()
SELECT RIGHT('ABCDEFGHIJK',3) FROM DUAL;

RESULT :
ABC
CDEFGH
IJK

6. SUBSTR() or SUBSTRING()

문자열 자르기

빨간색 체크 출력 결과

1) 문자열을 시작위치를 기준으로 끝까지 호출
= SELECT SUBSTR('ABCDEFGHIJKLM',3) FROM DUAL;
= SELECT SUBSTRING('ABCDEFGHIJKLM',3) FROM DUAL;
= SELECT SUBSTR('ABCDEFGHIJKLM' FROM 3) FROM DUAL;
= SELECT SUBSTR('ABCDEFGHIJKLM' FROM 3) FROM DUAL;

2) 문자열을 시작위치에서 원하는갯수만큼 호출
= SELECT SUBSTR('ABCDEFGHIJKLM', 3, 4) FROM DUAL;
= SELECT SUBSTRING('ABCDEFGHIJKLM', 3, 4) FROM DUAL;
= SELECT SUBSTR('ABCDEFGHIJKLM' FROM 3 FOR 4) FROM DUAL;
= SELECT SUBSTR('ABCDEFGHIJKLM' FROM 3 FOR 4) FROM DUAL;

7. LOWER() or UPPER()

※ 문자열을 소문자/대문자로 변환

SELECT LOWER('LOWER') FROM DUAL;
RESULT : lower

SELECT UPPER('upper') FROM DUAL;
RESULT : UPPER

8. LTRIM() or TRIM() or RTRIM()

※ 문자열의 왼쪽/전체[왼쪽 AND 오른쪽]/오른쪽 공백 제거 

SELECT LTRIM('    MY  SQL    ') FROM DUAL;
RESULT : 'MY  SQL    '

SELECT TRIM(' MY SQL ') FROM DUAL;
RESULT : 'MY  SQL'

SELECT RTRIM(' MY SQL ') FROM DUAL;
RESULT : '   MY  SQL'

숫자형 함수

1. CEIL()

※ 올림함수 

= SELECT CEIL(1.1) FROM DUAL;
= SELECT CEIL(1.5) FROM DUAL;
= SELECT CEIL(1.9) FROM DUAL;

RESULT :  2

2. FLOOR()

※ 소수점 버림 함수

SELECT FLOOR(1.51231) FROM DUAL;

RESULT : 1

3. ROUND() 

※ 소수점 위치를 지정하여 반올림 (위치 디폴트 : 0 [정수 부분])

 

설명)

1) 위치값이 인자가 없을경우 0 으로 지정

2) 소수점 3번쨰 자리에서 반올림

1) SELECT ROUND(1.23254) FROM DUAL;

RESULT :  1

2) SELECT ROUND(1.23254, 3) FROM DUAL;

RESULT :  1.233

4. TRUNCATE()

※ 버릴 자릿수 아래로 버림

빨간색 체크 숫자 버림

1) SELECT TRUNCATE(3451.34567, 0) FROM DUAL;

RESULT : 3451

2) SELECT TRUNCATE(3451.34567, 2) FROM DUAL;

RESULT : 3451.34 

3) SELECT TRUNCATE(3451.34567, -2) FROM DUAL;

RESULT : 3400

5. MOD()

※ a 를 b로 나눈 나머지를 반환

SELECT MOD(a, b) FROM DUAL;

예시) SELECT MOD(14, 3) FROM DUAL;

RESULT: 2

6. RAND()

※ 0 부터 1 사이의 난수 반환

SELECT RAND() FROM DUAL;

RESULT : 0 부터 1 사이의 난수 반환(호출시 마다 다른값을 반환) 
반응형