단일 행 함수의 형식
- 인자들을 받아서 하나의 값을 반환
- 하나의 행에 대해 하나의 결과를 반환
- 데이터 형을 수정
- 중첩해서 사용할 수도 있음
function_name(column | expression, [arg1, arg2, ...])
FUNC3(FUNC2(FUNC1 (col, arg1), arg2), arg3)
→ 가장 깊이 있는 함수가 먼저 연산을 수행함
: FUNC1 → FUNC2 → FUNC3 순서대로 수행
문자 함수
- lower, lcase
: 소문자로 변환
lower('SQL Course') / lcase('SQL Course')
▶ select dname, lower(dname) from dept;
: dept에서 dname을 선택하고 소문자로 변환
- upper, ucase
: 대문자로 변환
upper('SQL Course') / ucase('SQL Course')
▶ select upper("sql");
: "sql"을 대문자로 변환
- replace
: 문자열의 일부분을 치환
replace(컬럼, '해당 문자열', '바꿀 문자열')
▶ select loc, replace(loc, 'NEW', 'HAPPY') from dept;
: dept에서 loc을 선택하되, loc 컬럼에 있는 'NEW' 글자를 'HAPPY'로 치환
- concat
: 문자열에 문자 혹은 문자열을 결합
concat('MY', 'SQL Course')
▶ select ename concat('DB_', ename, '님') from emp;
: emp에서 ename을 선택하되, ename 앞에 'DB_', 뒤에 '님'을 결합
- substring
: 문자열(컬럼 데이터)의 일부를 반환
substring(column, start index, end index)
▶ select job, substring(job, 1, 3) from emp;
: emp에서 job을 선택하고 job 컬럼의 1번 index부터 3번 index까지를 반환
- length
: 문자열의 길이를 측정 / 반환
length('SQL Course')
▶ select job, length(job) from emp;
: emp에서 job을 선택하고 job의 문자열 길이를 출력
- reverse
: 문자열을 거꾸로 뒤집은 문자열을 반환
reverse('SQL Course')
▶ select job, reverse(job) from emp;
: emp에서 job을 선택하고 job 컬럼의 문자열을 거꾸로 뒤집어 출력
치환 함수
- date_format
: 날짜를 지정한 형식에 맞게 문자열로 변환
date_format(date, 'format')
▶ select date_format(NOW(), '%Y %M %D %W');
: 현재 날짜를 형식에 맞춰 문자열로 변환
▶ NOW() : 현재 날짜와 시간을 반환하는 함수
★ 날짜 데이터 포맷 ★
- %Y (2020), %y (20) : 연도
- %M (September), %b (Sep), %m (09), %c (9) : 월
- %d (7th), %d (07), %e (7) : 일
- %W (Thursday), %a (Sun), %w(0) : 요일
- %H, %k (13), %h (01), %l (1) : 시
- %i : 분
- %S, %s : 초
- %p : AM, PM
- %r : "hh:mm:ss AM|PM"
- %T : "hh:mm:ss"
≫ 대소문자 구분 주의
- time_format
: 시간을 지정한 형식에 맞게 문자열로 변환
time_format(time, 'format')
▶ select time_format(NOW(), '%p %k %i %s');
: 현재 시간을 지정한 형식에 맞춰 문자열로 변환
- str_to_date
: 문자(열)를 날짜 데이터로 변환
→ 날짜 포함시 DATE(년-월-일) 값
→ 시간 포함시 TIME(시:분:초) 값 반환
→ str이 유효하지 않은 값을 포함할 시 NULL 반환
str_to_date('str', 'format')
▶ select str_to_date('25.09.2020 14.31', '%d.%m.%Y %H.%i');
: (날짜) 2020년 9월 25일 (시간) 오후 2시 31분 문자열을 날짜 데이터로 변환
- cast
: 데이터 형식 변환
select CAST(expression as type)
▶select CAST(24 as char(2));
: 숫자 24를 크기 2의 문자열로 형변환
▶ select CAST('4' as unsigned);
: 숫자 4를 unsigned 형으로 형변환
→ unsigned는 부호가 없는 수를 의미
▶ select CAST('-4' as unsigned);
: 숫자 -4를 unsigned 형으로 형변환
→ 음수를 unsigned 형으로 변환하면 overflow 발생
▶ select CAST('20190927' as date);
: 숫자 20190927을 날짜 데이터로 형변환
▶ select CAST(date_format('2020-10-22', '%Y%m%d') as char);
: 날짜 데이터 '2020-10-22'를 문자열로 형변환
숫자 함수
- round
: 정해진 형식으로 숫자를 변형 (반올림)
→ 두 번째 인자+1 자릿수에서 반올림한 결과 값을 반환
round(숫자, 자릿수)
Ex.
round(4234.19565, 4) -> 4234.1957
round(4234.19575, -2) -> 4200
▶ select sal, round(sal/100, 0) from emp;
: emp에서 sal를 선택하고, sal 값을 각각 100으로 나눠 첫째 자리 수에서 반올림한 결과 값 반환
- truncate
: 정해진 형식으로 숫자를 변형 (버림)
→ 두 번째 인자 자릿수 아래로 버린 결과 값 반환
truncate(숫자, 자릿수)
Ex.
truncate(4234.19565, 2) -> 4234.19
truncate(4234.19575, -2) -> 4200
▶ select truncate(4234.19565, -1);
: 4234.19565를 소수점 앞 첫째자리 아래로 버린 결과 값 반환
- mod
: X(첫 번째 인자)를 Y(두 번째 인자)로 나눈 나머지 계산
mod(x, y) => x % y
▶ select sal, mod(sal, 100) from emp;
: emp에서 sal을 선택하고 sal 값을 100으로 나눈 나머지를 출력
- pow
: X(첫 번째 인자)의 Y(두 번째 인자) 제곱 계산
▶ select sal, pow(sal, 2) from emp;
: emp에서 sal을 선택하고 sal 값의 제곱을 계산해 출력
'Data Base Design System' 카테고리의 다른 글
Subquery (0) | 2021.10.15 |
---|---|
JOIN (0) | 2021.10.01 |
연산자 (0) | 2021.09.30 |
where (0) | 2021.09.29 |
SQL 클라이언트 화면 지움 (0) | 2021.09.29 |