데이터 입력

 

*개요

-테이블에 데이터를 입력하기 위한 명령인 INSERT 명령문 사용

-데이터 입력 방법

  。단일 행 입력 : 한번에 하나의 행을 테이블에 입력하는 방법

  。다중 행 입력 : 서브쿼리를 이용하여 한번에 여러 행을 동시에 입력하는 방법

 

 

 

데이터 조작어

 

*데이터 조작어(DML:Data Manpulation Language)란?

-테이블에 새로운 데이터를 입력하거나 기존 데이터를 수정 또는 삭제하기 위한 명령어

 

*종류

-INSERT : 새로운 데이터 입력 명령어

-UPDATE : 기존 데이터 수정 명령어

-DELETE : 기존 데이터 삭제 명령어

-MERGE : 두개의 테이블을 하나의 테이블로 병합하는 명령어

 

*트랜잭션

-여러 개의 명령문을 하나의 논리적인 작업단위로 처리하는 기능

-트랜잭셔 관리 명령어

  。COMMIT : 트랜잭션의 정상적인 종료를 위한 명령어

  。ROLLBACK : 트랜잭션의 비정상적인 중단을 위한 명령어

 

 

Scalar Subquery

 

4) CASE 수식에서의 Scalar Subquery

SELECT employee_id, last_name,

        (CASE

           WEHN department_id IN

                       (SELECT department_id FROM departments

                       WHERE location_id = 1800)

                  THEN 'Canada' ELSE 'other'

           END) location

       FROM employees

 

5) 함수에서의 Scalar Subquery

SELECT last_name, SUBSTR (

        (SELECT department_name

         FROM departments d

         WHERE d.department_id = e.department_id),

                     1, 10) department

    FROM employees e;  

 

 

 

Scalar Subquery

 

2)Where 절에서의 Scalar Subquery

SELECT employee_id, last_name

   FROM employees e

  WHERE ( ( SELECT location_id

                      FROM departments d

                    WHERE e.department_id = d.dapartment_id)

                    =

                  ( SELECT location_id

                    FROM locations I

                   WHERE STATE_province = 'California')

          )

 

3) Order By 절에서의 Scalar Subquery

SELECT employee_id, last_name

  FROM employees e

ORDER BY (

     SELECT department_name

     FROM departments d

     WHERE e.department_id = d.department_id

   )

 

 

Scalar Subquery

 

1) Select List에서의 Scalar Subquery

 

SELECT employee_id, last_name,

               (

                 SELECT department_name

                 FROM departments d

                WHERE e.department_id = d.department_id

                 ) department_name

  FROM employees e

ORDER BY department

 

'오라클 > Oracle,SQL' 카테고리의 다른 글

오라클공부 398. Scalar Subquery  (0) 2015.11.05
오라클공부 397. Scalar Subquery  (0) 2015.11.05
오라클공부 395. Scalar Subquery  (0) 2015.11.05
오라클공부 394. 실습  (0) 2015.11.05
오라클공부 393. 실습  (0) 2015.11.05

Scalar Subquery

 

*SQL:1999 Scalar Subquery

 

-Scalar Subquery는 질의 수식으로부터 유도된 Scalar 값 지정하기 위해 사용

-Oracle8i 에서는 다음과 같이 제한된 경우에만 지원

 

-Oracle9i에서 Scalar 서브 쿼리는 유효한 수식이 쓰일 수 있는 모든 곳에서 사용 가능

-Scalar Subquery는 오직 하나의 값만 반환

-반환되는 값의 데이터 형은 서브 쿼리에서 선택된 데이터 형과 일치

-소량의 데이터의 경우에는 효과적이나 대량의 데이터의 경우 성능 저하 가능

-Scalar Subquery의 사용

 

 

실습

 

*부서 번호와 급여가 보너스를 받는 어떤 사원의 부서 번호와 급여에 일치하는 사원의 이름, 부서 번호 그리고 급여를 디스플레이하라.

 

SQL> SELECT ename, deptno, sal

    2 FROM emp

    3 WHERE(deptno, sal) IN

    4                           (SELECT deptno, sal

    5                           FROM emp

    6                           WEHRE comm IS NOT NULL);

 

 

실습

 

*Blake와 같은 부서에 있는 모든 사원에 대해서 사원 이름과 입사일을 디스플레이하라.

SQL> SELECT ename, hiredate

      2   FROM emp

      3   WHERE deptno = (SELECT deptno

      4                                     FROM emp

      5                                     WHERE INITCAP(ename) = 'Blake');

 

*평균 급여 이상을 받는 모든 사원에 대해서 사원 번호와 이름을 디스플레이하는 질의문을 생성하라. 단 출력은 급여 내림차순 정렬하라.

SQL> SELECT empno, ename, sal

      2    FROM emp

      3    WHERE sal > (SELECT AVG(sal)

      4                                        FROM  emp)

      5    ORDER BY sal desc; 

 

 

 

 

+ Recent posts