[DB] 데이터 조작
데이터 조작
정보처리(데이터 처리 시스템)
-일괄처리
ex) 은행 업무(정산)
=> 한 번에 하나의 작업만 처리하므로 안정적이다.
=> 처리되기까지 시간이 소요된다.
-실시간 온라인 처리
=> 실시간으로 빠르게 처리한다.
=> 불안정하다.
=> 처리비용이 절감된다.
-분산처리
=> 업무를 분산해서 처리
=> 시스템 확장이 용이하다.
=> 하이브리드 처리방식(실시간으로 처리하다가 업무 시간이 종료된 후에는 일괄로 처리하는 방식)
DML(데이터 조작어)
-테이블에 새 행 추가
-테이블의 기존 행 수정
-테이블에서 기존 행 삭제
-트랜잭션은 논리 작업 단위를 형성하는 DML문의 모음으로 구성된다.
*트랜잭션 = 일괄처리를 하기 위한 작업의 단위(모음)
*Commit(커밋) : 트랜잭션에 의해서 수행이 된 변경된 내용을 DB에 물리적으로 저장
*Rollback : 트랜잭션이 비정상적으로 실행이 된 경우 트랜잭션이 시작하기 전으로 되돌림
INSERT문 구문
1. into절에 명시된 column의 (개수, 순서, data type) 길이에 맞도록 values 절은 반드시 1:1로 매칭이 돼야 한다.
2. 무결성 검증
- column 무결성 : 컬럼의 구조에 맞는 data
- 제약조건 무결성 : Pk. Fk

-INSERT문은 한 번에 한 행만 추가됩니다.
-각 열에 대한 값을 포함하는 새 행을 삽입한다.
-문자 및 날짜 값은 작은따옴표로 묶습니다.
널 값을 갖는 행 삽입
-암시적(implicit)방법: 열 목록에서 해당 열을 생략합니다.
-명시적(explicit)방법 : VALLUES절에서 NULL 키워드를 지정합니다.


되도록이면 명시적방법을 사용하자.
특정 값 삽입
-함수를 사용하여 테이블에 특정 값을 입력할 수 있다.
SYSDATE : 현재 날짜 및 시간을 제공하기 위한 함수
USER : 현재 사용자의 이름을 기록할 수 있는 함수
UPDATE문 구문
-UPDATE문을 사용하여 기존 행을 수정할 수 있다.


-where 절을 지정하여 특정 행을 수정


-where절을 생략하면 테이블의 모든 행이 수정
DELETE문 구문
-DELETE문을 사용하여 테이블에서 기존행을 제거할 수 있다.

-where 절을 지정하여 특정 행을 삭제

-where절을 생략하면 테이블의 모든 행이 삭제
읽기 일관성
- 읽기 일관성을 통해 항상 일관성 있는 데이터 뷰를 볼 수 있습니다.
- 한 사용자가 변경한 내용이 다른 사용자가 변경한 내용과 충돌하지 않습니다.
- 읽기 일관성은 동일한 데이터에 대해 다음을 보장합니다.
=>데이터를 읽는 중에는 쓸 수 없습니다.
=>데이터를 쓰는 중에는 읽을 수 없습니다.
- 읽기(SELECT 문)
- 쓰기(INSERT, UPDATE, DELETE 문)
읽기 일관성이 필요한 이유
-데이터베이스를 읽거나 쓰는 사용자에게 일관성 있는 데이터 뷰를 제공하기 위해
-데이터를 읽는 사용자가 변경 중인 데이터를 보지 못하도록 하기 위해
-데이터를 쓰는 사용자가 일관성 있는 방식으로 데이터베이스 데이터를 변경하도록 하기 위해
-한 사용자가 변경한 데이터와 다른 사용자가 변경한 데이터 간의 충돌을 방지하기 위해