단일행 함수의 종류
1. 문자함수
-upper, lower, inticap, substr, instr, length, lpad, rpad, trim, replace, concat
2. 숫자함수
3. 날짜함수
4. 변환함수
5. 일반함수
문자 함수
1. upper 함수 - 데이터를 대문자로 출력하는 함수
select telecom, upper(telecom)
from emp11;
-> 원래 소문자인 문자열이 대문자로 나온다.
2. lower 함수 - 데이터를 소문자로 출력하는 함수
select ename, lower(ename)
from emp;
3. initcap 함수 - 첫번째 철자는 대문자로 출력하고 나머지는 소문자로 출력하는 함수
select ename, inticap(ename)
from emp;
4. substr 함수 - 단어에서 특정 철자만 잘라내는 함수
substr(컬럼명, 시작위치, 길이)
<앞에서 부터 문자열 출력하기>
select ename, substr(ename, 1,3), substr(ename, 2,3), substr(ename, 3)
from emp
where ename = 'KING';
substr(ename, 1,3) : KING이름 1번째 철자부터 3개 출력
substr(ename, 2,3) : KING이름 2번째 철자부터 3개 출력
substr(ename, 3) : KING이름 3번째 철자부터 끝까지 출력
<뒤에서 부터 문자열 출력하기>
select ename, substr(ename, -1,1), substr(ename, -4,3), substr(ename, -2)
from emp
where ename = 'TURNER';
substr(ename, -1,1) : TURNER 이름 뒤에서 하나 출력
substr(ename, -4,3) : TURNER 이름 뒤에서 4번째 부터 3개 출력
substr(ename, -2) : TURNER 이름 뒤에서 2개 출력
5. instr 함수 - 단어에서 특정 철자의 자리수를 출력하는 함수
instr(컬럼명, 찾을 문자, 양수 or 음수 )
양수면 앞에서 부터 읽고
음수면 뒤에서 부터 읽지만 결과값은 앞에서부터 숫자 순서대로 나온다.
select ename, instr(ename, 'A')
from emp;
6. length 함수 - 문자의 길이를 출력하는 함수
select ename, length(ename)
from emp;
7. lpad 함수와 rpad 함수 - 막대그래프 처럼 데이터를 간단하게 시각화 할 수 있는 함수
lpad(값, 총문자길이, 채울문자)
select ename, lpad(sal,10,'*') as salary
from emp;
-> 월급을 출력하는데 전체를 10자리를 잡고 출력하고 나머지 왼쪽에는 별표(*)로 채워넣어라.
문제) 위의 결과를 다시 출력하는데 숫자는 나오지 않게하고 ■ 하나를 100단위로 출력하시오
select ename, lpad('■', sal/100, '■') as salary
from emp;
lpad('■', sal/100, '■') -> 월급이 3000이면 100으로 나누면 30. 전체가 30자리.
네모가 한칸 들어가고 그 뒤에 나머지 29자리를 네모가 채운다
8. trim 함수 - 특정 철자를 잘라내 버리는 함수
trim('잘라낼 철자' from 컬럼명)
<철자 하나 잘라낼 때>
select ename, trim('S' from ename)
from emp;
-> 하나의 철자를 잘라낼때는 trim을 사용
여러개를 잘라낼때는 rtrim과 ltrim을 사용
rtrim은 오늘쪽에 있는 철자를 잘라낼때 ltrim은 왼쪽에 있는 철자를 잘라낼때
<오른쪽의 철자를 잘라낼 때>
select email, rtrim(email, '.com')
from emp11;
-> 같은 방법으로 왼쪽 철자를 잘라내고 싶으면 ltrim을 사용하면 된다.
9. replace 함수 - 특정 철자를 다른 철자로 대체하는 함수
replace(컬럼명, 바꿀문자, 대체할 문자)
select ename, replace(sal, 0, '*')
from emp
-> 0대신에 *를 넣어라
10. concat 함수 - 두개의 컬럼의 데이터를 붙여서 출력하는 함수
select concat(ename, sal)
from emp;