본문 바로가기

[DB]DataBase/[SQL]

[SQLD] DML

728x90
반응형

DML

DML(Data Manipulation Language)

  • 데이터의 삽입(INSERT), 수정(UPDATE), 삭제(DELETE), 병합(MERGE)
  • 반드시 저장(commit) 혹은 취소(rollback) 필요

INSERT

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

INSERT문 문장

 

UPDATE

  • 데이터를 수정할 때 사용
  • 컬럼 단위 수행
  • 다중 컬럼 수정 가능
    • 서브쿼리를 사용하여 여러 컬럼 동시 수정 가능
    • 서브쿼리 결과가 각 컬럼마다 한 값으로 정의되지 않으면 오류 발생

단일 컬럼 수정 문장

-> WHERE 절로 수정 대상 선택 가능

다중 컬럼 수정 문장

 

DELETE

  • 데이터를 삭제할 때 사용
  • 행 단위 실행

DELETE문 문장

 

MERGE

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

MERGE문 문장

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

 

반응형

'[DB]DataBase > [SQL]' 카테고리의 다른 글

[SQLD] DDL  (0) 2024.05.22
[SQLD] TCL  (0) 2024.05.21
[SQLD] 정규 표현식  (0) 2024.05.20
[SQLD] PIVOT 절과 UNPIVOT 절  (0) 2024.05.20
[SQLD] 계층형 질의와 셀프 조인  (0) 2024.05.19