sql

[mysql] Scalar Functions (기초)

scone 2022. 7. 7. 03:48

[Scalar Functions]

  • UCASE                           영문을 대문자로 변환하는 함수
  • LCASE                            영문을 소문자로 변환하는 함수
  • MID                                 문자열 부분을 반환하는 함수
  • LENGTH                         문자열의 길이를 반환하는 함수
  • ROUND                           지정한 자리에서 숫자를 반올림하는 함수 (0이 소수점 첫째 자리)
  • NOW                               현재 날짜 및 시간을 반환하는 함수
  • FORMAT                         숫자를 천단위 콤마가 있는 형식으로 반환하는 함수

[UCASE] 

SELECT ucase(menu) FROM sandwich WHERE price > 15;

[LCASE] 

SELECT LCASE(menu) FROM sandwich WHERE price>15;

[MID] 

  • MID(string, start_position, length);
    string : 원본 문자열
    start_position : 문자열 시작 위치, ( 첫 글자는 1, 마지막 글자는 -1 )
    length : 반환할 문자열 길이
SELECT MID('This is mid test', 1, 9);

SELECT MID('This is mid test', -6, 5);

[LENGTH] 

  • .NULL의 경우에는 길이가 있는것도 아니고 아예 존재하지 않는거기 때문에 NULL을 리턴한다.
SELECT LENGTH(' ');

SELECT LENGTH(NULL);

 

SELECT length(address), address FROM sandwich LIMIT 2;


[ROUND] 

  • ROUND( number, decimals_place );
  • number : 반올림할  대상
  • deciamls_place : 반올림할 소숫점 위치 (option, default는 소숫점 첫번째 자리에서 반올림)

 

SELECT round(234.234551, 2);

SELECT round(234.234551, -2);

SELECT round(234.234551, -5);

[NOW] 

select now();

[FORMAT] 

  • FORMAT( number, deciamal_place );
  • number : 포맷을 적용할 문자 혹은 숫자
  • deciamal_place : 표시할 소숫점 위치 ( round )

 

2번째 인수를 적지 않으면 오류가 뜬다. ( ROUND에서는 오류 없이 디폴트 값이 0 이었다.)

SELECT format(1234.6789);

 

SELECT format(1234.6789,3);

 

라운드에서와 달리 2번째 인수에 마이너스 값 숫자 넣으면 그냥 0을 넣은것과 결과가 같다.

SELECT format(1234.6789, -1);