본문 바로가기

sqld

2-17) DML

INSERT
  • 테이블에 행을 삽입할 때 사용
  • 한 번에 한 행만 입력 가능 (SQL Server : 여러 행 동시 입력 가능)
  • 하나의 컬럼에는 한 값만 삽입 가능
  • 컬럼별 테이터 타입과 사이즈에 맞게 삽입
  • INTO 절에 컬럼명을 명시하여 일부 컬럼만 입력 가능
    • 작성하지 않은 컬럼은 NULL이 입력됨
    • NOT NULL 칼럼의 경우 오류 발생
  • 전체 컬럼에 대한 데이터 입력 시 테이블명 뒤의 컬럼명 생략 가능

 

** 문법

 

 

예1) 여러 행 INSERT

  • 문자 컬럼에 숫자값 입력 가능 (권장 X)
  • 숫자 컬럼에 '001'처럼 숫자처럼 생긴 문자값 입력 가능 (권장 X)

 

예2) 서브쿼리를 사용한 여러 행 INSERT

 

예3) INSERT 시 컬럼 명시 생략으로 인한 오류

  • INSERT할 컬럼명 명시하지 않으면 모든 컬럼 INSERT 시도 → 입력된 값은 2개밖에 없으므로 에러

해결)

 

 

UPDATE
  • 데이터 수정 시 사용
  • 컬럼 단위 수행
  • 다중 컬럼 수정 가능

 

** 문법

1) 단일 컬럼 수정

 

예) 

 

 

2) 다중 컬럼 수정

 

** 방법 1

 

예)

 

** 방법 2 : 서브쿼리 사용

  • 서브쿼리의 결과가 수정할 각 행의 값마다 하나씩 전달돼야 함

 

예) 서브쿼리 사용한 여러 컬럼 동시 수정

  • 서브쿼리 결과가 각 컬럼마다 한 값으로 정의되지 않으면 수행 불가!

 

DELETE
  • 데이터 삭제 시 사용
  • 행 단위 실행

 

** 문법

  • WHERE 절로 삭제할 행 선택 가능

 

예)

 

 

MERGE
  • 데이터 병합
  • 참조 테이블과 동일하게 맞추는 작업 (참조테이블의 데이터 입력, 참조테이블의 값으로 수정 등)
  • INSERT, UPDATE, DELETE 작업을 동시에 수행

 

** 문법

 

 

예) OLD 테이블을 NEW 테이블과 동일하게 MERGE 문 작성

 

STEP1) MERGE할 TABLE 확인

 

STEP2) MERGE 문 작성

  • 두 테이블의 데이터를 참조할 참조 조건을 ON 절 명시 (괄호 필수 !)
  • UPDATE 명에서는 테이블명 명시 X
  • SET 절의 왼쪽이 수정 테이블, 오른쪽이 참조 테이블 컬럼
  • INSERT 문에는 INTO 없이 VALUES로 참조 컬럼명 전달

 

STEP3) MERGE 결과 확인

 

 

 

 

'sqld' 카테고리의 다른 글

2-19) DDL  (0) 2024.08.23
2-18) TCL  (0) 2024.08.23
2-16) 정규 표현식  (0) 2024.08.22
2-15) PIVOT과 UNPIVOT  (0) 2024.08.22
2-14) 계층형 질의  (0) 2024.08.22