.dual
:가상테이블을 뜻합니다
두 쿼리문의 차이는 무엇일까요?
select 30*60
from dual;
select 30*60
from emp;
결과확인
.emp table
number(4,0) => 4는 4byte를 뜻합니다 오라클에서는 오직 number형으로만 사칙연산이 가능합니다
to_number() : 정수로 만들어주는 함수입니다
varchar2(7,2) => 2000byte를 담을수 잇습니다, (7,2) 7은 7자리를 뜻하면 2는 소수점 자리를 뜻합니다 7자리중 정수자
리는 나머지 5자리입니다
null => 아직 확정되지 않은 값을 뜻합니다
참고> 사칙연산 : 1년 연봉을 계산한다고 가정했을때 연산을 한다면
sal*12*comm을 사용한다면
다른 값은 문제가 되지 않지만 null을 사용한 값은 연산이 되지 않습니다
수정한다면 NVL을 사용하여
select
ename,
sal,
sal*12,
sal*12+NVL(comm,0) as "연봉"
from emp;
as(alias) : 표준 sql구약에 의하면 alias를 사용한다면 as를 항상 사용합니다 사용상의 차이는 없습니다
.distinct
:
select |
select from emp group by deptno; |
날짜형을 바꾸고 싶다면?
기존 날짜는 82/12/02로 출력됩니다
방법은 환경설정에 NLS를 수정하며 바꾸는 방법과
형변환을 시켜주는 방법이 있습니다
select
ename,
to_char(hiredate,'YYYY-MM-DD')
from emp;
하지만 쿼리문의 경우에는 테이블의 데이타가 100만건이면 100만건 형변환을 시켜주기 때문에 가장 좋은방법은
환경설정을 바꿔주거나 처음 만들때부터 원하는 날짜로 입력합니다
추가로 기본적으로 82/12/02로 보이지만
select
ename,hiredate
from emp
where hiredate >= '1982-01-01';
Wild Card(와일드카드)
: 문자를 대체 한다는 의미로 %, _ 사용하며 주로 like를 사용하여 문자를 검색하여 출력할때 사용합니다
A로 시작하는 이름을 검색하세요!
select
ename,
hiredate
from emp
where ename like 'A%';
3번째 문자가 R로 시작하는 이름을 검색하세요
where ename like '__R%';
in연산자
:
코드를 먼저 보자면
보너스가 300 500 1400 인사람을 검색한다면 select ename, hiredate, comm from emp where comm=300 or comm=500 or comm=1400; 이것을 in연산자로 사용하면 where comm in (300,500,1400); *단 같은 컬럼내에서만 가능합니다 |
is null / is not null
코드를 보자면
이것은 맞을까 틀릴까? where mgr = null; 정답은 틀렸습니다 null은 확정되지않은 값으로 비교연산을 수행 할 수 없습니다 null인지 아니지를 판단하기 위해서 사용하는 것이 is null / is not null 입니다 |
round / trunc
: 반올림과 버림입니다 사용방법은 간단합니다
반올림 |
버림 |
select round(45.193,2) from dual; |
select trunc(45.196,2) from dual; |
45.19 | 45.19 |
문제>사원번호가 홀수인 사원들의 이름을 출력하시오
보통 이렇게 많이 생각합니다 where (to_number(empno)%2) = 1; 하지만 실행되지 않습니다 수정한다면 아래와 같습니다 select empno, ename from emp where mod(empno,2) =1 ; |
'Daily Report' 카테고리의 다른 글
121010 Oracle 2차 기본정리(수정중) (0) | 2012.10.10 |
---|---|
121009 JAVA 오버로딩 부제:사과장수 (0) | 2012.10.09 |
120926 Oracle view의 분류(스칼라뷰,인라인뷰,서브쿼리), 분석함수(rank(),over()) (0) | 2012.09.26 |
120924 Oracle 하위질의01 (0) | 2012.09.24 |
120920 Oracle Join 예제(join의 4가지예) (0) | 2012.09.20 |