DML
행 추가 삭제 수정
트랜잭션: 데이터 구조의 변경작업을 일으키는 작업
1.SELECT-트랜잭션에 영향을 미치지 않음
*DDL
*DCL
:문장 하나가 1개의 트랜잭션 ,DML 같은경우 롤백으로 복구 가능하나 DDL. DCL은 불가능!!!
2.INSERT (가장 많이 error 발생)
insert into 테이블이름(데이터순서 및 타입) values (데이터,데이터,데이터);
:데이터 삽입시, 무결성 검사
- Column 무결성
- pk.fk (제약조건) 무결성
[삽입]
into 절 column 삭제 => 자동으로 null 삽입
values 절 null 직접 삽입
[행 단위 연산수행]
*INSERT
3.DELETE
[열 단위 연산수행]
4.UPDATE
UPDATE 테이블 이름
SET 해당컬럼=새로운 데이터
WHERE 조건절;
emp(자식)
e_id d_id 1)insert 10->o 40->x
100 10 2)update 10->o 10->50 x
101 20 3)delete 10->o
102 10
d_id dname(부모)
10 a 1)insert 10-> x 40->o
20 b 2)update 10->20 x 30->50 o.x (자식에서 참조하지 않으면 업뎃가능)
30 c 3)delete 10->x
DB의 병행 제어
왼쪽은 업데이트 명령어 쓴 데이터 오른쪽은 기존 데이터
오른쪽 기존DB가 왼쪽의 트랜잭션중인 DB에 껴들기 위해 업데이트를 진행하였으나 LOCK 걸린 상태이므로 커서만 깜빡거림을 확인할수 있음
트랜잭션이 진행됨과 동시에 해당 db에는 lock 이 걸림
DB의 동시성 제어
DB 의 DEADLOCK 발생시
한쪽의 DB를 rollback 하던지 한쪽의 트랜잭션을 종료하기 위해서 commit 해줘야함
트랜잭션의 크기가 작을시
lock 의 수가 많아짐으로 동시성 또한 상승됨
트랜잭션의 크기가 클시
lock 의 수가 떨어짐으로 동시성 또한 감소
DDL
(구조를 가지고 있는 애들.객체)
1.CREATE
create table 테이블명(컬럼명,컬럼타입(length));
*컬럼타입
char() 성능우선시 저장공간 선정시 생각 많이 해야함!!
varchar2() 저장공간 활용
number(9,2) 9개 자리중 2번짜 자리 부터 소수점
date
timestamp: 소수점 이하 초까지 포함하는 날짜(년월일시간분초 까지 확인가능)
ex)
hire_date timestamp
[서브쿼리 수행시]
create 는 데이터와 데이터의 구조까지 가져옴
create table dept80
as
select employee_id, last_name,
salary*12 ANNSAL,
hire_date
from employees
where department_id=80;
insert 는 데이터의 값만 가져옴
insert into 테이블명 values (테이터값,데이터값);
insert into dept80
select employee_id, last_name, salary*12, hire_date
from employees
where department_id=80
2.ALTER
ALTER TABLE 테이블명 add (컬럼명 컬럼타입)
*옵션
modify:데이터 타입 변경 /길이변경 (기존 데이터 존재시 유의해야함)
DROP: 데이터 삭제/ 컬럼구조 삭제/저장공간 삭제
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
DROP은 DDL로서 수행시 테이블 전체의 LOCK 을 걸게된다.
이로서 DB의 동시성이 하락함..현업에서 자주사용치 않음
DROP 대신 UNUSED를 사용함
데이터와 공간의 삭제가 안되며, 오로지 상태정보만 변경(DB가 데이터를 인식할수 없도록함)
동시성이 극대화 되며(LOCK 이 걸리지 않음), 그러나 공간이 남아있음
ALTER TABLE 테이블명
SET UNUSED (컬럼명);
이때문에 DROP과 UNUSED를 합친 아래와 같이 많이 사용함
DROP UNUSED COLUMNS;
3.DROP
참조하고있는 테이블이 존재시 삭제가 불가능.
DELETE DATA 저장공간남음 ROLLBACK 가능
TRUNCATE DATA 테이블구조남음,DATA저장공간 삭제 ROLLBACK 불가/백업 해야됨
DB에서의 성능이 가장 우수
DROP DATA/테이블구조 ALL삭제 ROLLBACK 불가/백업 해야됨
'Personal Studying~ > DB & SQL' 카테고리의 다른 글
[DB&SQL] DCL & 제약조건 & TOP-N & 시퀀스 (0) | 2021.01.06 |
---|---|
[DB & SQL] 그룹함수,서브쿼리 (0) | 2021.01.04 |
[DB &SQL] 셀프조인 (0) | 2020.12.31 |
[DB&SQL] alias-리터럴-where (0) | 2020.12.30 |
조인 (0) | 2020.12.24 |