기본 DML(2)

이강용·2026년 9월 30일

SQLD

목록 보기
7/12

DELETE

DELETE의 개념

  • DELETE는 저장된 행을 삭제하는 DML 명령어
  • WHERE 절로 삭제할 행을 지정, 생략 시 모든 행이 삭제
  • 행만 삭제되고 테이블 구조는 유지
  • 삭제 결과는 COMMIT 또는 ROLLBACK으로 확정

DELETE FROM 테이블명
WHERE 조건식;

MERGE

MERGE의 개념

  • MERGE는 원본 데이터로 대상 테이블에 INSERT·UPDATE·DELETE를 한 번에 수행하는 DML
  • 일치하면 UPDATE, 일치하지 않으면 INSERT를 수행
  • 두 테이블을 동기화하거나 대량 반영할 때 활용
  • UPDATE와 INSERT를 결합한 UPSERT 개념임

MERGE 기본 문법

  • MERGE INTO : 대상 테이블을 지정
  • USING : 원본 데이터를 지정
  • ON : 비교 조건을 지정
  • WHEN MATCHED THEN : 일치하는 행에 수행할 작업
  • WHEN NOT MATCHED THEN : 일치하지 않는 행에 INSERT를 수행

MERGE INTO 대상테이블 T
USING 원본테이블 S
ON (T.키컬럼 = S.키컬럼)
WHEN MATCHED THEN
UPDATE SET
T.컬럼1 = S.컬럼1,
T.컬럼2 = S.컬럼2
WHEN NOT MATCHED THEN
INSERT (컬럼1, 컬럼2)
VALUES(S.컬럼1, S.컬럼2);

SELECT 심화

WHERE 절 심화

SQL 연산자(BETWEEN/IN/LIKE)

1) BETWEEN

  • 값이 특정 범위에 있는지 확인하는 연산자
  • 경계값을 포함(이상 ~ 이하)

컬럼 BETWEEN 하한값 AND 상한값

2) IN/NOT IN

① IN

  • 값이 목록 중 하나와 일치하는지 확인하는 연산자
  • OR 조건을 간결히 표현

컬럼 IN(값1, 값2, 값3,...)

② NOT IN

  • 목록 어디에도 일치하지 않는 행을 반환하는 연산자
  • IN의 부정형

컬럼 NOT IN(값1, 값2, 값3,...)

3) LIKE

  • 문자열 패턴을 검색하는 연산자

컬럼 [NOT] LIKE '패턴'

① 와일드카드 종류

와일드카드의미
'%'0개 이상의 임의 문자 - 글자 수 제한 없음
'_'정확히 1개의 임의 문자 - 반드시 한 글자여야 함

IS NULL/IS NOT NULL

  • NULL은 비교 연산자(=, <>)로 비교할 수 없음
  • NULL 여부는 IS NULL/IS NOT NULL로 확인
연산자의미
IS NULL값이 NULL인 행을 조회
IS NOT NULL값이 NULL이 아닌 행을 조회

ORDER BY/DISTINCT

OREDER BY

  • 결과를 특정 컬럼 기준으로 정렬하는 절
  • SELECT 문에서 마지막에 실행
  • 정렬 기준이 없으면 DBMS가 임의 순서로 반환
  • 옵션 종류
옵션의미기본값
ASC오름차순(작은 값 -> 큰 값)기본값(생략 가능)
DESC내림차순(큰 값 -> 작은 값생략 불가(반드시 명시)

SELECT 컬럼1, 컬럼2,...
FROM 테이블명
WHERE 조건식
ORDER BY 컬럼명 [ASC|DESC];

DISTINCT

  • 중복 행을 제거하고 유일한 값만 반환하는 키워드
  • SELECT 절 가장 앞에 작성
  • 여러 컬럼이면 모든 컬럼 값이 같을 때만 중복으로 봄
  • NULL도 하나의 값으로 취급되어 중복 NULL은 하나로 합쳐짐

SELECT DISTINCT 컬럼1, 컬럼2,...
FROM 테이블명;

profile
HW + SW = 1

0개의 댓글