char :
고정길이
최대 2000byte
varchar2
가변길이
최대 4000byte
number (p,s)
p는 전체 자리수로 1-38가지 가능
s는 소수점 이하 자리수로 -84 ~ 127
123.45 = NUMBER(5,2)
날짜 - date
1. 묵시적(자동) 형 변환과 명시적(수동) 형 변환
묵시적 - 오라클이 자동으로 형 변환을 시킴
SELECT 2+'2' FROM dual ;
= '2' 문자를 숫자로 자동으로 형 변환해 계산함
명시적 - 사용자가 수동으로 지정해 주어야 함
2. TO_CHAR 함수 (날짜 -> 문자로 형 변환)
년도
YYYY - 연도를 4자리로 표현
RRRR - 2000년 이후 Y2K 버그로 인해 등장한 날짜 표기법, 4자리 연도 표기
YY - 연도를 끝에 2자리만 표시 예 : 14
RR - 연도를 마지막 2자리만 표시 예 : 14
YEAR - 연도의 영문 이름 전체를 표시
월
MM - 월을 숫자 2자리로 표현 예 : 10
MON - 유닉스용 오라클에서 월을 뜻하는 영어 3글자로 표시 예 : OCT
MONTH - 월을 뜻하는 이름 전체를 표시
일
DD - 일을 숫자 2자리로 표시 예 : 26
DAY - 요일에 해당하는 명칭을 표시 유닉스=영문 , 윈도우=한글
DDTH - 몇 번째 날인지 표시
시간
HH24 - 하루를 24시간으로 표시
HH - 하루를 12시간으로 표시
MI - 분 표시
SS - 초 표시
형 변환 함수 퀴즈 - 날짜 변환하기 1
Student 테이블의 bitrthday 칼럼을 사용하여 생일이 1월인 학생의 이름과 birthday 를 아래 화면과 같이 출력
SELECT studno,name,birthday
2 FROM student
3 WHERE TO_CHAR(birthday,'mm')=1;
형 변환 함수 퀴즈 - 날짜 변환하기 2
emp 테이블의 hiredate 칼럼을 사용하여 입사일이 1,2,3 월인 사람들의 사번과 이름, 입사일을 출력
SELECT empno,ename,hiredate
2 FROM emp
3 where TO_CHAR(hiredate,'mm') IN (1,2,3) ;
3. TO_CHAR 함수 (숫자형 -> 문자형으로 변환하기)
예1. emp 테이블을 조회하여 이름이 'ALLEN' 인 사원의 사번과 이름과 연봉을 출력하세요.
단 연봉은 (sal*12)+comm 로 계산하고 천 단위 구분기호로 표시하세요
예2. professor 테이블을 조회하여 201 번 학과에 근무하는 교수들의 이름과 급여, 보너스, 연봉을 출력
단 연봉은 (pay12)+bonus로 계산
형변환 함수 퀴즈 3
emp 테이블을 조회하여 comm 값을 가지고 있는 사람들의 empno, ename, hiredate, 총연봉, 15% 인상 후 연봉을 아래 화면처럼 출력, 단 총 연봉은 (sal*12)+comm 으로 계산. 15%인상은 총연봉의 15%인상 값
SELECT empno,ename,to_char(sysdate,'yy-mmdd') "HIREDATE",
2 TO_CHAR((sal*12)+comm,'$999,999') "SAL" ,
3 TO_CHAR(((sal*12)+comm)*0.15+(sal*12)+comm,'$999,999') "15% up"
4 FROM emp
5 WHERE comm is not null ;
4. TO_NUMBER 함수
숫자가 아닌 숫자처럼 생긴 문자를 숫자로 바꾸어 주는 함수
SELECT TO_NUMBER('5') FROM dual; = 5
5. TO_DATE 함수
날짜가 아닌 날짜처럼 생긴 문자를 날짜로 바꾸어 주는 함수
SELECT TO_DATE ('14-MAR-10') FROM dual ; = 14-MAR-10
'오라클 > SQL' 카테고리의 다른 글
복수행 함수 (그룹 함수) (1) | 2014.10.08 |
---|---|
sql 단일행 함수 - 정규식 (2) | 2014.10.01 |
sql 단일행 함수 - 일반 함수 (0) | 2014.09.30 |
sql 단일행 함수 - 날짜 함수 (0) | 2014.09.30 |
sql 단일행 함수 - 숫자함수 (0) | 2014.09.30 |
sql 단일행 함수 - 문자함수 (3) | 2014.09.29 |
sql select문 (0) | 2014.09.29 |