DataBase/MySql

MySql - 숫자와 문자열을 다루는 함수들

jaycheol 2023. 9. 8. 13:09
반응형

숫자와 문자열을 다루는 함수들

 

- 반올림, 올림, 내림

함수 설명
ROUND 반올림
CEIL 올림
FLOOR 내림
SELECT 
  ROUND(0.5),             =====> 1
  CEIL(0.4),                  =====> 1
  FLOOR(0.6);             =====> 0

 

- 절대값

함수 설명
ABS 절대값
SELECT
   ABS(1),                      =====> 1
   ABS(-1),                     =====> 1
   ABS(3 - 10);               =====> 7

 

- 최대값, 최소값

함수 설명
GREATEST (괄호 안에서) 가장 큰 값
LEAST (괄호 안에서) 가장 작은 값
SELECT
   GREATEST(1, 2, 3),             ======> 3
   LEAST(1, 2, 3, 4, 5);            ======> 1

 

 

-그룹함수

함수 설명
MAX 가장 큰 값
MIN 가장 작은 값
COUNT 갯수 (NULL값 제외)
SUM 총합
AVG 평균 값
SELECT
    MAX(Quantity),
    MIN(Quantity),
    COUNT(Quantity),
    SUM(Quantity),
    AVG(Quantity)
FROM OrderDetails
WHERE OrderDetailID BETWEEN 20 AND 30;

 

- 제곱과 제곱근

함수 설명
POW (A, B), POWER(A, B)  A를 B만큼 제곱
SQRT 제곱근
SELECT
   POW(2, 3),               =====> 8
   POWER(5, 2),          =====> 25
   SQRT(16);                =====> 4

 

- 소수점 선택

함수 설명
TRUNCATE(N, n) N을 소수점 n자리 까지 선택
SELECT
   TRUNCATE(1234.5678, 1),                =====> 1234.5
   TRUNCATE(1234.5678, 2),                =====> 1234.56
   TRUNCATE(1234.5678, 3),                =====> 1234.567
   TRUNCATE(1234.5678, -1),               =====> 1230
   TRUNCATE(1234.5678, -2),               =====> 1200
   TRUNCATE(1234.5678, -3);               =====> 1000

 

 

문자열 관련 함수들

 

- 대문자, 소문자

함수 설명
UCASE, UPPER 모두 대문자로
LCASE, LOWER 모두 소문자로
SELECT
   UPPER('abcDEF'),         ======> ABCDEF
   LOWER('abcDEF');        ======> abcdef   

 

- 문자열 이어 붙이기

함수 설명
CONCAT(...) 괄호 안의 내용을 붙임
CONCAT_WS(S, ...) 괄호 안의 내용을 S로 이어붙임
SELECT CONCAT('HELLO', ' ', 'THIS IS ', 2021) =====> HELLO THIS IS 2021
SELECT CONCAT_WS('-', 2021, 8, 15, 'AM')    ====> 2021-8-15-AM

 

- 문자열 자르기

함수 설명
SUBSTR, SUBSTRING 주어진 값에 따라 문자열 자름
LEFT 왼쪽부터 N 글자
RIGHT 오른쪽부터 N 글자
SELECT
   SUBSTR('ABCDEFG', 3),
   SUBSTR('ABCDEFG', 3, 2),
   SUBSTR('ABCDEFG', -4),
   SUBSTR('ABCDEFG', -4, 2);


SELECT
   LEFT('ABCDEFG', 3),              ====>  ABC
   RIGHT('ABCDEFG', 3);            ====> EFG

 

- 문자열의 길이

함수 설명
LENGTH 문자열의 바이트 길이
CHAR_LENGTH, CHARACTER_LENGTH 문자열의 문자 길이
SELECT
    LENGTH('안녕하세요'), -- 15
    CHAR_LENGTH('안녕하세요'), -- 5
    CHARACTER_LENGTH('안녕하세요'); -- 5

 

- 공백제거

함수 설명
TRIM 양쪽 공백 제거
LTRIM 왼쪽 공백 제거
RTRIM 오른쪽 공백 제거
SELECT
    CONCAT('|', ' HELLO ', '|'),                    ======>  | HELLO |
    CONCAT('|', LTRIM(' HELLO '), '|'),       ======>  |HELLO |
    CONCAT('|', RTRIM(' HELLO '), '|'),      ======>  | HELLO|
    CONCAT('|', TRIM(' HELLO '), '|');         ======>  |HELLO|

 

 

-글자 이어 붙이기

함수 설명
LPAD(S,N,P) S가 N글자가 될 때까지 P를 이어붙임
RPAD(S,N,P) S가 N글자가 될 때까지 P를 이어붙임
SELECT
    LPAD('ABC', 5, '-'),            =====> --ABC
    RPAD('ABC', 5, '-');           =====> ABC--

 

- 문자 변경

함수  설명
REPLACE(S,A,B) S중 A를 B로 변경
SELECT
   REPLACE(Description, ', ', ' and ')
FROM Categories;

 

- 문자 위치 찾기

함수  설명
INSTR(S,s) S중 s의 첫 위치를 반환, 없을 시 0

 

SELECT
    INSTR('ABCDE', 'ABC'),
    INSTR('ABCDE', 'BCDE'), INSTR('ABCDE', 'C'), INSTR('ABCDE', 'DE'), INSTR('ABCDE', 'F');

 

- 자료형으로 변환

함수  설명
CAST(A AS T) A를 T자료형으로 변환
CONVERT(A, T) A를 T자료형으로 변환
SELECT
    '01' = '1',       -- 0
    CAST('01' AS DECIMAL) = CAST('1' AS DECIMAL); --1

 

반응형