DML(Data Manipulation Language)
테이블에 레코드를 삽입할 때 사용하는 조작어.
레코드는 순서대로 들어가지 않는다.
transaction 대상 쿼리문.(DCL로 통제)
insert into 테이블명(컬럼명,,,) values(값,,,);// 컬럼명 생략 가능.
//컬럼을 명시하면 테이블의 컬럼 순서와 상관없이 값을 추가할 수 있다.
insert into test_number(age, height, num) values(27, 170.3, 2);
//컬럼을 생략하면 테이블의 컬럼순서대로 값을 입력해야 한다.
insert into test_number values(2, 27, 170.3);
DB작업의 단위
DML중 insert, update, delete 쿼리문만 Transaction 대상 쿼리문이 된다.
쿼리문 하나로 transaction이 구성되는 경우도 있고, 여러 개의 쿼리문이 조합되어 transaction이 구성되는 경우도 있다.
transaction 완료 => 모든 쿼리문이 성공한 경우.
commit : 접속자 세션에서 변경된 내용들을 HDD기록하고, 변경된 내용을 모든 접속자세션에 통지하는 일을 한다.
transaction 취소 => 쿼리문 중 하나라도 실패한 경우.
rollback :
접속자 세션에서 변경한 내용을 취소하는 것.
저장점과 함께 사용하면 특정 위치까지의 작업을 취소할 수 있다.
테이블에서 모든 레코드의 특정 컬럼을 검색하는 DML
//테이블의 모든 레코드를 검색
select
from
//조건에 맞는 레코드만 검색
where절
//그룹화 컬럼 값 중 중복된 값은 묶어서 하나로 검색
group by
having절
//정렬
order by절
DML 중 하나
Transaction 대상 쿼리(commit, rollback)
최소 0건에서부터 최대 검색된 레코드 건까지 변경된다.
//모든 레코드가 변경
update 테이블 명
set 컬럼명 = 변경할 값,,,
//특정 레코드만 변경
where 컬럼명 = 찾을 값
레코드를 삭제할 때 사용하는 DML
Transaction대상쿼리(commit, rollback)
최소 0건에서부터 최대 조건에 맞는 모든 레코드를 삭제한다.
delete
from 테이블명//모든 레코드 삭제.
where 컬럼명 = 찾을값,//기준에 맞는 레코드만 삭제.
테이블에 모든 레코드를 절삭할 때 사용하는 DDL
transaction 대상쿼리문이 아님.
delete 보다 속도가 빠르다.
특정 레코드만 자를 수 없다.
truncate table 테이블명;
DBMS의 모든 객체를 삭제할 때 사용하는 DDL
oracle 11부터는 삭제된 테이블은 휴지통으로 이동한다.
휴지통에 들어간 테이블은 복구가 가능하다
drop table 테이블명;
*휴지통에 있는 테이블 살리기
flashback table 테이블명 to before drop