데이터조작어(DML)
: 테이블에 새로운 행 추가 (Insert)
테이블의 기존 행 수정 (Update)
테이블의 기존 행 삭제 (Delete)
insert, update, delete => 작업단위 : row(행)
insert into departments
values (280, 'Java',200,1700);
insert into departments(department_name, location_id,
manager_id, department_id)
values('Jsp',1700,201,290);
insert into departments(department_id, department_name)
values (300, 'MySQL');
insert into departments
values (310, 'Html', 202, null);
create table copy_emp
as select*
from employees
where 1=2;
desc copy_emp;
insert into copy_emp
select*
from employees;
select employee_id, salary, department_id
from employees
where employee_id=113;
update employees
set department_id = 50, salary =7200
where employee_id = 113;
select employee_id, salary, department_id
from employees
where employee_id=113;
update copy_emp
set department_id=110;
select employee_id,department_id
from copy_emp;
rollback;
select employee_id,department_id
from copy_emp;
select employee_id, last_name, job_id, salary
from copy_emp
where employee_id in (113,205);
update copy_emp
set job_id = (select job_id
from copy_emp
where employee_id = 205),
salary = (select salary
from copy_emp
where employee_id = 205)
where employee_id = 113;
select employee_id, last_name, job_id, salary
from copy_emp
where employee_id in (113,205);
delete from departments
where department_id = 300;
select*
from departments
order by department_id desc;
delete from copy_emp
where department_id = (select department_id
from departments
where location_id = 1800);
select employee_id, last_name, department_id
from copy_emp
where department_id = (select department_id
from departments
where location_id = 1800);
트랜잭션(Transaction)
: 논리적인 작업 단위
여러 DML이 모여서 하나의 트랜잭션이 구성됨.(insert, update, delete)
하나의 DDL 구문이 하나의 트랜잭션을 구성함. (create, alter, drop, truncate)
하나의 DCL 구문이 하나의 트랜잭션을 구성함. (grant,revoke)
DML 작업 후 commit, rollback으로 트랜잭션 종료해야함.
트랜잭션 제어 명령어(TCL)
COMMIT : 트랜잭션을 영구히 저장함.
ROLLBACK : 트랜잭션 처음으로 되돌림.
SAVEPOINT : 트랜잭션 진행 중 되돌아갈 지점(기점, 포인트)을 생성함.
// 트랜잭션 시작
update ---;
insert ---;
update ---;
commit;
// 트랜잭션 종료
// 트랜잭션 시작
insert ---;
delete ---;
rollback;
// 트랜잭션 종료
// 트랜잭션 시작
create table ---; (DDL)
(autocommit 내포)
// 트랜잭션 종료
// 트랜잭션 시작
grant ---; (DCL)
(autocommit 내포)
// 트랜잭션 종료
// 트랜잭션 시작
update ---;
update ---;
insert ---;
create table ---;
(DDL - autocommit 실행)
// 트랜잭션 종료
// 트랜잭션 시작
delete ---;
update ---;
SQL Plue 또는 SQL Developer를 정상 종료함.
(autocommit)
// 트랜잭션 종료
// 트랜잭션 시작
delete ---;
update ---;
SQL Plue 또는 SQL Developer를 비정상 종료함.
(autorollback)
// 트랜잭션 종료