select_연산자_함수
select 필드1,필드2,.. <=컬럼(필드)선택
from 테이블(뷰)
where 조건절 <=행(레코드)선택
order by 필드 [asc | desc] <=정렬방식
--[연산자]-------
산술 : + - * /
관계 : > >= < <= =(같냐?) != <>(같지않냐?) not(부정)
논리 : A and B
A or B
기타 : 필드 between A and B <= A ~ B사이냐?
필드 in(A,B,C) <= 필드=A ro 필드=B or 필드=C
문자열 결합 : ||
문자열 유사검색 : 필드 like '%_'
_ : 문자 1자리
% : 모든
문자열 함수 : substr(문자열,시작,갯수)
1 2 3 4 5 6 7 8
select '우리나라대한민국' from dual;
시작,갯수
select substr('우리나라대한민국',5,2) from dual;
////////////////////////////////////////////////////////////////
--연산자 <=가상의 임시 테이블(dual)
-- heading(연산결과에 대한 필드명 부여)
-- 필드 as alias(별명)
-- 필드 alias(별명)
-- 필드 "escape문자포함"
select 1+1 as plus ,(2-1) minus1 from dual;
--사원테이블
select * from sawon;
select sabun,saname,deptno,sajob , sapay, sapay*0.1 bonus from sawon;
select saname || '님의 년봉은 ' || sapay || '입니다' as "년봉 설명" from sawon
select sabun 사번,saname 이름,deptno 부서번호,sajob 직위,
sahire 입사일자,sapay 년봉,samgr 부서장
from sawon
order by deptno ;
--사원테이블 10 부서 직원을 모두 추출
select * from sawon where deptno=10 ;
--사원테이블 남자 직원을 모두 추출
select * from sawon where sasex='남자';
--사원테이블 2000년이후 입사자를 추출 : 2000.1.1 00:00:00
--날짜 표현방법
select * from sawon where sahire >= '2000-1-1';
--입사일자 2000 ~ 2003년인 직원 추출
-- 2000.1.1 00:00:00 ~ 2003.12.31 23:59:59
-- '2003-12-31 00:00:00'
select * from sawon
where sahire>='2000-1-1' and sahire<'2004-1-1';
--날짜에서는 between사용하지 말것(왜? : date타입은 시간까지 고려)
select * from sawon
where sahire between '2000-1-1' and '2004-1-1';
--급여가 2000 ~ 3000사이인 직원 추출
select * from sawon
where sapay>=2000 and sapay<=3000 ;
select * from sawon
where sapay between 2000 and 3000 ;
--10번 부서에서 남자 직원중 직급이 사원을 추출
select * from sawon
where deptno=10 and sasex='남자' and sajob='사원';
--10,30번 부서직원 추출
select * from sawon
where deptno=10 or deptno=30 ;
select * from sawon
where deptno in(10,30) ;
--직급이 과장,대리,사원인 직원을 모두 추출
select * from sawon
where sajob='과장' or sajob='대리' or sajob='사원' ;
select * from sawon
where sajob in('과장','대리','사원') ;
--직급이 과장,대리,사원인 직원을 빼고 모두 추출
select * from sawon
where sajob not in('과장','대리','사원') ;
select * from sawon
where not( sajob='과장' or sajob='대리' or sajob='사원') ;
------[문자열 유사검색]---------------------------
-- 성씨가 '최'씨인 직원을 모두 추출
select * from sawon
where saname like '최%';
--이름중에 2번째 글자가 '미'인 직원을 추출
select * from sawon
where saname like '_미%';
--고객테이블 '서울'사는 고객을 추출
select * from gogek
where goaddr like '서울%';
--고객테이블에서 강서구 거주자 추출
select * from gogek
where goaddr like '%강서구%';
--고객테이블에서 여자만 추출
select * from gogek
where gojumin like '______-2%'
or
gojumin like '______-4%' ;
select * from gogek
where substr(gojumin,8,1) in('2','4');
--고객테이블에서 80년대 출생자 추출
select * from gogek
where gojumin like '8%';
select * from gogek
where substr(gojumin,1,1)='8' ;
--고객테이블에서 계울에 출생한 고객 추출
select * from gogek
where gojumin like '__01%' or
gojumin like '__02%' or
gojumin like '__12%' ;
select * from gogek
where substr(gojumin,3,2)='01' or
substr(gojumin,3,2)='02' or
substr(gojumin,3,2)='12' ;
select * from gogek
where substr(gojumin,3,2) in('01','02','12');
'Programming > Oracle' 카테고리의 다른 글
[7일차] Join (0) | 2013.08.29 |
---|---|
오라클에 JDBC 접근 가장 기초 틀 예문 (0) | 2013.08.28 |
[4일차-1] SubQuery(하위쿼리) (0) | 2013.08.27 |
[3일차] 제약조건 (0) | 2013.08.27 |
[2일차] 테이블생성 및 DML 기초 (0) | 2013.08.27 |