SlideShare a Scribd company logo
SQL기초강좌
변환함수_2
(Conversion Function)
SQL기초강좌_변환함수
변환함수
변환함수는 숫자, 문자, 날짜 형 사이의 변환을 수행하는 함수이다. 여러 종류가 있지
만 자주 사용되는 변환 함수 몇 가지에 대해 알아보자.
- CHARTOROWID(char) :
VARCHAR2 또는 CHAR Type을 ROWID Type으로 변환 한다.
- TO_CHAR(datetime|number [,fmt]) :
숫자나 날짜형 자료를 fmt 형식에 맞춰 문자로 변환 한다.
- TO_DATE(char, [,fmt]) :
fmt 형식의 문자를 Date값으로 변환 한다.
- TO_NUMBER(char [,fmt]) :
숫자형태의 문자 char를 숫자로 변환 한다.
--아래 예문은 Format 문자를 사용하는 예이다.
SQL> select to_char(sysdate, 'YEAR MONTH DD DAY HH24:MI:SS') from dual;
TO_CHAR(SYSDATE,'YEARMONTHDDDAYHH24:MI:SS')
-----------------------------------------------------------------------
TWENTY FOURTEEN 9월 07 일요일 16:30:29
-- 문자열 그대로 출력을 원한다면 “”로 싸 주면 된다.
SQL> select ename, sal, to_char(hiredate, 'mon "the" ddth "of" yyyy') hiredate
2 from emp;
ENAME SAL HIREDATE
---------- ---------- -------------------------
SMITH 800 12월 the 17th of 1980
ALLEN 1600 2월 the 20th of 1981
WARD 1250 2월 the 22nd of 1981
JONES 2975 4월 the 02nd of 1981
MARTIN 1250 9월 the 28th of 1981
SQL기초강좌_변환함수
SQL> select ename, hiredate from emp
2 where hiredate = to_date('12월 17 80','month dd rr');
ENAME HIREDATE
---------- --------
SMITH 80/12/17
SQL> select ename, hiredate from emp
2 where hiredate = to_date('12월 17 80','month dd yy');
선택된 레코드가 없습니다.
-- 아래에서 YY와 RR 포맷의 차이에 대해 이해하자.
-- RR포맷은 오라클에서 Y2K 해결을 위해 도입했는데,
-- 현재년도가 2000~2049년 경우 처리연도가 00~49인 경우의 예를 들면…
-- YY포맷은 2000~2049로 인식하고 RR포맷 역시 2000~2049로 인식한다.
-- 현재년도가 2000~2049년인경우 처리연도가 50~99인 경우의 예를 들면…
-- YY포맷은 2050~2099로 인식하고 RR포맷은 1950~1999로 인식한다.
SQL기초강좌_변환함수
SQL> select to_date('12월 17 80','month dd yy') from dual;
TO_DATE(
--------
80/12/17
SQL> select to_date('12월 17 80','month dd rr') from dual;
TO_DATE(
--------
80/12/17
SQL> SELECT TO_CHAR(TO_DATE('99/01/01','RR/MM/DD'),'YYYY.MM.DD') FROM DUAL;
TO_CHAR(TO
----------
1999.01.01
SQL> SELECT TO_CHAR(TO_DATE('99/01/01','YY/MM/DD'),'YYYY.MM.DD') FROM DUAL;
TO_CHAR(TO
----------
2099.01.01
SQL기초강좌_변환함수
SQL기초강좌_변환함수
변환함수
묵시적 형 변환
WHERE절 등에서 비교 타입이 다른 경우 내부적으로 타입 변환을 한다.
WHERE절에 숫자 = 문자 와 같은 비교연산을 수행 시 내부적으로 숫자를 기준으로
묵시적 변환을 시도한다.
SQL> desc myemp1
이름 널? 유형
------------------------------- -------- ---------------
EMPNO NOT NULL NUMBER
ENAME VARCHAR2(100)
DEPTNO VARCHAR2(1)
ADDR VARCHAR2(100)
SAL NUMBER
SUNGBYUL VARCHAR2(1)
--empno는 primary key 인덱스, deptno에도 인덱스가 생성되어 있다.
--WHERE절의 비교대상 칼럼의 데이터 타입이 “숫자=문자” 와 같이 다르면 숫자로 자
동 형 변환된다. Deptno 칼럼의 데이터타입은 VARCHAR2 이다. “where deptno = 숫
자”의 경우 deptno 칼럼을 숫자로 변환을 하게 되므로 인덱스가 있더라도 사용이 안
된다.(인덱스 칼럼에 변형이 생김으로 인덱스 사용불가)
SQL> desc myemp1
이름 널? 유형
----------------------------------------- -------- ----------------------------
EMPNO NOT NULL NUMBER
ENAME VARCHAR2(100)
DEPTNO VARCHAR2(1)
ADDR VARCHAR2(100)
SAL NUMBER
SUNGBYUL VARCHAR2(1)
HIREDATE DATE
OUTDATE VARCHAR2(8)
SQL기초강좌_변환함수
-- SQL문의 실행 시간을 표시
SQL> set timing on
SQL> select count(*) from myemp1;
COUNT(*)
----------
20000004
경 과: 00:00:06.93
-- deptno 칼럼에 인덱스를 생성하자.
SQL> create index idx_myemp1_deptno on myemp1(deptno);
인덱스가 생성되었습니다.
SQL기초강좌_변환함수
-- deptno 칼럼이 VARCHAR2이므로 인덱스를 이용하여 결과가 빨리 나온다.
SQL> select count(*) from myemp1
2 where deptno = '3';
COUNT(*)
----------
5000001
경 과: 00:00:00.35
-- 묵시적으로 deptno칼럼을 숫자로 변환하므로 인덱스 이용불가, 느리다.
SQL> select count(*) from myemp1
2 where deptno = 3;
COUNT(*)
----------
5000001
경 과: 00:00:22.42
SQL기초강좌_변환함수
-- 결국 위 쿼리는 아래와 같은 변환을 하는 것이다.
SQL> select count(*) from myemp1
2 where to_number(deptno) = 3;
COUNT(*)
----------
5000001
경 과: 00:00:23.10
SQL기초강좌_변환함수

More Related Content

More from 탑크리에듀(구로디지털단지역3번출구 2분거리)

자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[IT교육/IT학원]Develope를 위한 IT실무교육
[IT교육/IT학원]Develope를 위한 IT실무교육[IT교육/IT학원]Develope를 위한 IT실무교육
[IT교육/IT학원]Develope를 위한 IT실무교육
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios 3.3.5 추가적인 사항
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios  3.3.5 추가적인 사항[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios  3.3.5 추가적인 사항
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios 3.3.5 추가적인 사항
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
탑크리에듀(구로디지털단지역3번출구 2분거리)
 

More from 탑크리에듀(구로디지털단지역3번출구 2분거리) (20)

자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
 
[IT교육/IT학원]Develope를 위한 IT실무교육
[IT교육/IT학원]Develope를 위한 IT실무교육[IT교육/IT학원]Develope를 위한 IT실무교육
[IT교육/IT학원]Develope를 위한 IT실무교육
 
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
 
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
 
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
 
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
 
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
 
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
 
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
 
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios 3.3.5 추가적인 사항
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios  3.3.5 추가적인 사항[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios  3.3.5 추가적인 사항
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios 3.3.5 추가적인 사항
 
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
 
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
 
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
 
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
 
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
 
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
 
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
 
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
 

변환함수(2)

  • 2. SQL기초강좌_변환함수 변환함수 변환함수는 숫자, 문자, 날짜 형 사이의 변환을 수행하는 함수이다. 여러 종류가 있지 만 자주 사용되는 변환 함수 몇 가지에 대해 알아보자. - CHARTOROWID(char) : VARCHAR2 또는 CHAR Type을 ROWID Type으로 변환 한다. - TO_CHAR(datetime|number [,fmt]) : 숫자나 날짜형 자료를 fmt 형식에 맞춰 문자로 변환 한다. - TO_DATE(char, [,fmt]) : fmt 형식의 문자를 Date값으로 변환 한다. - TO_NUMBER(char [,fmt]) : 숫자형태의 문자 char를 숫자로 변환 한다.
  • 3. --아래 예문은 Format 문자를 사용하는 예이다. SQL> select to_char(sysdate, 'YEAR MONTH DD DAY HH24:MI:SS') from dual; TO_CHAR(SYSDATE,'YEARMONTHDDDAYHH24:MI:SS') ----------------------------------------------------------------------- TWENTY FOURTEEN 9월 07 일요일 16:30:29 -- 문자열 그대로 출력을 원한다면 “”로 싸 주면 된다. SQL> select ename, sal, to_char(hiredate, 'mon "the" ddth "of" yyyy') hiredate 2 from emp; ENAME SAL HIREDATE ---------- ---------- ------------------------- SMITH 800 12월 the 17th of 1980 ALLEN 1600 2월 the 20th of 1981 WARD 1250 2월 the 22nd of 1981 JONES 2975 4월 the 02nd of 1981 MARTIN 1250 9월 the 28th of 1981 SQL기초강좌_변환함수
  • 4. SQL> select ename, hiredate from emp 2 where hiredate = to_date('12월 17 80','month dd rr'); ENAME HIREDATE ---------- -------- SMITH 80/12/17 SQL> select ename, hiredate from emp 2 where hiredate = to_date('12월 17 80','month dd yy'); 선택된 레코드가 없습니다. -- 아래에서 YY와 RR 포맷의 차이에 대해 이해하자. -- RR포맷은 오라클에서 Y2K 해결을 위해 도입했는데, -- 현재년도가 2000~2049년 경우 처리연도가 00~49인 경우의 예를 들면… -- YY포맷은 2000~2049로 인식하고 RR포맷 역시 2000~2049로 인식한다. -- 현재년도가 2000~2049년인경우 처리연도가 50~99인 경우의 예를 들면… -- YY포맷은 2050~2099로 인식하고 RR포맷은 1950~1999로 인식한다. SQL기초강좌_변환함수
  • 5. SQL> select to_date('12월 17 80','month dd yy') from dual; TO_DATE( -------- 80/12/17 SQL> select to_date('12월 17 80','month dd rr') from dual; TO_DATE( -------- 80/12/17 SQL> SELECT TO_CHAR(TO_DATE('99/01/01','RR/MM/DD'),'YYYY.MM.DD') FROM DUAL; TO_CHAR(TO ---------- 1999.01.01 SQL> SELECT TO_CHAR(TO_DATE('99/01/01','YY/MM/DD'),'YYYY.MM.DD') FROM DUAL; TO_CHAR(TO ---------- 2099.01.01 SQL기초강좌_변환함수
  • 6. SQL기초강좌_변환함수 변환함수 묵시적 형 변환 WHERE절 등에서 비교 타입이 다른 경우 내부적으로 타입 변환을 한다. WHERE절에 숫자 = 문자 와 같은 비교연산을 수행 시 내부적으로 숫자를 기준으로 묵시적 변환을 시도한다. SQL> desc myemp1 이름 널? 유형 ------------------------------- -------- --------------- EMPNO NOT NULL NUMBER ENAME VARCHAR2(100) DEPTNO VARCHAR2(1) ADDR VARCHAR2(100) SAL NUMBER SUNGBYUL VARCHAR2(1)
  • 7. --empno는 primary key 인덱스, deptno에도 인덱스가 생성되어 있다. --WHERE절의 비교대상 칼럼의 데이터 타입이 “숫자=문자” 와 같이 다르면 숫자로 자 동 형 변환된다. Deptno 칼럼의 데이터타입은 VARCHAR2 이다. “where deptno = 숫 자”의 경우 deptno 칼럼을 숫자로 변환을 하게 되므로 인덱스가 있더라도 사용이 안 된다.(인덱스 칼럼에 변형이 생김으로 인덱스 사용불가) SQL> desc myemp1 이름 널? 유형 ----------------------------------------- -------- ---------------------------- EMPNO NOT NULL NUMBER ENAME VARCHAR2(100) DEPTNO VARCHAR2(1) ADDR VARCHAR2(100) SAL NUMBER SUNGBYUL VARCHAR2(1) HIREDATE DATE OUTDATE VARCHAR2(8) SQL기초강좌_변환함수
  • 8. -- SQL문의 실행 시간을 표시 SQL> set timing on SQL> select count(*) from myemp1; COUNT(*) ---------- 20000004 경 과: 00:00:06.93 -- deptno 칼럼에 인덱스를 생성하자. SQL> create index idx_myemp1_deptno on myemp1(deptno); 인덱스가 생성되었습니다. SQL기초강좌_변환함수
  • 9. -- deptno 칼럼이 VARCHAR2이므로 인덱스를 이용하여 결과가 빨리 나온다. SQL> select count(*) from myemp1 2 where deptno = '3'; COUNT(*) ---------- 5000001 경 과: 00:00:00.35 -- 묵시적으로 deptno칼럼을 숫자로 변환하므로 인덱스 이용불가, 느리다. SQL> select count(*) from myemp1 2 where deptno = 3; COUNT(*) ---------- 5000001 경 과: 00:00:22.42 SQL기초강좌_변환함수
  • 10. -- 결국 위 쿼리는 아래와 같은 변환을 하는 것이다. SQL> select count(*) from myemp1 2 where to_number(deptno) = 3; COUNT(*) ---------- 5000001 경 과: 00:00:23.10 SQL기초강좌_변환함수