DML(조작어)
insert into 테이블명
[(컬럼)] values (내용)

update 테이블명
set 컬럼=내용
[where 조건]

delete [from] 테이블명 where 조건.
(실제 DB에서삭제는 commit을 통해완료됨.)

-- 개발부이거나 경리부이거나 지역이 미확정된 부서 삭ㄱ제
delete dept where dname in ('개발부','연구원') or loc is null

*.subquery(서브쿼리, 이너쿼리)
mainquery~~ ~(subqurey) ~~ ;
from 안에 들어가는 서버쿼리를 인라인뷰라고 부름.

-단일행부속질의
-복수행부속질의 : in, any, all, exists

--miller가 근무하는 부서의 사원명,부서번호 조회
select ename, deptno
from emp
where deptno in
(
select deptno
from emp
where ename='MILLER'
);

ENAME          DEPTNO
---------- ----------
CLARK              10
KING               10
MILLER             10

--7782 사원이 받는 급여이상을 받는 사원번호,사원명,급여,커미션 조회
 1  select empno, ename, sal, comm
 2  from emp
 3  where sal >= (
 4  select sal
 5  from emp
 6  where empno=7782
 7* )
 8  /

    EMPNO ENAME             SAL       COMM
--------- ---------- ---------- ----------
     7566 JONES            2975
     7698 BLAKE            2850
     7782 CLARK            2450
     7788 SCOTT            3000
     7839 KING             5000
     7902 FORD             3000

-- MANAGER일을 하는 사원들의 평균급여보다 많이받는 모든정보조회

  1  select *
  2  from emp
  3  where sal>=
  4  (
  5  select avg(sal)
  6  from emp
  7  group by job
  8  having job='MANAGER'
  9* )
SQL> /

     EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
      7566 JONES      MANAGER         7839 81/04/02       2975                    20
      7698 BLAKE      MANAGER         7839 81/05/01       2850                    30
      7788 SCOTT      ANALYST         7566 82/12/09       3000                    20
      7839 KING       PRESIDENT            81/11/17       5000                    10
      7902 FORD       ANALYST         7566 81/12/03       3000                    20

*.서브쿼리 연산자
- in : 나열된 조건과 같은것.
- all : 조건의 모든결과일치
- any/some : 조건 하나이상 조건 만족.
- exists : 하나라도 값이 있는지.

-- MANAGER일을 하는 사원들의 급여보다 많이받는 모든정보조회
 select *
 from emp
 where sal>any
 (
 select sal
 from emp
 where job='MANAGER'
 )
 /

 EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM     DEPTNO
------ ---------- --------- ---------- -------- ---------- ---------- ----------
  7566 JONES      MANAGER         7839 81/04/02       2975                    20
  7698 BLAKE      MANAGER         7839 81/05/01       2850                    30
  7788 SCOTT      ANALYST         7566 82/12/09       3000                    20
  7839 KING       PRESIDENT            81/11/17       5000                    10
  7902 FORD       ANALYST         7566 81/12/03       3000                    20


-- 7698사원 밑에서 일하는 사원번호,사원명,부서번호,부서명 조회

  select e.empno, e.ename, e.deptno, d.dname
  from emp e join dept d on e.deptno=d.deptno and e.mgr=7698
> /

  EMPNO ENAME          DEPTNO DNAME
------- ---------- ---------- --------------
   7499 ALLEN              30 SALES
   7521 WARD               30 SALES
   7654 MARTIN             30 SALES
   7844 TURNER             30 SALES
   7900 JAMES              30 SALES

select e.empno, e.ename, e.deptno, d.dname
from emp e, dept d
where e.empno in
(
select empno
from emp
where mgr=7698
)
and e.deptno=d.deptno

--------------
research 부서의 근무하는 모든 사원정보 조회
select e.*
from emp e join dept d on e.deptno=d.deptno and d.dname='RESEARCH'

select e.*
from emp e
where deptno in
(
select deptno
from dept d
where d.dname='RESEARCH'
)/

Posted by 말없제이
,