Q. 이름이 DAVIES인 사람보다 후에 고용된 사원들의 이름 및 고용일자를 출력하시오. 고용일자를 역순으로 출력하시오.
이름 함정! 테이블에 이름대로!
데이터 처리
일괄처리 : 작업을 한번에 모아서 한꺼번에 처리. 안정됐지만 느림. 고객의 피드백을 바로 처리 x. ex.금융권
실시간처리 : 고객의 요청을 실시간으로 반영. 과부하로 애로사항
분산처리 : 시스템을 여러개로 나누어서 분산해서 처리. 하이브리드 방식.
데이터 조작
테이블에 새 행 추가
테이블에 기존 행 수정
테이블에서 기존 행 삭제
★ 트랜젝션은 논리작업단위를 형성하는 dml문의 모음으로 구성된다.
트랜젝션 : 일괄 처리를 하기 위한 작업의 단위.
★ Commit - 물리적으로 완벽히 저장. 트랜젝션이 정상적으로 수행 되었을 때 트랜젝션에 의해 작업 내용이 한번에 DB에 영구히 저장됨. 한번 커밋된 디비는 절대 취소 x
★ rollback - 트랜젝션이 비정산적인 작업이 진행되었을 때 트랜젝션 시작 이전 시점으로 취소되는 작업. 트랜젝션이 진행중인 상태일 때 취소되는 작업.
연속된 dml 용량 전체가 트랜젝션 한 개. DML 명령어 다음, 새로운 명령어가 실행 됐을 때 오토커밋 발생.
DDL DCL - 명령문 한 개가 한 개의 트렌젝션. 시작과 동시에 오토커밋이 발생.
insert - 행단위, 한 번에 한 행만 추가됨.
delete - 행단위
update - 열단위. 컬럼단위.
삽입할 행 있을 때 테이블이 어떤 칼럼들을 가지고 있는지 꼭 확인! 데이터 타입도 꼭 확인!
number(4) ->숫자 4글자까지.
insert into table_name->table_name에 있는 모든 데이터에 삽입하겠다.
insert into table_name(컬럼이름)->명시된 컬럼에만 삽입하겠다.
values (컬럼별로 입력할 데이터(값)을 명시)
into절에 명시된 컬럼의 순서, 개수, 데이터타입, 길이에 맞게
values절의 데이터는 1:1 매칭해야함!
insert절의 무결성 점검
1. 컬럼 무결성 - 컬럼 구조에 맞는 데이터
2. pk, fk (제약조건) 무결성 -
null 값 추가하기.
into절 자동삽입 컬럼이름 삭제
values 수동삽입 null 키워드 직접 명시 -> 이 방법 추천.
sysdate - 컴퓨터에 저장된 오늘 날짜.
update set
delete - 행 제거
디비 동시성 하나의 디비에 많은 유저가 동시에 트랙젝션 진행될 때 어떻게 보호가 되는지
읽기 일관성 - '다른 트랜젝션에 의해 변경된 내용은 다른 어떤 트랜젝션도 볼 수 없게 하겠다.' 커밋이 되어야지만 변경된 내용 확인 가능.
DB 대기 상태 - 트렌젝션 사용되고 있는 행이 기본적으로 오라클은 락 걸어버림.
병행제어기법 - 하나의 테이블에 여러개의 트랜젝션이 동시에 진행되어 락 걸리면 피해가 일어나지 않도록 (락수가 많으면 동시성이 떨어짐)
롤백이 일어났다 = 데이터의 손실이 발생했다.
트랜젝션이 크면 데이터의 손실이 클 수 있음.
트렌잭션은 적당한 사이즈가 좋음. 크면 안좋음
커밋명령어 반드시 추가 삽입해야함.
컨트롤 쉬프트 O 전체 임폴트