[ 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 은 위에서 n 번째
데이터만 수정한다.
- SELECT 절에서 사용하는 FIRST, TOP 을 사용해서 나오는 결과를 update 한다고
생각하면 된다.
- Order by 절과 반드시 같이 사용해야 한다.
- 예제
* UPDATE TOP 10 sales_order SET region = '서울 ORDER BY order_date DESC
-------------------------------------------------------------------------------------
[ DELETE 문 ]
테이블 내의 데이터 삭제
Syntax
DELETE [ FIRST | 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 |