DataBase는 저장공간으로서의 주된 역할을 가지고 있지만 사람들에게 편의를 주기 위해서

내장 되어있는 함수를 가지고 있습니다. 내장 함수에는 문자열 처리 함수 , 수식 처리 관련 함수 등

여러 함수들이 존재 합니다. 지금부터 예시를 통해서 하나씩 이야기해보겠습니다.

 

● 임시 데이터 출력

 

① select 1234 * 1234 from 테이블명;

각 테이블의 레코드 수 만큼 출력 되어집니다.

 


② select 1234 * 1234 from dual; select

문을 작성시 테이블이 필요없을 때 dual 을 사용합니다. 또한  필요한 결과만 얻을 수 있습니다.

 

 

dual은 이름만 가지고 있는 테이블을 만들 때 사용할 수 있습니다.

- select * from dual;

 

● 내장 함수 , 문자열 처리 관련 함수

(문자열 함수의 결과값을 편하게 보시게 하기 위해서 dual을 사용하겠습니다.)

-- 대부분 프로그래밍 언어에서 문자열에서 제공하고 있다. 

 

 

1) lower() : 모든 문자를 소문자로 변환합니다. 

형식 : select lower('문자열 데이터') from 테이블명;

 

 

2) upper() : 모든 문자를 대문자로 변환합니다.

형식 : select upper('문자열 데이터') from 테이블명;

 

 

3) initcap() : 첫문자만 대문자로 변환합니다.

형식 : select initcap('문자열 데이터') from 테이블명;

 

 

4) concat() : 문자열 연결 -- 많이 사용 되는 함수.
select concat('문자열 데이터1', '문자열 데이터2') from 테이블명;

* concat은 두 개의 문자열을 하나의 결과로 나오게 하며, 두개  까지만 연결 가능 합니다.

 

 

 

5)  length() : 문자열의 길이를 나타냅니다.

형식 : select length('문자열 데이터') from 테이블명;

* 띄어쓰기까지 길이의 결과로 출력됩니다.

 

 

6) substr() : 문자열 추출을 합니다.

형식 : select substr('문자열 데이터', 첫번쨰 시작 자리수 , 끝나는 자리수) from 테이블명;

* 문자열에서 특정 위치만 추출하고 싶을 때 사용됩니다.  단, 띄어쓰기 및 공백도 포함 합니다.

 

 

7) instr() : 문자열 시작 위치를 알려줍니다.

형식 : select instr('문자열데이터', '시작문자') from 테이블명;

* 전달 된 데이터 에서 필요한 정보를 적으면 위치 정보를 추출합니다.

추가적으로 select instr('seven','e') from dual; -- 중복되는 값이 있으면 첫번째 글자의 자리수만 반환합니다.

 

 

8)  trim() : 컬럼, 대상 문자열에서 특정 문자가 첫번째 글자이거나 마지막글자이면 잘라내고남은 문자열만 반환합니다.

형식 : select trim('특정문자 ' from '문자열데이터')from 테이블명;

* 실수로 빈 여백을 넣어서 회원가입을 했을 때, 빈칸까지 아이디 혹은 비밀번호로 받아드리는 상황을 방지 하기 위해서 많이 사용됩니다.

 

 

 

 

 

● 내장 함수 , 수식 처리 관련 함수

 

1) round() : 반올림(음수: 소숫점 이상 자리)

형식: select round(숫자 데이터,n) from 테이블명;

* round(1234,-3) 의 결과값은 1000 세번째 자리인 2가 반올림 되지 않기 때문입니다.

양수일 때는 소수점을 기준으로 뒤로 가지만, 음수일때는 소수점을 기준으로 앞으로 감니다.. 

 

 

2) abs() : 절대값

형식 : select abs(n) from 테이블명;

* n의 값에 음수, 정수 같은 값이 나옵니다.

 

 

 

3) floor() : 소수자리 버리기

형식 : select floor(n.nnn) from 테이블명;

* 가장 근접해 있는  정수 값을 취합니다.

 floor(-12.1234) 의 결과 값을 -13이 됩니다.

 

 

4) trunc() : 특정 자리 자르기

형식: select trunc(12.1234567,3) from 테이블명; 

* round 와의 차이를 명확하게 봐야합니다.  round()는 반올림을 해주고, trunc()는 그냥 자리수 만큼 버려줍니다.

 

 

5) mod() : 나머지

형식: select mod(n,나누기할 수) from 테이블명;

 

 

 

 

 

 

 

+ Recent posts