728x90
DML (Data Manipulation Language)
- 데이터의 삽입(INSERT), 수정(UPDATE), 삭제(DELETE), 병합(MERGE)
- 저장(Commit) 혹은 취소(Rollback) 반드시 필요
# INSERT
- 테이블에 행을 삽입할 때 사용
- 한 번에 한 행만 입력가능(SQL Server 여러 행 동시 삽입 가능)
- 하나의 컬럼에는 한 값만 삽입 가능
- 컬럼별 데이터타입과 사이즈에 맞게 삽입
- INTO 절에 컬럼명을 명시하여 일부 컬럼만 입력 가능. 작성하지 않은 컬럼은 NULL 이 입력됨
- 전체 컬럼에 대한 데이터 입력 시 테이블명 뒤의 컬럼명 생략 가능
# 문법
INSERT INTO 테이블 VALUES(값1, 값, ...); -- 전체 컬럼의 값을 입력
INSERT INTO 테이블(컬럼1, 컬럼2, ...) VALUES(값1, 값2, ...); -- 선택한 컬럼만 데이터 입력
※ 서브쿼리를 사용하여 여러 행을 INSERT 가능하다.
# UPDATE
- 데이터 수정할 때 사용
- 컬럼 단위 수행
- 다중 컬럼 수정 가능
# 문법
-- 단일컬럼 수정
UPDATE 테이블명
SET 수정할컬럼명 = 수정값
WHERE 수정 대상 식별조건;
-- 다중컬럼 수정
UPDATE 테이블명
SET 수정할컬럼명1 = 수정값1,
SET 수정할컬럼명2 = 수정값2,
...
WHERE 수정 대상 식별조건;
-- WHERE 절을 사용하지 않으면 테이블 전체 데이터가 수정됨
※ 서브쿼리를 사용하여 다중컬럼 수정도 가능하다. (주의할 점 : 서브쿼리의 결과가 수정할 각 행의 값마다 하나씩 전달돼야 함)
# DELETE
- 데이터를 삭제할 때 사용
- 행 단위 실행
DELETE [FROM] 테이블명
[WHERE 조건];
-- WHERE 절로 삭제할 행 선택 가능
# MERGE
- 데이터 병합
- 참조 테이블과 동일하게 맞추는 작업(참조 테이블의 데이터 입력, 참조테이블의 값으로 수정 등)
- INSERT, UPDATE, DELETE 작업을 동시에 수행
MERGE
INTO 타겟 테이블명
USING 참조 테이블명
ON (연결조건)
WHEN MATCHED THEN
UPDATE
SET 수정할 칼럼명1 = 수정될 새로운 값1
[ , 수정할 칼럼명2 = 수정될 새로운 값2, ... ]
WHEN NOT MATCHED THEN
INSERT [(칼럼1, 칼럼2, ...)]
VALUES (값1, 값2, ...);
ON(연결조건) 이 일치하는 경우 WHEN MATCHED THEN 뒤의 UPDATE 절이 수행되고,
ON(연결조건) 이 일치하지 않는 경우 WHEN NOT MATCHED TEN 뒤의 INSERT 절이 수행된다.
728x90
'데이터베이스(DB) > SQLD' 카테고리의 다른 글
[SQLD 2-3-3] 관리 구문 - DDL (35) | 2024.06.21 |
---|---|
[SQLD 2-3-2] 관리 구문 - TCL (29) | 2024.06.20 |
[SQLD 2-2-8] SQL 활용 - 정규 표현식 (32) | 2024.06.17 |
[SQLD 2-2-7] SQL 활용 - PIVOT 절과 UNPIVOT 절 (33) | 2024.06.15 |
[SQLD 2-2-6] SQL 활용 - 계층형 질의와 셀프 조인 (2) | 2024.06.14 |