BETWEEN ~ AND (이상 ~ 이하 )
하나의 컴럼의 값이 범위 내에 속하는지 알아보기 위한 연산자이다.
숫자형, 문자형, 날자형에 사용가능하다.
(예) 급여가 2000-3000 사이의 사원을 검색하는 쿼리문
>> select * from emp where sal between 2000 and 3000 ;
(Q1) 1987년도에 입사한 사원들을 출력하시오
>> select * from emp where hiredate between '1987/01/01' and '1987/12/31';
IN
(Q1) 커미션이 300 혹인 500 혹은 1400인 사원이 있는지 검색하시오
>> select* from emp where comm in(300,500,1400);
(Q2)커미션이 300 혹인 500 혹은 1400인 사원이 있는지 검색하시오
>> select* from emp where nvl(comm,0) not in (300,500,1400) ;
>>select* from emp where not nvl(comm,0) in (300,500,1400) ;
comm이 null이면 0을 넣고나서 where를 연산하는 느낌
(Q2)사원번호가 7521도 아니고 7654도 아니고 7844도 아닌 사원을 검색(2가지 방법)
>> select * from emp where empno not in (7521,7654,7844);
(Q3)사원이름이 FORD인 사람의 이름, 월급, 입사일 출력
>> select ename,sal,hiredate from emp where ename ='FORD';
와일드 카드
% | 문자가 없거나 하나이상의 문자에 어떤 문자가 와도 상관이 없다. |
_ | 하나의 문자에 어떤 값이 와도 상관이 없다. |
와일드카드는 like와 함께 사용한다.
like 연산자는 검색하려는 값을 정확히 모를 경우에도 검색 할 수 있도록 와일드 카드와 함께 사용하여 결과를 얻는다.
(Q) 이름의 마지막 글자가 'n' 인 사원들을 출력하시오
>> select * from emp where ename like '%N' ;
(Q) 이름의 첫번째 글자가 't' 인 사원의 이름과 월급, 부서 번호를 출력하시오.
>>select ename, sal,deptno from emp where ename like 'T%';
(Q) 이름에 'A'을 갖고 있는 사원들을 출력하시오.
>> select * from emp where ename like '%A%' ;
(Q)이름이 5글자인 사원 출력
>> select * from emp where ename like '_____' ;
(Q) 이름의 3번째 글자가 R이고 부서 번호가 30 인 사람을 출력하시오.
>> select * from emp where ename like '__R%' and deptno ='30';
(Q) 입사일이 '81/04/02' 인 사원의 월급을 500원 인상하세요.
>> select ename "이름", sal "월급",sal+500 "인상된 월급" from emp where hiredate ='81-04-02';
select * from emp where ename lije '%\%%' : 이름에 %가 들어가는 사람을 찾는다.
(Q) 커미션을 받지 않는 사원들을 출력 하세요.
>> select* from emp where comm is null ;
NULL
0이 아님
빈공간이 아님
미확정(해당사항 없음) 알수 없는 값을 의미
어떤값인지 알 수는 없지만 값은 존재함
? 혹은 00을 의미
연산, 할당, 비교 불가
오라클에서는 컬럼에 널 값이 저장되는 것을 허용한다.
is null / in not null
임의의 컬럼이 null 인지 아닌지를 비교 검색한다.
특정 컬럼 값이 null 값인지를 비교할 경우 is 연산자를 이용
concatenation 연산자 사용
: select 다음에 2개 이상의 컬럼이 올 경우 이들을 ',' 로 연결하지만 영어 문장 처럼 보이게 하기 위해
concatenation 연산자를 사용한다. ||
select ename || 'is a' || job from emp ;
(Q) 상관이 없는 사원을 출력하시오
>>select * from emp where mgr is null ;
DISTINCT
: 동일한 값들이 중복되어 출력되지 않도록 하기 위해 사용하는 키워드
(Q) select distinct deptno from emp ;
select distinct job from emp ; : emp 테이블에서 직급이 중복되어 출력 되지 않는 결과를 출력
(Q) emp 테이블에서 보너스를 받는 사원 중에 500과 1400이 아닌 사원들의 이름과 보너스 금액을 출력하시요
>>select ename , comm from emp where NVL(comm,0) not in (500,1400) ;
(Q) 30번 부서의 사원들의 연봉을 20% 인상한 후 이름 , 부서번호, 월급, 연봉 순으로 출력하세요
>> select ename "이름",deptno "부서번호 ",sal "월급", (sal*12)*1.2 "인상된 연봉" from emp where deptno =30;
'KH > Oracle' 카테고리의 다른 글
# 6 오라클 숫자, 문자 함수 (0) | 2022.08.24 |
---|---|
# 5 DUAL 테이블 (0) | 2022.08.24 |
# 4 데이터 타입 ,ORDER BY(정렬) (0) | 2022.08.23 |
# 2 비교연산자, 논리연산자 (0) | 2022.08.22 |
# 1 오라클의 데이터형과 몇가지 명령어들 (0) | 2022.08.22 |