--○LPAD()
-->BYTE를 확보하여 왼쪽부터 문자로 채우는 기능을 가진 함수
SELECT 'ORACLE' "COL1"
,LPAD('ORACLE',10,'*') "COL2" --10바이트의 공간을 확보해라
FROM DUAL;
--ORACLE ****ORACLE
--1.10Byte 공간을 확보한다.
--2.확보한 공간에 첫번째 파라미터인 'ORACLE'을 담는다.
--3.남은 Byte공간을 세번째 파라미터인 * 로 왼쪽부터 채운다.
--○RPAD()
-->Byte를 확보하여 오른쪽부터 문자로 채우는 기능을 가진 함수
SELECT 'ORACLE' "COL1"
,RPAD('ORACLE',10,'*') "COL2" --10바이트의 공간을 확보해라
FROM DUAL;
--ORACLE ORACLE****
첫번째 파라미터에서 두번째 파라미터에 해당하는 부분을 잘라낸 결과를 반환하는 함수
단 잘라내는것은 대 소문자를 구별한다.
TRIM() 함수 존재
SELECT TRIM(' TEST ') "결과"
FROM DUAL;
= TEST
--○LTRIM()
SELECT 'ORAORAORAORAORAORACLEORACLE' "COL1"
, LTRIM('ORAORAORAORAORACLEORACLE','ORA') "COL2"
, LTRIM('AAAAAAORAORACLEORACLE','ORA') "COL3"
, LTRIM('ORAORAORAoRAORACLEORACLE','ORA') "COL4" --대소문자를 구별해서 잘라내므로 소문자를 만나면 작동중지
, LTRIM('ORAORAOR AORAORACLEORACLE','ORA') "COL5"
, LTRIM(' RACLEORACLE',' ') "COL6" --공백을 자를때는 두번째 파라미터 생략 가능
FROM DUAL;
--ORAORAORAORAORAORACLEORACLE CLEORACLE
--자른부분을 버리고 남은부분을 반환한다.
--'O','R','A'이렇게 하나씩 자른다.
--ORAORAORAORAORAORACLEORACLE
--CLEORACLE
--CLEORACLE
--oRAORACLEORACLE
--AORAORACLEORACLE
--RACLEORACLE
--첫 번째 파라미터 값에 해당하는 문자열을
--왼쪽부터 연속적으로 등장하는 두 번째 파라미터 값에서 지정한 글자와
-- 같은 글자가 등장할 경우 이를 제거한 결과 값을 반환
--단, 완성형 처리는 x
--중간에 두번째 파라미터에 없는 문자를 만나면 작동중지된다.
--○RTRIM()
--위와 동일
첫번째 파라미터에서 두번째 파라미터에 해당하는 부분을 세번째파라미터의 문자별로 교체한 결과를 반환하는 함수
--○TRANSLATE()
-->1:1 로 바꿔준다.--문자열을 문자별로 1:1 교환
SELECT TRANSLATE('MY ORACLE SERVER'
, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
, 'abcdefghijklmnopqrstuvwxyz') "COL1"
FROM DUAL;
--my oracle server
SELECT TRANSLATE('010-3578-3912'
, '0'
, '공') "COL1"
FROM DUAL;
--공1공-3578-3912
SELECT TRANSLATE('010-3578-3912'
, '0123456789'
, '공일이삼사오육칠팔구') "COL1"
FROM DUAL;
--공일공-삼오칠팔-삼구일이
SELECT REPLACE('MY ORACLE SERVER ORAHOME','ORA','오라')"COL1"
FROM DUAL;
--MY 오라CLE SERVER 오라HOME
--ROUND() 반올림을 처리해 주는 함수
SELECT 48.678 "COL1"
,ROUND(48.678,2) "COL2" --소수점 이하 둘째자리까지 표현해라
,ROUND(48.674,2) "COL3"
,ROUND(48.678,1) "COL4"
,ROUND(48.678,0) "COL5"
,ROUND(48.678) "COL6"
,ROUND(48.678,-1) "COL7"
,ROUND(48.678,-2) "COL8"
,ROUND(48.678,-3) "COL9"
FROM DUAL;
/*
48.678 48.68 48.67 48.7 49 49 50 0 0
*/
SELECT 48.678 "COL1"
, TRUNC(48.678,2) "COL2"
, TRUNC(48.674,2) "COL3"
, TRUNC(48.674,1) "COL4"
, TRUNC(48.674,0) "COL5"
, TRUNC(48.674) "COL6"
, TRUNC(48.674,-1) "COL7"
, TRUNC(48.674,-2) "COL8"
, TRUNC(48.674,-3) "COL9"
FROM DUAL;
--48.678 48.67 48.67 48.6 48 48 40 0 0
--○MOD() 나머지를 반환하는 함수
SELECT MOD(5,2) "COL1"
FROM DUAL;
-->5를 2로 나눈 나머지 결과값 반환
--==>>1
--○POWER() 제곱의 결과를 반환하는 함수
SELECT POWER(5,3) "COL1"
FROM DUAL;
-->5의 3승을 결과값으로 반환
--==>>125
--○SQRT() 루트 결과값을 반환하는 함수
SELECT SQRT(2) "COL1"
FROM DUAL;
-->루트 2에 대한 결과값
--=>1.41421356237309504880168872420969807857
--○LOG() 로그 함수
-- 오라클은 상용로그만 지원하는 반면, MYSQL은 상용로그,자연로그 모두 지원
SELECT LOG(10,100)"COL1"
,LOG(10,20) "COL2"
FROM DUAL;
--==>>2 1.30102999566398119521373889472449302677
- LN() 자연 로그 함수 존재
SELECT LN(95) "RESULT"
FROM DUAL;
-○삼각함수(범위: -1 ~ 1)
SELECT SIN(0.5), COS(0.5), TAN(0.5)
FROM DUAL;
--0.4794255386042030002732879352155713880819 0.8775825618903727161162815826038296520119 0.5463024898437905132551794657802853832851
--○삼각함수의 역함수(범위: -1 ~ 1)
SELECT ASIN(0.5), ACOS(0.5), ATAN(0.5)
FROM DUAL;
/*
0.52359877559829887307710723054658381405 1.04719755119659774615421446109316762805 0.4636476090008061162142562314612144020295
*/
-->각각 어싸인, 어코싸인, 어탄젠트 결과 값을 반환한다.
--SIGN() 서명 부호 특징
-->연산 결과값이 양수이면 1, 0이면 0, 음수이면 -1을 반환한다.
SELECT SIGN(5-2) "COL1"
,SIGN(5-5) "COL2"
,SIGN(5-7) "COL3"
FROM DUAL;
-->>1 0 -1
-->매출이나 수지에 관련하여 적자 및 흑자의 개념을 나타낼때 종종 사용된다.
--○ASCII(), CHR() -> 서로 대응(상응)하는 함수
SELECT ASCII('A') "COL1"
,CHR(65) "COL2"
FROM DUAL;
--==>65 A
-->ASCII() : 매개변수로 넘겨받은 문자의 아스키코드 값을 반환
-->CHR() : 매개변수로 넘겨받은 아스키코드 값으로 해당 문자를 반환한다.