Scalar Functions
는 입력값을 기준으로 단일 값을 반환하는 함수이다.
Function | Description |
---|---|
UCASE | 영문을 대문자로 변환하는 함수 |
LCASE | 영문을 소문자로 변환하는 함수 |
MID | 문자열 부분을 반환하는 함수 |
LENGTH | 문자열의 길이를 반환하는 함수 |
ROUND | 지정한 자리에서 숫자를 반올림하는 함수 (0이 소수점 첫째 자리) |
NOW | 현재 날짜 및 시간을 반환하는 함수 |
FORMAT | 숫자를 천단위 콤마(,)가 있는 형식으로 반환하는 함수 |
UCASE
는 uppercase로 영문을 대문자로 변환하는 함수이다.
UCASE 문법
SELECT UCASE(string);
Example 1: 다음 문장(Hello, this Is Irene.)를 모두 대문자로 조회하기
select ucase('Hello, this Is Irene.');
Example 2: sandwith 테이블에서 $15가 넘는 메뉴를 대문자로 조회하기
select ucase(menu) from sandwith
where price > 15;
LCASE
는 lowercase로 영문을 소문자로 변환하는 함수이다.
LCASE 문법
SELECT LCASE(string);
Example 1: 다음 문장(Hello, This is IRENE.)을 모두 소문자로 조회하기
select lcase('Hello, This is IRENE.');
Example 2: sandwith 테이블에서 $5가 안되는 메뉴를 소문자로 조회하기
select lcase(menu) from sandwith
where price < 5;
MID
는 문자열 부분을 반환하는 함수다.
MID 문법
SELECT MID(string, start_position, length); # string: 원본 문자열 # start: 문자열 반환 시작 위치 (첫글자는 1, 마지막 글자는 -1) # length: 반환할 문자열 길이
Example 1: 다음 문장(Hello, this is Irene.)을 1번 위치에서 4글자를 조회하기
select mid('Hello, this is Irene.', 1, 4);
Example 2: 다음 문장(Hello, this is Irene.)을 6번 위치에서 5글자를 조회햐기
select mid('Hello, this is Irene.', 6, 5);
#공백도 문자로 인식하기에 공백도 위치에 포함된다.
Example 3: 다음 문장(Hello, this is Irene.)을 -4번 위치(뒤에서 4번째 위치)에서 4글자를 조회하기
select mid('Hello, this is Irene.', -4, 4);
Example 4: 다음 문장(Hello, this is Irene.)을 -8번 위치에서 3글자를 조회하기
select mid('Hello, this is Irene.', -8, 3);
Example 5: sandwich 테이블에서 11위 카페 이름 중 두번째 단어만 조회하기
1) sandwich 테이블에서 11위 카페 이름 조회하기
select cafe from sandwich
where ranking = 11;
2) sandwich 테이블에서 11위 카페 이름 중 두번째 단어만 조회하기
select mid(cafe, 6, 4) from sandwich
where ranking = 11;
#6번 위치에서 4글자 조회하는 결과값
또는
select mid(cafe, -4, 4) from sandwich
where ranking = 11;
#-4번 위치에서 4글자 조회하는 결과값
LENGTH
는 문자열의 길이를 반환하는 함수이다.
LENGTH 문법
SELECT LENGTH(string);
Example 1: 다음 문장(Hello, this is Irene.)의 길이를 조회하기
select length('Hello, this is Irene.');
Example 2: 문자가 없는 경우의 길이를 조회하기
select length('');
# 문자가 없는 경우 길이가 0
Example 3: 공백의 경우의 길이를 조회하기
select length(' ');
# 공백의 경우 문자로 인식하므로 길이가 1
Example 4: NULL의 경우의 길이를 조회하기
select length(null);
# NULL의 경우 존재하지 않기 때문에 길이가 없으르모 NULL
Example 5: sandwich 테이블에서 Top 3의 주소 길이을 검색하기
select ranking, address, length(address)
from sandwich
where ranking <= 3;
ROUND
는 지정한 자리에서 숫자를 반올림하는 함수다.
ROUND 문법
SELECT ROUND(number, decimals_place); #number: 반올림할 대상 #decimals: 반올림할 소수점 위치 (option)
Example 1: 314.159을 반올림하기
select round(314.159);
/*반올림할 위치(decimals_place)를 지정하지 않을 경우
기본값인 소수점 자리 (0)에서 반올림*/
Example 2: 314.159을 첫번째 소수점 위치에서 반올림하기
select round(314.159, 0);
#첫번째 소수점 위치는 0
Example 3: 314.159을 두번째 소수점 위치에서 반올림하기
select round(314.159, 1);
#두번째 소수점 위치는 1
Example 4: 314.159을 세번째 소수점 위치에서 반올림하기
select round(314.159, 2);
#세번째 소수점 위치는 2
Example 5: 314.159을 일단위 위치에서 반올림하기
select round(314.159, -1);
#일단위 위치는 -1
Example 6: 314.159을 십단위 위치에서 반올림하기
select round(314.159, -2);
#십단위 위치는 -2
Example 7: sandwich 테이블에서 소수점 자리는 반올림해서 $1 단위까지만 표시하기 (최하위 3개만 표시)
select ranking, price, round(price)
from sandwich
order by ranking desc
limit 3;
NOW
는 현재 날짜 및 시간을 반환하는 함수이다.
NOW 문법
SELECT NOW();
Example 1:
select now();
FORMAT
는 숫자를 천단위 콤마(,)가 있는 형식으로 변환하는 함수이다.
FORMAT 문법
SELECT FORMAT(number, decimals_place); # number: format을 적용할 문자 혹은 숫자 # decimals: 표시할 소수점 위치
Example 1:
select format(12345.6789, 0);
# 소수점을 표시하지 않을 경우 0
Example 2:
select format(12345.6789, 2);
# 소수점 두자리까지 표시할 경우 2
Example 3:
select format(12345.6789, 10);
# 소수점 열자리까지 표시할 경우 10