**오라클 자료형
- 문자형
CHAR : 고정길이를 갖는다 ex) 자리수 지정안하면 4000바이트로 메모리차지
주민번호/ 우편번호처럼 고정된 자리수를 갖는 데이터의 타입으로 쓰인다.
VARCHAR2 : 가변길이를 갖는다 ex) 자리수 지정 안하면 오류!
이름처럼 가변 자리수를 갖는 데이터의 타입으로 쓰인다.
- 숫자형
NUMBER(전체자리수, 소수점이하지리수)
-날짜형 /자리수 지정 없음
DATE
TIMESTAMP
--------------------------------------------
**오라클 함수(p.130)
-문자처리함수 : UPPER(), LOWER(), INITCAP(), LENGTH()
SUBSTR(),
INSTR()
REPLACE()
LPAD(), RPAD()
TRIM()
SELECT LENGTH('한글') -- LENGTHB('한글') 바이트전환, 한글은 2byte //
FROM dual;
SELECT SUBSTR('hellojava', 2,4) -- ello출력
FROM dual;
SELECT INSTR('hellojava', 'l') -- 결과:3 // 찾지 못할경우 return 0을 반환
,INSTR('hellojava', 'l' , 4) --4
,INSTR('hellojava', 'l' , 1, 2) --4
FROM dual;
SELECT REPLACE('hellojava', 'l','t') -- hettojava 결과값
FROM dual;
SELECT LPAD('hellojava', 15, '^') --^^^^^^hellojava
,RPAD('hellojava', 15, '^') --hellojava^^^^^^
FROM dual;
SELECT LPAD('hellojava', 12, '^')
,RPAD('hellojava', 12, '^')
,RPAD(LPAD('hellojava', 12, '^'),15,'^')
FROM dual;
SELECT '앞' || TRIM(' ABC ') ||'뒤', --앞ABC뒤
'앞' || TRIM(LEADING FROM' ABC ') ||'뒤', --앞ABC 뒤
'앞' || TRIM(TRAILING FROM' ABC ') ||'뒤' --앞 ABC뒤
FROM dual;
SELECT '앞' || TRIM('^' FROM '^^ABC^^') ||'뒤', --특정문자 제거 //BOTH '^' FROM~~)
'앞' || TRIM(LEADING '^' FROM '^^ABC^^') ||'뒤', --
'앞' || TRIM(TRAILING '^' FROM '^^ABC^^') ||'뒤' --
FROM dual;
-숫자처리함수
ROUND(), TRUNC(), CEIL(), FLOOR(), MOD()
SELECT ROUND(45.923) --46
,ROUND(45.923, 1) --45.9
,ROUND(45.923, -1) --50
FROM dual;
SELECT TRUNC(45.923) --46
,TRUNC(45.923, 1) --45.9
,TRUNC(45.923, -1) --50
FROM dual;
SELECT CEIL(45.923), FLOOR(45.923)
FROM dual;
-날짜처리함수
SYSDATE, STSTIMESTAMP,
ADD_MONTHS() --월
NEXT_DAY() -- 요일
LAST_DAY() -- 월의 마지막 일자
SELECT SYSDATE,
SYSTIMESTAMP
FROM dual;
SELECT ADD_MONTHS(SYSDATE, 1), --한달후
ADD_MONTHS(SYSDATE, -1) --한달전
FROM dual;
SELECT MONTHS_BETWEEN(ADD_MONTHS(SYSDATE,10), SYSDATE),
MONTHS_BETWEEN('21/09/07',SYSDATE)
FROM dual;
SELECT NEXT_DAY(SYSDATE, '일'), -- 돌아오는 일요일의 날짜값
NEXT_DAY('21/05/01', '월'), --5월의 첫 월요일의 날짜값
LAST_DAY(SYSDATE), --이달의 마지막날짜
LAST_DAY('21/02/01') --2월의 마지막 달
FROM dual;
날짜값 + 숫자 : ex) SYSDATE +1 =>내일
날짜값 - 숫자 SYSDATE -1 =>어제
날짜값 - 날짜값 (SYSDATE +2) - (SYSDATE -1) => 기간(어제~모레)
문자값 '21/05/27'을 날짜자료형과 비교할 경우 문자형이 날짜형으로 자동형변환됨
ex) SYSDATE > '21/05/27'
ex) SELECT FROME employees WHERE hire_date LIKE '05%';
참조 깃허브
https://github.com/sblee1031/Kosta/blob/main/ORACLE_DB_THEOTY/Oracle_DB.txt
'KOSTA > ORACLE_SQL' 카테고리의 다른 글
오라클 SQL 사용 문법 정리 (1) (0) | 2021.06.06 |
---|---|
PL/SQL 기초 / 블럭이란? (2) | 2021.06.03 |
SQL 테이블 생성 규칙 / 열 이름 생성규칙 (0) | 2021.06.01 |
JOIN 기능 (0) | 2021.05.28 |
숫자 처리 함수 (0) | 2021.05.27 |