반응형
-- Standard Function
-- DUAL TABLE : 가상테이블 -> 결과용 테이블
SELECT 1 FROM DUAL; --임시테이블이 만들어진다. (값만 확인할 수 있는 테이블)
SELECT 'A' FROM DUAL; --문자 가능
SELECT '가나' FROM DUAL; --문자열 가능
SELECT 23*45 FROM DUAL; --연산 가능
-- 문자함수
-- CHR( 숫자 ) : ASCII 값으로 변환
SELECT CHR(65) FROM DUAL;
SELECT CHR(97) FROM DUAL;
-- String str = "안녕" + "하세요"SELECT '내 점수는 ' || CHR(65) || '입니다' FROM DUAL; -- + 대신 || 연산자 사용.
-- LPAD(RPAD) : 나머지 빈칸을 지정문자로 채운다.
SELECT LPAD('BBB', 10) FROM DUAL;
SELECT RPAD('BBB', 10) FROM DUAL;
SELECT LPAD('BBB', 10, '-') FROM DUAL;
SELECT RPAD('124', 10, '0') FROM DUAL;
-- INSTR == indexOf('a') -> 'abcde' -> 0 = 'a'의 index위치 출력
SELECT INSTR ('abcde', 'a') FROM DUAL; -- Oracle에서의 index는 1부터 시작
SELECT INSTR ('123ABC456DEFABC', 'A') FROM DUAL;
SELECT INSTR ('123ABC456DEFABC', 'A', 7) FROM DUAL; -- 7번째 위치에서 제일 가까운 'A'의 위치
SELECT INSTR ('123ABC456DEFABCABC', 'A', 7, 1) FROM DUAL; -- 7번째 이후에 1번째 'A'
SELECT INSTR ('123ABC456DEFABCABC', 'A', 7, 2) FROM DUAL; -- 7번째 이후에 2번째 'A'
-- REPLACE : 문자열 치환
SELECT REPLACE('AAAAABCD', 'A') FROM DUAL; -- 바꿀 문자 지정 안함
SELECT REPLACE('AAAAABCD', 'A', 'a') FROM DUAL; -- 'A'문자를 'a'로 치환
SELECT REPLACE('AAAAABCD', 'AA', 'a') FROM DUAL; -- 'AA'문자를 'a'로 치환
-- TRANSLATE : 문자 치환
SELECT TRANSLATE('AAAAABCD', 'A', 'a') FROM DUAL; --replace와는 다르게 글자를 지정하지 않으면 에러
SELECT TRANSLATE('AAAAABCD', 'AA', 'a') FROM DUAL; --문자 치환이다!
-- SUBSTR : 문자 뽑아내기
SELECT SUBSTR('AAAAABCD', 1, 6) FROM DUAL;
SELECT SUBSTR('ABCDE', 3) FROM DUAL; --3번째 부터 끝까지
SELECT SUBSTR('ABCDE',3,2) FROM DUAL; --"CD" 3번째 글자부터 2글자 가져오기
-- 숫자
-- 올림SELECT CEIL(13.1) FROM DUAL; --14
-- 내림SELECT FLOOR(13.9) FROM DUAL; --13
--나눈 나머지SELECT MOD(3, 2) FROM DUAL; --1
--승수SELECT POWER(2, 3) FROM DUAL; --8
--반올림
SELECT ROUND(13.5) FROM DUAL;
SELECT ROUND(13.4) FROM DUAL;
--부호 + -> 1 // 0 -> 0 // - -> -1
-- SIGN
SELECT SIGN(13.4) FROM DUAL; -- 1
SELECT SIGN(0) FROM DUAL; -- 0
SELECT SIGN(-0.4) FROM DUAL; -- -1
-- TRUNC 버림(소수점)
SELECT TRUNC(123.456) FROM DUAL;
SELECT TRUNC(123.456, 2) FROM DUAL; --소수점 2번째 자리 까지
SELECT TRUNC(123.456, 1) FROM DUAL;
SELECT TRUNC(123.456, -1) FROM DUAL; --반대로 1번째 자리에서 버림
SELECT TRUNC(123.456, -2) FROM DUAL;
-- TO_CHAR : DATE -> VARCHAR2
SELECT TO_CHAR (SYSDATE) FROM DUAL;
SELECT TO_CHAR (SYSDATE, 'YYYY/MM/DD HH:MI:SS') FROM DUAL;
SELECT TO_CHAR (10000000, '$999,999,999') FROM DUAL;
-- TO_DATE : VARCHAR -> DATE
SELECT TO_DATE('20210525') FROM DUAL;
SELECT TO_DATE('20210525', 'YYYY') FROM DUAL;
-- TO_NUMBER VARCHAR2 -> NUMBER
SELECT TO_NUMBER('123') FROM DUAL;
-- LAST_DAY
SELECT LAST_DAY('22/02/02') FROM DUAL; --그달의 마지막 날짜 가져옴
SELECT LAST_DAY(TO_DATE ('210310', 'YYMMDD')) FROM DUAL;
CREATE TABLE number_tb(
COL1 NUMBER(7,2),
COL2 NUMBER(5,3)
)
INSERT INTO number_tb VALUES (12345.64, 12.234);
-- CONCAT 찾아보기
--날짜 함수 정리 찾아보고 해보기!!
문자형 함수(Character Function)정리
종 류 | 함 수 | 사 용 목 적 |
변환 함수 | LOWER | 알파벳 값을 소문자로 변환 |
UPPER | 알파벳 값을 대문자로 변환 | |
INITCAP | 첫번째 글자만 대문자로 변환 | |
문자 조작 함수 | CONCAT | 두 문자열을 연결(합성) |
SUBSTR | 문자열 중 특정 문자 또는 문자열의 일부분을 선택 | |
LENGTH | 문자열의 길이를 구함 | |
INSTR | 명명된 문자의 위치를 구함 | |
LPAD | 왼쪽 문자 자리 채움 | |
RPAD | 오른쪽 문자 자리 채움 | |
LTRIM | 왼쪽 문자를 지움 | |
RTRIM | 오른쪽 문자를 지움 | |
TRANSLATE | 특정 문자열을 대체 | |
REPLACE | 특정 문자열을 대신 |
숫자형 함수 정리
함 수 | 사 용 목 적 |
ROUND | 숫자를 반올림 |
TRUNC | 숫자를 절삭 |
MOD | 나머지를 구함 |
POWER | 거듭제곱 |
SQRT | 제곱근 |
SIGN | 양수, 음수,0인지를 구분 |
CHR | ASCII값에 해당하는 문자를 구함 |
날짜 함수 정리
날짜 함수 | 설 명 |
MONTHS_BETWEEN | 두 날짜 사이의 월수를 계산 |
ADD_MONTHS | 월을 날짜에 더합니다. |
NEXT_DAY | 명시된 날짜로부터 다음 요일에 대한 날짜를 나타냅니다. |
LAST_DAY | 월의 마지막 날을 계산 합니다. |
ROUND | 날짜를 반올림 합니다. |
TRUNC | 날짜를 절삭 합니다. |
반응형
'데이터베이스 > Oracle' 카테고리의 다른 글
[Oracle] scott 계정 연습문제 (SELECT문, 비교 연산자, 논리 연산자) (0) | 2021.05.27 |
---|---|
[Oracle] SELECT문 형식 (0) | 2021.05.27 |
[Oracle] DDL, DML, DCL 정의 (0) | 2021.05.27 |
[Oracle] 문자 자료형, 숫자 자료형 (0) | 2021.05.26 |
[Oracle] 테이블 생성(create), 데이터 입력(Insert) (0) | 2021.05.25 |