놀코에 오신 것을 환영합니다.

놀아보자 코드랑

KOSTA/ORACLE_SQL

오라클 SQL 자료형

놀코 2021. 5. 27. 17:41

**오라클 자료형
 - 문자형
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