[ INSERT 문 ]
1 건의 데이터 또는 Select 한 결과를 테이블에 추가하기 위한 명령문

Syntax1
INSERT [ INTO ] [ owner.]테이블명 [ ( 컬럼명, ... ) ]
[ ON EXISTING { ERROR | SKIP | UPDATE } ]
VALUES ( expression | DEFAULT, ... )

Syntax2
INSERT [ INTO ] [ owner.]테이블명 [ ( 컬럼명, ... ) ]
[ ON EXISTING { ERROR | SKIP | UPDATE  } ]
[ WITH AUTO NAME ]
select-문

* on EXISTING 절
  - 데이터 추가시 중복된 데이터가  존재하는 경우 처리방식에 대한 결정
    * ERROR :  PK 중복 에러 발생 (Default 값)
    * SKIP :  데이터를 추가하지 않고 skip
    * UPDATE : 기존의 있던 데이터를 현재 추가되는 데이터로 update

  - 제약사항
    * on EXISTING 절을 사용하기 위해서는 테이블에 반드시 PK를 가지고 있어야 한다. 
    * PK 가 없는 경우 Syntax 에러 발생.
    * Proxy 테이블에 데이터 추가시에는 사용하지 못한다.

  - 예제
     INSERT INTO department ( dept_id, dept_name )
     on EXISTING UPDATE
     VALUES ( 230, '영업1분' )

* WITH AUTO NAME
  -
 Syntax 2에만 적용되는 파라미터로 select 를 실행해서 나온 결과의 컬럼명
     또는 Alias 명과 동일한 컬럼에 데이터를 입력 추가한다. 컬럼의 순서는 동일하지
     않더라도 관계가 없다.
  - 컬럼이 많은 테이블에 데이터를 추가하고자는 경우 유용하다.

  - 예제
CREATE TABLE mytab(
      pk int primary key default autoincrement,
      table_name char(128),
      len int );

INSERT into mytab WITH AUTO NAME
SELECT  length(t.table_name) AS len,  t.table_name
FROM SYS.SYSTABLE t
WHERE table_id<=10
-------------------------------------------------------------------------------------

[ UPDATE 문 ]
테이블 내의 데이터 수정

Syntax

UPDATE [ FIRST | TOP n테이블  
SET set_item, ...
[ FROM 테이블 목록 ]
[ WHERE 검색조건]
[ ORDER BY 컬럼명 [ ASC | DESC ], ... ]

* FROM table-list 절
    - 테이블 조인을 기반으로해서 데이터를 수정하는 경우 사용

    - 예제
      * FROM 절을 사용하지 않는 경우
        UPDATE sales_order SET region = '서울'
        WHERE id in ( SELECT DISTINCT id FROM sales_order_items
                               WHERE prod_id = 300)

       * FROM 절을 사용하는  경우
        UPDATE sales_order SET region = '서울'
           FROM sales_order a JOIN sales_order_items b on (a.id = b.id)
        WHERE b.prod_id = 300

      * 위의 결과는 동일하게 sales_order_items의 prod_id 가 300 인 주문서의 ID 를 가져와
         sales_order의 region 컬럼의 데이터를 '서울'이라는 값으로 수정한다.

FIRST 또는 TOP n  사용하기
    - 해당 조건에 해당하는 데이터 중 First 는 첫번째 데이터만 Top 은 위에서 n 번째 
       데이터만 수정한다.
    - SELECT 절에서 사용하는 FIRST, TOP 을 사용해서 나오는 결과를 update 한다고
      생각하면 된다.
    - Order by 절과 반드시 같이 사용해야 한다.
    - 예제
      * UPDATE TOP 10 sales_order SET region = '서울 ORDER BY order_date DESC

-------------------------------------------------------------------------------------

[ DELETE 문 ]
테이블 내의 데이터 삭제

Syntax

DELETEFIRST | TOP n ]
[ FROM ] [ owner.]table-name
[ FROM table-list ]
[ WHERE search-condition ]

* 두번째 FROM 절의 경우 update 절에서 제공하는 FROM 절과 동일한 기능으로 여러 테이블
   의 Join 을 통해서 복잡한 조건을 적용해서 데이터를 삭제하는 경우 사용

    - 예제
      DELETE FROM sales_order
      FROM sales_order a join sales_order_items b on (a.id = b.id)
      WHERE b.prod_id = 300

FIRST 또는 TOP n 의 경우 Update 절에서 사용하는 방식과 동일하다.

'컴퓨터관련' 카테고리의 다른 글

sybase 집계함수...펌  (0) 2009.06.19
sybase select문과 연산자...펌  (0) 2009.06.19
sybase db에 연결하는 법...펌  (0) 2009.06.19
sybase db 구동하는 법...펌  (0) 2009.06.19
sybase db생성하는 방법...펌  (0) 2009.06.19

+ Recent posts