● DML(Data Manipulation Language)
- 데이터의 삽입(INSERT), 수정(UPDATE), 삭제(DELETE), 병합(MERGE)
- 저장(commit) 혹은 취소(rollback) 반드시 필요
● INSERT
- 테이블에 행을 삽입할 때 사용
- 한 번에 한 행만 입력가능(SQL Server, 여러 행 동시 삽입 가능)
- 하나의 컬럼에는 한 값만 삽입 가능
- 컬럼별 데이터타입과 사이즈에 맞게 삽입
- INTO 절에 컬럼명을 명시하여 일부 컬럼만 입력 가능. 작성하지 않은 컬럼은 NULL 이 입력됨
☞ NOT NULL 칼럼의 경우 오류 발생
- 전체 컬럼에 대한 데이터 입력시 테이블명 뒤의 컬럼명 생략 가능
예제) 테이블에 데이터 INSERT(한 행씩)
< 테이블 구조 >
< 여러 행 INSERT >
☞ 테이블의 각 컬럼별 데이터타입과 사이즈에 맞게 입력
☞ 문자 칼럼에 숫자값 입력 가능(권장X)
☞ 숫자 컬럼에 '001'처럼 숫자처럼 생긴 문자값 입력 가능(권장 X)
< 결과 >
예제) 서브쿼리를 사용한 여러행 INSERT
예제) INSERT 시 컬럼 명시 생략으로 인한 오류 발생
< 오류 발생 >
☞ 테이블명 뒤에 INSERT 할 컬럼명을 명시하지 않으면 모든 컬럼 INSERT 시도하는데 입력된 값은 두 개 밖에 없으므로 에러!
< 해결 >
● UPDATE
- 데이터 수정할때 사용
- 컬럼 단위 수행
- 다중 컬럼 수정 가능
** 문법
1) 단일컬럼 수정
☞ WHERE 절로 수정 대상을 선택 가능
예제) AMERICANO 의 PRICE 을 1500 으로 변경
2) 다중컬럼 수정
- 방법 1
예제)3번의 NAEM 을 HOT_MILK 로 PRICE 을 2500 으로 변경
- 방법 2
※ 서브쿼리의 결과가 수정할 각 행의 값 마다 하나씩 전달돼야 함
예제) 서브쿼리를 사용한 여러 컬럼 동시 수정
< 수정 전 >
☞ 서브쿼리 결과가 각 컬럼마다 한 값으로 정의되지 않으면 수행 불가!
● DELETE
- 데이터를 삭제할 때 사용
- 행 단위 실행
** 문법
☞ WHERE 절로 삭제할 행 선택 가능
예제) NO가 3인 행 삭제
☞ 1 개의 행이 삭제되었다는 것을 알 수 있음
4) MERGE
- 데이터 병합
- 참조 테이블과 동일하게 맞추는 직업(참조테이블의 데이터 입력, 참조테이블의 값으로 수정 등)
☞ INSERT, UPDATE, DELETE 작업을 동시에 수행
** 문법
예제) OLD 테이블을 NEW 테이블과 동일하게 MERGE 문 작성
STEP1) MERGE 할 TABLE 확인
** MERGE_NEW 데이터 확인
** MERGE_OLD 테이블 확인
STEP2) MERGE 문 작성
☞ 수정할 테이블명을 MERGE INTO 절에 명시, 참조테이블을 USING 절 명시
☞ 두 테이블의 데이터를 참조할 참조 조건을 ON 절 명시(괄호 필수)
☞ UPDATE 문에서는 테이블명 명시X
☞ SET 절의 왼쪽이 수정테이블, 오른쪽이 참조 테이블 컬럼
☞ INSERT 문에는 INTO 절 없이 VALUES 로 참조 컬럼명 전달
STEP3) MERGE 결과 확인
☞ 처음 테이블에는 없던 MOCHA 행이 삽입, 기존 LATTE 가격이 2000에서 2500으로 수정됨
'MySQLD 자격증 공부' 카테고리의 다른 글
2 - 19 (0) | 2024.08.23 |
---|---|
2 - 18 (0) | 2024.08.22 |
함수의 종류 (암기용) (0) | 2024.08.19 |
2 - 16 (0) | 2024.08.18 |
2 - 15 (0) | 2024.08.18 |