서브쿼리를 이용한 데이터 수정

 

*서브쿼리를 이용한 데이터 수정 개요

-UPDATE 명령문의 SET 절에서 서브쿼리를 이용

-다른 테이블에 저장된 데이터 검색하여 한꺼번에 여러 칼럼수정

-SET 절의 칼럼 이름은 서브쿼리의 칼럼 이름과 달라도 됨

-데이터 타입과 칼럼 수는 반드시 일치

 

*사용법

UPDATE table1

SET  (column1, column2, ...)=(SELECT s_column1, s_column2, ...

                                           FROM table2

                                           [WHERE condition2])

[WHERE condition1];

 

 

 

데이터 수정 예

 

*사용 예

-교수 번호가 9903인 교수의 현재 직급을 '부교수'로 수정하여라.

 

 

 

데이터 수정

 

*데이터 수정 개요

-UPDATE 명령문은 테이블에 저장된 데이터 수정을 위한 조작어

-WHERE 절을 생략하면 테이블의 모든 행을 수정

 

*사용법

UPDATE table

SET   column=value [, column=value, ...]

[WHERE  condition];

 

-WHERE 절을 생략하면 테이블의 모든 행을 수정

-Condition : 칼럼이름, 표현식, 상수, 서브쿼리, 비교 연산자

 

 

다중 행 입력 - PIVOTING INSERT 

 

 

 

 

다중 행 입력 - PIVOTING INSERT

 

*사용 예

- PIVOTING INSERT 명령문을 사용하여 SALES 테이블의 요일별 데이터를 통합하여 SALES_DATE 테이블에 하나의 행으로 입력하여라.

 

SQL> INSERT ALL

   2     INTO      sales_data VALUES(sales_no, '1', sales_mon)

   3     INTO      sales_data VALUES(sales_no, '2', sales_tue)

   4     INTO      sales_data VALUES(sales_no, '3', sales_wed)

   5     INTO      sales_data VALUES(sales_no, '4', sales_thu)

   6     INTO     sales_data VALUES(sales_no, '5', sales_fri)

   7     SELECT sales_no, week_no, sales_mon, sales_tue, sales_wed,

   8                  sales_thu, sales_fri

   9     FROM    sales;

 

10 개의 행이 만들어졌습니다.

 

 

다중 행 입력 - PIVOTING INSERT

 

*사용 예

-PIVOTING INSERT를 실습하기 위한 예제 테이블

SQL> CREATE TABLE sales (

   2     sales_no    number(4),

   3     week_no     number(2),

   4     sales_mon  number(7,2),

   5     sales_tue    number(7,2),

   6     sales_wed  number(7,2),

   7     sales_thu    number(7,2),

   8     sales_fri      number(7,2));

 

테이블이 생성되었습니다.

 

SQL> INSERT INTO sales VALUES(1101, 4, 100, 150, 80, 60, 120);

 

1 개의 행이 만들어졌습니다.

 

SQL> INSERT INTO sales VALUES(1102, 5, 300, 230, 120, 150);

 

1 개의 행이 만들어졌습니다.

 

SQL> CREATE TABLE sales_data (

   2     sale_no     number(4),

   3     week_no    number(2),

   4     day_no      number(2),

   5     sales        number(7,2)); 

 

 

 

 

 

다중 행 입력 - PIVOTING INSERT

 

*PIVOTING INSERT 명령문

 

-OLTP(OnLine Transaction Processing) 업무에서 사용되는 데이터를 데이터웨어하우스 업무에서 사용되는 분석용 데이터로 변환하는 경우에 유용

-하나의 행을 여러 개의 행으로 나누어서 입력하는 기능

-Unconditional INSERT ALL 명령문과 거의 동일

-INTO 절에서 하나의 테이블만 지정

-예를 들면, 5개의 칼럼으로 구성된 요일별 판매 실적 데이터를 하나의 칼럼으로 통합할 때 하나의 칼럼으로 통합된 판매 데이트의 요일을 구분하기 위하여 요일 구분 칼럼을 추가

 

 

다중 행 입력 - Conditional-First INSERT 예 

 

 

 

 

 

+ Recent posts