0
 45   5   1
  View Articles

Name  
   손병목  (2002-05-05 18:22:36, Hit : 17104, Vote : 1632)
Homepage  
   http://www.itmembers.net
Subject  
   DML(Data Manipulation Language) - INSERT
지난 시간에 UPDATE 문에 대해 알아보았습니다.
이번 시간에도 역시 DML의 하나인 INSERT 문에 대해 알아보기로 하겠습니다.



  1. INSERT문의 형식과 특징

    INSERT INTO table_name (column_one, column_two, …)
            VALUES (expression_one, expression_two,…);

    • INTO 다음에 오는 테이블에 VALUE의 값을 삽입하는 역할을 합니다.
      이때 INTO 절 다음에 기술하는 column명은 생략할 수 있습니다.
    • VALUES 절에는 상수(CONSTANT) 값, 널(NULL) 값, SYSDATE 등을 쓸 수 있습니다.




    위와 같은 CUSTOMER 테이블에 노란 색 부분('104', '윤지수', 등록날짜)의 데이터를 삽입하려면 다음과 같이 씁니다.

    INSERT INTO CUSTOMER ( CUST_NO, NAME, MILEAGE, CODE, REG_DATE)
            VALUES ('104', '윤지수', NULL, NULL, SYSDATE);

    여기서 주의할 것은 MILEAGE와 CODE에는 아무 값도 넣지 않았습니다. 이럴 때 NULL을 사용합니다.
    그리고 REG_DATE에는 위의 데이터를 입력한 날짜를 집어넣기 위해 SYSDATE를 사용하였습니다.

  2. INSERT 문에서 SUBSELECT 사용

    위의 예는 데이터를 직접 입력할 경우에 해당되는 것입니다.
    만약 데이터를 입력받을 테이블이 있을 경우 이 테이블의 어떤 값을 다른 테이블로 입력할 경우에는 어떻게 할까요?
    바로 VALUE 절에 SELECT 문을 이용하여 조건에 맞는 데이터를 골라 다른 테이블에 직접 입력할 수도 있습니다.
    이 경우 두 테이블의 칼럼 형식은 같아야 되겠죠.

    자, 그럼 아래 COSTOMER 테이블에서 마일리지(MILEAGE)가 10,000 이상인 고객 정보를 VIP 테이블에 입력하려면 어떻게 할까요?





    INSERT INTO VIP
            SELECT *
            FROM CUSTOMER
            WHERE MILEAGE >= 10000
    ;



    여기서 주의해야할 것은,
    • SUBSELECT 문의 WHERE 절을 생략하면 테이블의 모든 데이터가 백업됩니다.(일부러 데이터를 백업할 때 이런 식으로 사용합니다.)
    • INSERT 문에서 SUBSELECT를 쓸 경우 VALUES와 ( )를 사용할 수 없습니다.


이상 동주 아빠 손병목이었습니다.

Prev
   DML(Data Manipulation Language) - DELETE

손병목
Next
   DML(Data Manipulation Language) - UPDATE

손병목


Copyright 1999-2021 Zeroboard / skin by Zetyx