대 ·소문자 변환 , 문자열 갯수 - UPPER, LOWER, INITCAP, LENGTH
select ename,
upper(ename), -- 대문자로 변환
lower(ename), --소문자로 변환
initcap(ename) -- 첫번째 글자만 대문자 나머진 소문자로 변환
length(ename) -- 문자열 갯수 출력
from emp;
문자열 일부 추출 - SUBSTR
select job, substr(job,1,2) , substr(job,1) -- SUBSTR(문자열데이터, 시작위치, 추출길이 입력)
from emp; -- 추출길이 생략시 시작위치부터 문자열 끝까지 출력한다.
특정 문자 위치 찾기 - INSTR
select instr('HELLO, ORACLE!', 'L',2,2), instr('핫둘셋넷', '둘') from dual;
--특정 문자 위치 찾기
-- 1. 대상 문자열 데이터(필수)
-- 2. 위치를 찾으려는 부분 문자(필수) == L
-- 3. 위치 찾기를 시작할 대상 문자열 데이터 위치 (선택, 기본값은 1)
-- 4. 시작 위치에서 찾으려는 문자가 몇 번째인지 지정(선택, 기본값은 1)
특정 문자 변환 - REPLACE
select '010-1234-5678' as replace_before,
replace('010-1234-5678','-',' ') as replace_1,
replace('010-1234-5678','-') as replace_2
from dual;
-- REPLACE(문자열데이터 or 열 이름 , 찾는 문자, 대체할 문자)
빈 공간 채우기 - LPAD, RPAD
select 'Oracle',
lpad('Oracle', 10, '#') as lpad_1, -- 왼쪽 빈공간 '#' 삽입
rpad('Oracle', 10, '#') as rpad_1, -- 오른쪽 빈공간 '#' 삽입
lpad('Oracle', 10) as lpad_2, -- 왼쪽 빈공간 공백 삽입
rpad('Oracle', 10) as rpad_2 -- 오른쪽 빈공간 공백 삽입
from dual;
-- 첫번째 문자열 입력, 두번째 데이터의 자릿수, 마지막 빈공간을 채울 문자 ! (비우면 공백)
문자열 합치기 - CONCAT, OR 연산자
select concat(empno,ename),
empno || ename
from emp;
-- 문자열 합치기 보통 concat 안쓰고 ||으로 씀 자바의 '+'연산자 느낌 ㅎㅎ
특정 문자 제거 - TRIM, LTRIM, RTRIM
SELECT '[' || TRIM('_' FROM '_ _Oracle_ _') || ']' AS TRIM,
'[' || TRIM(LEADING '_' FROM '_ _Oracle_ _') || ']' AS TRIM_LEADING,
'[' || TRIM(TRAILING '_' FROM '_ _Oracle_ _') || ']' AS TRIM_TRAILING,
'[' || TRIM(BOTH '_' FROM '_ _Oracle_ _') || ']' AS TRIM_BOTH
FROM DUAL;
-- TRIM(삭제 옵션(선택), 삭제할 문자(선택), FROM 원본 문자열 데이터(필수))
-- 삭제할 문자 생략시 공백제거
숫자 함수
select round(1234.5678,2), -- 지정된 숫자의 특정 위치에서 반올림! (첫번째: 값 입력), (두번째: 반올림할 위치)
trunc(1234.5678,2), -- 지정된 숫자의 특정위치에서 버림한다 ! (첫번째 : 값 입력), (두번째: 버림할 위치)
ceil(3.14), -- 4 -- 올림
floor(3.14), -- 3 -- 버림
ceil(-3.14), -- -3
floor(3.14), -- -4
mod(15,6) -- 나눗셈 될 숫자, 나눌 숫자 ==> 나머지 출력
from dual;
현재 날짜 출력 - SYSDATE
SELECT SYSDATE AS NOW, -- 오늘 날짜
SYSDATE-1 AS YESTERDAY, -- 어제 날짜
SYSDATE+1 AS TOMORROW -- 내일 날짜
FROM DUAL;
몇 개월 이후 날짜 구하기 - ADD_MONTHS
select sysdate, add_months(sysdate,3) -- 현재 날짜에 3개월 더한다.
from dual;
-- add_months(날짜 데이터(필수), 더할 개월 수 (정수),(필수))
두 날짜 간 개월 수 차이 구하기 - MONTHS_BETWEEN
SELECT EMPNO, ENAME, HIREDATE, SYSDATE,
MONTHS_BETWEEN(HIREDATE, SYSDATE) AS MONTHS1, -- hiredate, sysdate 개월 수 차이
MONTHS_BETWEEN(SYSDATE, HIREDATE) AS MONTHS2, -- sysdate hiredate 개월 수 차이
TRUNC(MONTHS_BETWEEN(SYSDATE, HIREDATE)) AS MONTHS3 -- 소숫점까지 나오기때문에 정수로 출력!
FROM EMP;
-- round와 trunc 함수를 이용하는게 날짜 데이터에도 적용 가능
'Back-End > DB' 카테고리의 다른 글
[Oracle] 집합 연산자 (UNION) (0) | 2022.02.25 |
---|---|
[Oracla] SQL- WHER절과 연산자 (0) | 2022.02.23 |
[Oracla] SQL- DESC, Select절 사용하기 (0) | 2022.02.23 |
[Oracle] oracle 11g Experss 버전 Scott 계정 생성하기 (0) | 2022.02.21 |
[Oracle] SQL Developer 다운로드 및 접속 (0) | 2022.02.21 |