[Oracle] DML 데이터 조작어
데이터 조작어 (DML : Data Manipulation Language)
- 테이블에 새로운 데이터 삽입, 기존 데이터 수정, 삭제하는 명령어의 집합
- INSERT : 데이터 입력
- UPDATE : 데이터 수정
- DELETE : 데이터 삭제
1. insert into
- 데이터 입력
- 문자(char, varchar2)와 날짜(date)는 ' ' 를 사용
insert into 테이블명
values (컬럼값1, 컬럼값2 ... );
- into절 뒤에 컬럼명 나열 가능
ex)
insert into dept (dno, loc, dname) --컬럼명 나열시
values(20, 'DALLAS', 'RESEARCH'); --컬럼값의 개수와 동일해야함
- null값 입력시 null 혹은 문자나 날짜 타입은 ' ' 공백 문자열 작성 가능
- 날짜 데이터 입력시 'YYYY/MM/DD' 형식으로 입력
- 서브 쿼리로 다른 테이블 데이터 복사 가능
insert into 테이블명 (컬럼명...(생략가능))
서브쿼리
ex)
insert into dept_copy
select * from dept;
2. update
- 데이터 수정
- where절 생략시 모든 행 수정
update 테이블명
set 컬럼명=값 , 컬럼명2=값2 ...
where 조건;
ex)
update dept
set dname='PROGRAMING'
where dno=10;
- set절에서 서브 쿼리 기술시 다른 테이블에 저장된 데이터로 해당 컬럼 값 변경
- set절에서 서브 쿼리 여러개 기술 가능. 콤마 사용하여 구분함
3. delete
- 데이터 삭제
- where절 생략시 모든 행 삭제
- where절 서브 쿼리 기술 가능
delete from 테이블명 -- from 생략 가능
where 조건;
ex)
delete dept_copy
where dno=10;
4. 트랜잭션 관리
- transaction
- 데이터 처리에서 논리적으로 하나의 작업 단위 의미
- All - or - Nothing 방식
: 여러개의 명령어 집합이 정상적으로 처리되면 정상 종료
: 하나의 명령어라도 잘못되었다면 전체 취소
=> 데이터 일관성 유지, 안정적으로 데이터 복구
1) commit
- 모든 작업들을 정상적으로 처리하겠다고 확정하는 명령어
- 변경된 내용을 모두 영구 저장
2) rollback
- 처리 과정에서 발생한 변경 사항을 취소하는 명령어
- 이전의 상태로 되돌린다
insert into 테이블명
values (컬럼값1, 컬럼값2 ... );
ex)
insert into dept (dno, loc, dname) --컬럼명 나열시
values(20, 'DALLAS', 'RESEARCH'); --컬럼값의 개수와 동일해야함
insert into 테이블명 (컬럼명...(생략가능))
서브쿼리
ex)
insert into dept_copy
select * from dept;
- 데이터 수정
- where절 생략시 모든 행 수정
update 테이블명
set 컬럼명=값 , 컬럼명2=값2 ...
where 조건;
ex)
update dept
set dname='PROGRAMING'
where dno=10;
- set절에서 서브 쿼리 기술시 다른 테이블에 저장된 데이터로 해당 컬럼 값 변경
- set절에서 서브 쿼리 여러개 기술 가능. 콤마 사용하여 구분함
3. delete
- 데이터 삭제
- where절 생략시 모든 행 삭제
- where절 서브 쿼리 기술 가능
delete from 테이블명 -- from 생략 가능
where 조건;
ex)
delete dept_copy
where dno=10;
4. 트랜잭션 관리
- transaction
- 데이터 처리에서 논리적으로 하나의 작업 단위 의미
- All - or - Nothing 방식
: 여러개의 명령어 집합이 정상적으로 처리되면 정상 종료
: 하나의 명령어라도 잘못되었다면 전체 취소
=> 데이터 일관성 유지, 안정적으로 데이터 복구
1) commit
- 모든 작업들을 정상적으로 처리하겠다고 확정하는 명령어
- 변경된 내용을 모두 영구 저장
2) rollback
- 처리 과정에서 발생한 변경 사항을 취소하는 명령어
- 이전의 상태로 되돌린다
delete from 테이블명 -- from 생략 가능
where 조건;
ex)
delete dept_copy
where dno=10;
- transaction
- 데이터 처리에서 논리적으로 하나의 작업 단위 의미
- All - or - Nothing 방식
: 여러개의 명령어 집합이 정상적으로 처리되면 정상 종료
: 하나의 명령어라도 잘못되었다면 전체 취소
=> 데이터 일관성 유지, 안정적으로 데이터 복구
1) commit
- 모든 작업들을 정상적으로 처리하겠다고 확정하는 명령어
- 변경된 내용을 모두 영구 저장
2) rollback
- 처리 과정에서 발생한 변경 사항을 취소하는 명령어
- 이전의 상태로 되돌린다
🖐 savepoint도 함께 사용하자
ex)
-10번 부서만 삭제 후 -> savepoint로 이 지점을 d10 이름으로 저장
delete from dept_copy where dno=10;
savepoint d10;
-20번 부서만 삭제
delete from dept_copy where dno=20;
-30번 부서만 삭제
delete from dept_copy where dno=30;
-d10 지점으로 되돌림
rollback to d10;
< DDL , DML 차이점 >
Author And Source
이 문제에 관하여([Oracle] DML 데이터 조작어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@heyhighbyee/Oracle-DML-데이터-조작어저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)