ݺߣ

ݺߣShare a Scribd company logo
7 장 .  데이터 수정 MS-SQL 2000  전문가로 가는 지름길  1 권 SQL Study(café.naver.com/endofdb) 김광중 (visualwizard@ncsoft.com)
목차 1. INSERT 2. DELETE 3. UPDATE
DDL  ( Data Definition Language ) : TABLE, VIEW, INDEX  등등 을 정의하거나 변경 또는 삭제 할 때 사용함 .  –  CREATE, DROP, ALTER DML  ( Data Manufaction Language ) :  저장된 데이터를 실제로 처리하는데 사용 . -  SELECT , INSERT , DELETE , UPDATE DCL  ( Data Control Language) :  데이터의 보안 , 무결성 등 데이터의 관리를 목적으로 사용  –  GRANT , REVOKE 1. INSERT
INSERT  구문 1. INSERT INSERT INTO  table_name ( column_name ) VALUES  ( column_value ) 하나의  INSERT  문으로는  하나의 레코드 만 입력 할 수 있다 .!
IDENTITY  와  DEFAULT  제약조건 1. INSERT IDENTITY :  레코드가 입력될 때 ,  컬럼의 값은  seed  부터 시작 하며 ,  새로운 레코드가 추가될 시에는  increment  만큼 증가된 값 이 적용된다 .
1. INSERT
SET IDENTITY_INSERT {ON | OFF} 1. INSERT IDENTITY  가 지정된 컬럼 에 임의의 값을  수동 으로 넣으려고 할 때 사용 .
SET IDENTITY_INSERT {ON | OFF} 1. INSERT
SET IDENTITY_INSERT {ON | OFF} 1. INSERT
SET IDENTITY_INSERT {ON | OFF} 1. INSERT
SET IDENTITY_INSERT {ON | OFF} 1. INSERT SET IDENTITY_INSERT  table_name  ON INSERT INTO mytest ( id, value ) VALUES ( 3, 31 ) SET IDENTITY_INSERT  table_name  OFF
SET IDENTITY_INSERT {ON | OFF} 1. INSERT
TIMESTAMP 1. INSERT 일반적으로  timestamp 는  버전이 표시되는 테이블 행 에 대한 메커니즘으로 사용됩니다 .  저장소 크기는  8 바이트 (VARBINARY(8)) 입니다 .  timestamp   데이터 형식은  자동으로 증가하는 숫자일 뿐 이며 날짜 또는 시간을 보존하지 않습니다 현재의  timestamp  값 얻기  : @@DBTS
TIMESTAMP 1. INSERT UPDATE t1 SET city = ' 일본 ' WHERE id = 1
DEFAULT values 1. INSERT CREATE TABLE tblDef ( id int IDENTITY PRIMARY KEY, TIMESTAMP, inputday DATETIME NOT NULL  DEFAULT getdate(), photo image NULL )
INSERT .. SELECT  와  SELECT .. INTO 1. INSERT SELECT .. INTO  구문은 넣으려고 하는 개체 ( 테이블 ) 이 이미 존재하면 사용할 수 없다 . 이미  개체 ( 테이블 ) 가 존재 한다면  INSERT .. SELECT  구문을 사용 한다 . INSERT  desc_table_name SELECT  source_column_name  FROM  source_table_name values  대신에  select  구문이 들어간 것 .
여러 개의 레코드를 입력하는 방법 DTS CVS  파일에서 데이터 가져오기 DTS( 데이터 변환 서비스 ) 는  SQL Server Integration Services 로 대체 BULK INSERT 데이터 파일을 사용자가 지정한 형식으로 데이터베이스 테이블이나 뷰로 가  져옵니다 1. INSERT
DELETE  구문 2. DELETE DELETE [FROM]  table_name WHERE  … DELETE  구문은 반드시  WHERE  절과 함께 사용 .! BEGIN TRAN query… ROLLBACK  /  COMMIT
DELETE  구문 2. DELETE DELETE  table_name WHERE  column  IN (  SELECT …  ) DELETE  table_name FROM  t1  JOIN  t2  ON  t1.id = t2.id ANSI SQL T-SQL
UPDATE 구문 3. UPDATE UPDATE  table_name SET  column_name = value , column_name = value WHERE …
UPDATE 구문 3. UPDATE UPDATE  target SET  tValue = tValue + sValue FROM  target  JOIN  source  ON  ( tid = sid )
UPDATE 구문 3. UPDATE UPDATE  target SET  tValue = tValue + sValue FROM  target  , source WHERE  tid = sid
UPDATE 구문 3. UPDATE 하위 쿼리 -  상위 쿼리에 영향을 받지 않고 자체적으로 실행되는 쿼리 ,  결과값을 상위 쿼리에서 사용한다 상관 하위 쿼리 -  하위 쿼리가 외부 쿼리에 영향을 받음 .  즉 ,  하위 쿼리는 외부 쿼리에서 선택될 수 있는 각 행에 대해 한 번씩 반복적으로 실행 .
UPDATE 구문 3. UPDATE 하위 쿼리 UPDATE target SET tValue = tValue +  (  SELECT sum(sValue) FROM source JOIN target ON tid = sid  )
UPDATE 구문 3. UPDATE 상관 하위 쿼리 UPDATE target SET tValue = tValue + ( SELECT sum(sValue) FROM source WHERE sid = target.tid )

More Related Content

7.데이터수정

  • 1. 7 장 . 데이터 수정 MS-SQL 2000 전문가로 가는 지름길 1 권 SQL Study(café.naver.com/endofdb) 김광중 (visualwizard@ncsoft.com)
  • 2. 목차 1. INSERT 2. DELETE 3. UPDATE
  • 3. DDL ( Data Definition Language ) : TABLE, VIEW, INDEX 등등 을 정의하거나 변경 또는 삭제 할 때 사용함 . – CREATE, DROP, ALTER DML ( Data Manufaction Language ) : 저장된 데이터를 실제로 처리하는데 사용 . - SELECT , INSERT , DELETE , UPDATE DCL ( Data Control Language) : 데이터의 보안 , 무결성 등 데이터의 관리를 목적으로 사용 – GRANT , REVOKE 1. INSERT
  • 4. INSERT 구문 1. INSERT INSERT INTO table_name ( column_name ) VALUES ( column_value ) 하나의 INSERT 문으로는 하나의 레코드 만 입력 할 수 있다 .!
  • 5. IDENTITY 와 DEFAULT 제약조건 1. INSERT IDENTITY : 레코드가 입력될 때 , 컬럼의 값은 seed 부터 시작 하며 , 새로운 레코드가 추가될 시에는 increment 만큼 증가된 값 이 적용된다 .
  • 7. SET IDENTITY_INSERT {ON | OFF} 1. INSERT IDENTITY 가 지정된 컬럼 에 임의의 값을 수동 으로 넣으려고 할 때 사용 .
  • 8. SET IDENTITY_INSERT {ON | OFF} 1. INSERT
  • 9. SET IDENTITY_INSERT {ON | OFF} 1. INSERT
  • 10. SET IDENTITY_INSERT {ON | OFF} 1. INSERT
  • 11. SET IDENTITY_INSERT {ON | OFF} 1. INSERT SET IDENTITY_INSERT table_name ON INSERT INTO mytest ( id, value ) VALUES ( 3, 31 ) SET IDENTITY_INSERT table_name OFF
  • 12. SET IDENTITY_INSERT {ON | OFF} 1. INSERT
  • 13. TIMESTAMP 1. INSERT 일반적으로 timestamp 는 버전이 표시되는 테이블 행 에 대한 메커니즘으로 사용됩니다 . 저장소 크기는 8 바이트 (VARBINARY(8)) 입니다 . timestamp 데이터 형식은 자동으로 증가하는 숫자일 뿐 이며 날짜 또는 시간을 보존하지 않습니다 현재의 timestamp 값 얻기 : @@DBTS
  • 14. TIMESTAMP 1. INSERT UPDATE t1 SET city = ' 일본 ' WHERE id = 1
  • 15. DEFAULT values 1. INSERT CREATE TABLE tblDef ( id int IDENTITY PRIMARY KEY, TIMESTAMP, inputday DATETIME NOT NULL DEFAULT getdate(), photo image NULL )
  • 16. INSERT .. SELECT 와 SELECT .. INTO 1. INSERT SELECT .. INTO 구문은 넣으려고 하는 개체 ( 테이블 ) 이 이미 존재하면 사용할 수 없다 . 이미 개체 ( 테이블 ) 가 존재 한다면 INSERT .. SELECT 구문을 사용 한다 . INSERT desc_table_name SELECT source_column_name FROM source_table_name values 대신에 select 구문이 들어간 것 .
  • 17. 여러 개의 레코드를 입력하는 방법 DTS CVS 파일에서 데이터 가져오기 DTS( 데이터 변환 서비스 ) 는 SQL Server Integration Services 로 대체 BULK INSERT 데이터 파일을 사용자가 지정한 형식으로 데이터베이스 테이블이나 뷰로 가 져옵니다 1. INSERT
  • 18. DELETE 구문 2. DELETE DELETE [FROM] table_name WHERE … DELETE 구문은 반드시 WHERE 절과 함께 사용 .! BEGIN TRAN query… ROLLBACK / COMMIT
  • 19. DELETE 구문 2. DELETE DELETE table_name WHERE column IN ( SELECT … ) DELETE table_name FROM t1 JOIN t2 ON t1.id = t2.id ANSI SQL T-SQL
  • 20. UPDATE 구문 3. UPDATE UPDATE table_name SET column_name = value , column_name = value WHERE …
  • 21. UPDATE 구문 3. UPDATE UPDATE target SET tValue = tValue + sValue FROM target JOIN source ON ( tid = sid )
  • 22. UPDATE 구문 3. UPDATE UPDATE target SET tValue = tValue + sValue FROM target , source WHERE tid = sid
  • 23. UPDATE 구문 3. UPDATE 하위 쿼리 - 상위 쿼리에 영향을 받지 않고 자체적으로 실행되는 쿼리 , 결과값을 상위 쿼리에서 사용한다 상관 하위 쿼리 - 하위 쿼리가 외부 쿼리에 영향을 받음 . 즉 , 하위 쿼리는 외부 쿼리에서 선택될 수 있는 각 행에 대해 한 번씩 반복적으로 실행 .
  • 24. UPDATE 구문 3. UPDATE 하위 쿼리 UPDATE target SET tValue = tValue + ( SELECT sum(sValue) FROM source JOIN target ON tid = sid )
  • 25. UPDATE 구문 3. UPDATE 상관 하위 쿼리 UPDATE target SET tValue = tValue + ( SELECT sum(sValue) FROM source WHERE sid = target.tid )