본문 바로가기

DataBase

[데이터베이스 문자 함수][dual이란?]

dual 이란??

 

테이블은 오라클을 설치하면 자동으로 생성되는 테이블이다.

산술 연산이나 가상 컬럼등을 한번 실행할때 사용하는 테이블이다.

 

테이블 생성하기

 

테이블 내용 추가하기

 

upper/lower/inicap

 

upper은 소문자 -> 대문자 

lower은 대문자 -> 소문자

inicap은 영문자에서 첫번째를 대문자로 출력

 

 

 

 

 

 

concat 문자의 값을 연결
select 'good','day',concat('good','day')from dual;

substr(대상, 시작위치, 추출할 개수)

 

 

문자열 추출

 

substr("문자열 ","시작위치",시작위치에서부터 읽을 문자갯수(?)")

select substr('oracle mania',4,3), // 앞에서 부터
         substr('oracle mania',-4,3) //뒤에서부터
         from dual;

employee 테이블에서 substr 함수 사용하여

scott 사원 찾기
select * from employee where substr(ename.2.3) = 'c';

 

 

문자열 추출(2)

기존 문자열에서 일부만 추출, 문자열의 시작 위치부터 개수 만큼의 문자만을 얻어옴, substrb함수는 바이트 수만큼 추출

 

select substr('오라클 매니아',3,4),
substrb('오라클 매니아',3,4)
from dual;

한글 utf-8의 경우, 3바이트

▶그렇기 때문에 한글자 당 3바이트라고 생각하면 된다.

 

 

문자위치 찾기
instr 함수는 대상 문자열이나 컬럼에서 특정 문자가 나타나는 위치를 알려줌
instr(대상, 찾을 글자, 시작 위치, 몇 번째 발견)
select instr('oracle maina','a')
form dual;

select instr('oracle maina','a',?,2)
from dual;

 

 

 

문자길이 채우기 // 일회성
lpad(left padding)
lpad:지정한 수 만큼 문자열로 왼쪽에 채워짐

 

 

숫자 함수
round한수는 지정한 자릿수에서 반올림을 할 수 있돌고 자릿수를 지정할 수 있음
자릿수에 으수를 지정할 수 있는데 이럴경우 소숫점 이하가 아닌 반대쪽인 일단 위 십단위 백단위 순으로 거슬러 올라감

select 98.7654,round(98.7654),
round(9837654,2),
round(98.7654,-1)
from dual;

 

날짜 함수


현재 날자 표시하기
select sysdate from dual;

 

어제 오늘 내일 날짜 표시
select sysdate-1 어제, sysdate 오늘, sysdate+1 내일
from dual;

 

근무일수 계산기
select round(sysdate-hiredate)근무일수
from employee;

 

날짜 함수(2)

 

날짜 함수(3)

 

case 표현식 실습

select case when 'A'<'B' then 'b-win'(출력)
else 'no_string!'
end as 발표끝
from dual;