Scalar Functions

JERRY·2025년 3월 7일

SQL

목록 보기
16/18
post-thumbnail

1. 실습 환경

  • 실습할 데이터베이스로 이동 : AWS RDS (database-1) zerobase 에 접속
% mysql -h <엔드포인트> -P <port> -u <username> -p <databasename>
  • 실습할 데이터 확인 : sandwich 데이터 확인 (50 rows)

2. Scalar Functions

  • Scalar Functions : 입력값을 기준으로 단일 값을 반환하는 함수

1.UCASE

  • UCASE : 영문을 대문자로 반환하는 함수

  • 문법

SELECT UCASE(string);
  • 예제 1 : 다음 문장을 모두 대문자로 조회
SELECT UCASE('This Is ucase Test.');

  • 예제 2 : $15가 넘는 메뉴를 대문자로 조회
SELECT UCASE(menu), price
FROM sandwich
WHERE price > 15;

2.LCASE

  • LCASE : 영문을 소문자로 변환하는 함수

  • 문법

SELECT LCASE(string);
  • 예제 1 : 다음 문장을 모두 소문자로 조회
SELECT LCASE('This Is LCASE Test.');

  • 예제 2 : $5가 안되는 메뉴를 소문자로 조회
SELECT LCASE(menu), price
FROM sandwich
WHERE price > 5;

3.MID

  • MID : 문자열 부분을 반환하는 함수

  • 문법

    • string : 원본 문자열
    • start_positiont : 문자열 반환 시작 위치. (첫글자는 1, 마지막글자는 -1)
    • lenth : 반환할 문자열 길이
SELECT MID(string, start_position, lenth);
  • 예제 1 : 1번 위치에서 4글자 조회
SELECT MID('This is mid test', 1, 4);

  • 예제 2 : 6번 위치에서 5글자를 조회
SELECT MID('This is mid test', 6, 5);

  • 예제 3 : -4번 위치(뒤에서 4번째 위치)에서 4글자를 조회
SELECT MID('This is mid test', -4, 4);

  • 예제 4 : -8번 위치(뒤에서 8번째 위치)에서 3글자를 조회
SELECT MID('This is mid test', -8, 3);

  • 예제 5 : 11위 카페이름 중 두번째 단어만 조회 - 6번 위치에서 4글자
SELECT MID(cafe, 6, 4)
FROM sandwich
WHERE ranking=11;

  • 예제 6 : 11위 카페이름 중 두번째 단어만 조회 - 뒤에서 4번째에서 4글자
SELECT MID(cafe, -4, 4)
FROM sandwich
WHERE ranking=11;

4.LENGTH

  • LENGTH : 문자열의 길이를 반환하는 함수

  • 문법

SELECT LENGTH(string);
  • 예제 1 : 다음 문장의 길이를 조회
SELECT LENGTH('This Is len Test');

  • 예제 2 : 문자가 없는 경우 길이도 0
SELECT LENGTH('');

  • 예제 3 : 공백의 경우에도 문자이므로 길이가 1
SELECT LENGTH(' ');

  • 예제 4 : NULL 의 경우 길이가 없으므로 NULL
SELECT LENGTH('NULL');

  • 예제 5 : sandwich 테이블에서 Top 3의 주소 길이를 검색
SELECT LENGTH(address), address
FROM sandwich
WHERE ranking<=3;

5.ROUND

  • ROUND : 지정한 자리에서 숫자를 반올림하는 함수

  • 문법

    • number : 반올림할 대상
    • decimals : 반올림할 소수점 위치 (Option)
SELECT ROUND(number, decimals_price);
  • 예제 1 : 반올림할 위치를 지정하지 않을 경우, 소수점 자리 (0) 에서 반올림
SELECT ROUND(315.625);

  • 예제 2 : 소수점 첫번째 위치는 0
SELECT ROUND(315.625, 0);

  • 예제 3 : 두번째 소수점 위치는 1
SELECT ROUND(315.625, 1);

  • 예제 4 : 세번째 소수점 위치는 2
SELECT ROUND(315.625, 2);

  • 예제 5 : 일단위 위치는 -1
SELECT ROUND(315.625, -1);

  • 예제 6 : 십단위 위치는 -2
SELECT ROUND(315.625, -2);

  • 예제 7 : sandwich 테이블에서 소수점 자리는 반올림해서 1달러 단위까지만 표시 (최하위 3개만 표시)
SELECT ranking, price, ROUND(price)
FROM sandwich
ORDER BY ranking DESC
LIMIT 3;

6.NOW

  • NOW : 현재 날짜 및 시간을 반환하는 함수

  • 문법

SELECT NOW();

7.FORMAT

  • FORMAT : 숫자를 천단위 콤마가 있는 형식으로 반환하는 함수

  • 문법

    • number : 포맷을 적용할 문자 혹은 숫자
    • decimals : 표시할 소수점 위치
SELECT FORMAT(number, decimal_place);
  • 예제 1 : 소수점을 표시하지 않을 경우 0
SELECT FORMAT(12345.6789, 0);

  • 예제 2 : 소수점 두자리까지 표시할 경우 2
SELECT FORMAT(12345.6789, 2);

  • 예제 3 : 소수점 열자리까지 표시
SELECT FORMAT(12345.6789, 10);

  • 예제 4 : oil_price 테이블에서 가격이 백원단위에서 반올림 했을 때 2000원 이상인 경우 천원단위에 콤마를 넣어서 조회
SELECT FORMAT(가격, 0)
FROM oil_price
WHERE ROUND(가격,-3)>=2000;

0개의 댓글