본문 바로가기

오답노트/DBMS

MySQL_서브쿼리(SubQuery) ,UPDATE,INSERT 연습문제

서브쿼리(SubQuery)

 

문제1. 사원명 'JONES'가 속한 부서명을 조회하시오. 
select DNAME
from dept
where DEPTNO =(select DEPTNO
                        from emp e
                        where ENAME = 'JONES') ;

 

 

문제2. 10번 부서에서 근무하는 사원의 이름과 10번 부서의 부서명을 조회하시오. 
select DNAME
from dept
where DEPTNO =(select DEPTNO
                        from emp e
                        where ENAME = 'JONES') ;

 

 

문제3. 평균 월급여보다 더 많은 월급여를 받은 사원의 사원번호, 이름, 월급여를 조회하시오.
select EMPNO , ENAME , SAL
from emp e
where sal > (select avg(SAL) from emp e) 

 

 

문제4. 부서번호가 10인 사원중에서 최대급여를 받는 사원과 동일한 급여를 받는 사원의 사원번호, 이름을 조회하시오
select EMPNO , ENAME
from emp e
where sal = (select max(sal)
                  from emp e
                   where DEPTNO = 10) 

 

INSERT

 

문제4. 부서번호가 10인 사원중에서 최대급여를 받는 사원과 동일한 급여를 받는 사원의 사원번호, 이름을 조회하시오
select EMPNO , ENAME
from emp e
where sal = (select max(sal)
                  from emp e
                   where DEPTNO = 10) 

 

 

UPDATE

 

문제1. 사원테이블에서 SMITH의 월급여를 2800으로 변경
update emp
set sal = 2800
where ename = 'smith'

 

=> UPDATE문에서 WHERE조건을 생략하면 해당 테이블에 존재하는 모든 레코드가 지정된 값으로 변경된다. 

 

 

문제2. 사원테이블에서 JONES의 월급여를 300만큼 인상하고 COMM은 500으로 변경
update EMP
set SAL = SAL + 300, COMM = 500
where ENAME = 'JONES'

 

=> UPDATE문은 연산 가능한 컬럼과 연산자가 결함된 형태가 가능하다. 즉, 변경할 컬럼의 데이터형식이 NUMBER형인 경우에 덧셈 연산자와 같은 연산자가 결합된 산술식의 형태가 있을 수 있다.