DataBase

조건문,논리연산자 쿼리 연습

풀스택 개발자 2020. 7. 6. 02:54

조건문 연습

 

--근무 부서가 10인 전 사원정보를 가져와라
select * from emp where deptno=10;

--근무 부서가 10이 아닌 전 사원정보를 가져와라
select * from emp where deptno <> 10;

-- 1982년 1월 1일 이후에 입사한 전 사원정보를 가져와라
select * from emp where hiredate > '1982/1/1';

 

논리 연산자(여러 조건식을 묶어서 하나의 조건식으로 만듬)

 

--입사년도가 1981년인 사원중에 급여가 1500이상인 사원의 모든 정보를 가져온다.

select * from emp where hiredate >= '1981/01/01' and hiredate <= '1981/12/31' and sal > 1500;

select * from emp where hiredate between '1981/01/01' and '1981/12/31' and sal > 1500;

 

--20번 부서에 근무하고 있는 사원 중에 급여가 1500이상인 사원의 모든 정보를 가져온다

select * from emp where deptno=20 and sal >= 1500

 

--급여가 2000보다 크거나 1000보다 작은 사원의 모든 정보를 가져온다
select * from emp where sal>2000 or sal<1000;

select * from emp where not(sal<=2000 and sal>=1000);

select * from emp where not(sal between 1000 and 2000);

 

--직무가 clerk, salesman, analyst 인 사원은 모든 정보를 가져온다
select * from emp where job='CLERK' or job='SALESMAN' or job='ANALYST';

select * from emp where job in('CLERK','SALESMAN','ANALYST');

 

--사원 번호가 7899,7566,7839가 아닌 사원들의 사원번호, 이름을 가져온다
select empno,ename from emp where empno <> '7899' and empno <> '7566' and empno <> '7839';  7988가 아닌거 7566가 아닌거 7839가 아닌거

select empno,ename from emp where not(empno='7899' or empno='7566' or empno='7839'); 7899이거나 7566이거나 7839인게 아닌것

select empno,ename from emp where not empno in('7899','7566','7839');

 

LIKE

 

-- 이름이 F로 시작하는 사원의 이름과 사원 번호를 가져온다
select ename,empno from emp where ename like 'F%';

-- 이름이 S로 끝나는 사원의 이름과 사원 번호를 가져온다.
select ename, empno from emp where ename like '%S';

-- 이름에 A가 포함되어 있는 사원의 이름과 사원 번호를 가져온다.
select ename,empno from emp where ename like '%A%';

-- 이름의 두번째 글자가 A인 사원의 사원 이름, 사원 번호를 가져온다. (_ 한글자를 의미)
select ename, empno from emp where ename like '_A%';

-- 이름의 두번째 글자가 A이고 이름에 알파벳이 총 4개인 사원의 사원 이름,사원 번호를 가져온다
select ename, empno from emp where ename like '_A__';

 

-- 이름이 4글자인 사원의 사원 이름, 사원 번호를 가져온다.
select ename,empno from emp where ename like '____';

 

정리

1.like 연산자를 사용하면 문자열에 대한 다양한 비교연산이 가능하다

2.'_' 문자 하나를 의미