▶ DML
● Data Manipulation Language 데이터 조작어
● 테이블객체의 데이터에 대해서 생성/조회/수정/삭제 CRUD 하는 명령어
● insert (Create)
● select (Read)
● update (Update)
● delete (Delete)
● dml명령어 수행시 메모리에서 우선작업하므로
TCL(Transaction Control Language)를 통해서 실제 db에 반영(commit), 작업취소(rollback) 하는 과정이 필요
▶ INSERT
● 테이블에 새로운 레코드를 추가하는 명령어
● 명령 성공시마다 테이블에 행이 하나씩 추가된다.
● 추가할 레코드에 컬럼값중에 하나도 유효하지 않은(자료형불일치, 제약조건불일치..) 값이 있다면, 전체 레코드가 추가 될수 없다.
● 1.테이블의 구조대로 값을 제공해야 한다. 컬럼순서, 컬럼개수가 모두 일치해야 한다.
● 제약조건 default,not null 생각
● (컬럼명 명시) : 컬럼순서변경, 컬럼값을 생략하고 레코드를 추가할 수 있다.
● not null컬럼도 default값이 지정되어 있는 경우 생략가능
● default값이 있다면, 자동으로 기본값 처리
● a number,
b varchar2(20) default
c varchar2(20) not null
d date default sysdate not null
※ 기존 테이블 복사
● subquery를 사용한 insert
● insert all
● where 1 = 0; 은 무조건 false 컬럼순서,자료형만 복사
● 2개 이상의 테이블에 나눠서 insert처리
▶ UPDATE
● 특정행을 찾아, 해당컬럼값을 변경하는 명령
● where절에서 특정행에 대한 조건을 제시(where절 생략하면 모든 행에 대해 처리)
● Primary key 컬럼 사용
▶ DELETE
● 테이블의 행(레코드)를 삭제하는 명령
● where절을 지정하지 않으면 모든 행이 삭제된다
● 실제 테이블 데이터의 삭제는 일어나지 않는다.
● 소규모데이터인 경우, 삭제컬럼으로 처리
● 대규모데이터인 경우, delete처리를 하되, 삭제데이터는 별도로 관리한다.
● 삭제(delete)와 동시에 삭제데이터를 퇴사자테이블에 추가(insert)해서 관리
● trigger객체를 통해 수월하게 처리 가능.
● 전체 데이터 삭제(delete)
● DML은 수행전 상태를 메모리상에 임시 보관한다. (before-image)
'Database' 카테고리의 다른 글
[SQL]TOP-N (0) | 2022.04.27 |
---|---|
[SQL] DDL,제약조건 (0) | 2022.04.25 |
[SQL] 그룹함수 (0) | 2022.04.19 |
[SQL] join , set operator, (0) | 2022.04.18 |
[SQL] 숫자처리함수,날짜처리함수,형변환 함수 (0) | 2022.04.14 |