-
2.8 SQL 트랜잭션(SAVEPOINT)SQL 과정 2019. 2. 8. 14:27
1. SAVEPOINT 가. 현재의 트랜잭션을 작게 분할하는 명령어 나. 저장된 SAVEPOINT는 ROLLBACK TO SAVEPOINT문을 사용하여 표시한 곳까지 ROLLBACK 할수 있다. 다. 여러 개의 SQL문을 실행하는 트랜잭션 경우 사용자가 트랜잭션 중간 단계에서 SAVEPOINT를 지정하고 차후 ROLLBACK과 함께 사용하여 현재 트랜잭션 내의 특정 SAVEPOINT까지 ROLLBACK할수 있게 한다. 라. SAVEPOINT 도식도 1) COMMIT 명령이 수행된 후 다음 COMMIT명령이 수행 될때까지가 하나의 트랜잭션으로 구성되므로 3개의 명령문(UPDATE, DELETE, INSERT)이 하나의 트랜잭션이 된다. 2) 이렇게 트랜잭션을 구성할 때 중간 중간 SAVEPOINT명령으로 ..
-
2.8 SQL 트랜잭션 명령어(COMMIT, ROLLBACK)SQL 과정 2019. 2. 8. 12:31
1. 트랜잭션 제어 명령어 가. 트랜잭션 제어어는 트랜잭션의 DML작업단위를 제어하는 명령어 나. COMMIT 1) 모든 작업을 정상 처리하겠다고 확정하는 명령어 2) 트랜잭션의 처리과정을 데이터베이스에 반영하기 위해, 변경된 내용을 모두 영구 저장한다. 3) COMMIT 수행하면, 하나의 트랜잭션 과정을 종료하게 된다. 4) TRANSACTION(INSERT, UPDATE, DELETE)작업 내용을 실제 데이터베이스에 저장된다. 5) 이전 데이터가 변경된 데이터로 완전히 UPDATE된다. 6) COMMIT후 모든 사용자가 변경된 데이터의 결과를 볼수 있다. 7) COMMIT이후 데이터 상태 가) 데이터에 대한 변경 사항이 물리적 디스크에 반영된다. 나) COMMIT 이전 데이터는 복구할수 없다. 다) ..
-
2.8 SQL 트랜잭션, 데이터베이스, 트렌잭션 제어필요성SQL 과정 2019. 2. 8. 11:52
1. 트랜잭션 가. 데이터베이스 관리 시스템의 주요장점인 데이터의 일관성과 무결성을 보장하기 위해서는 반드시 트랜잭션 관리가 필요하다. 나. 트랜잭션은 데이터베이스 내에서 하나의 그룹으로 처리해야 하는 명령문들들 모아놓은 작업 단위를 의미 다. 트랜잭션 내의 모든 처리 대상 명령문들은 반드시 완전히 수행되어야 하며 라. 만약, 모두 완전히 수행되지 않고 어느한 문장이라도 에러가 발생하였다면 트랜잭션으로 묶인 전체 명령문은 모두 최소 된다.(ALL-or-Nothing방식) 마. Oracle에서는 이러한 트랜잭션 제어를 위한 명령어로 COMMIT, SAVEPOINT, ROLLBACK이 제공 바. 프로그램 소스에서 트랜잭션 형식 1) 한 트랜잭션을 프로그래밍 언어나 DML(데이터 조작언어)로 개발된 사용자 프..
-
2.8 SQL 데이터 조작어(MERGE)SQL 과정 2019. 2. 8. 11:41
1. MERGE문 가. 구조가 같은 두 개의 테이블을 하나의 테이블로 합치는 기능 나. 기준 테이블에 자료가 존재하면, 새로운 값으로 갱신(UPDATE) 되고 다. 존재하지 않으면 새로운 행으로 추가(INSERT) 된다. (1) job이 MANAGER인 emp테이블의 데이터만 가져와 emp11 테이블 생성 (2) emp테이블의 모든 데이터와 구조를 갖는 emp10테이블 생성 (3) emp11테이블의 job컬럼 값들을 TEST로 모두 수정(UPDATE) (4) emp11 테이블 하나의 데이터를 생성(INSERT INTO ... VALUES(...))한다. (5) emp11 테이블을 emp10테이블로 병합(MERGE INTO emp10)
-
2.8 SQL 데이터조작어(UPDATE, DELETE)SQL 과정 2019. 2. 8. 10:08
1. UPDATE문 가. 테이블에 저장된 데이터를 수정하기위해 사용 나. 기존의 행을 수정하는 것 다. 형식 1) 어던 행의 데이터를 수정할 것인지를 WHERE절의 조건으로 지정한다. 2) WHERE절을 사용하지 않을 경우 테이블에 있는 모든 행이 수정된다. 3) 그러므로, WHERE절 사용 유무를 신중히 결정해야한다. 4) 테이블에서 여러개의 컬럼값을 변경하고자 할 경우 SET절에 콤마( , )를 추가하여 컬럼 = 값을 나열해주면 된다. 5) UPDATE문의 SET절에 서브쿼리문을 기술하면 서브 쿼리를 수행한 결과로 내용이 변경된다. 6) 이 방법을 이용하면 다른 테이블에 저장된 데이터를 이용하여 해당 컬럼 값을 변경할수 있다. * emp06 테이블의 deptno의 모든 행을 30으로수정한 것(WHER..
-
2.7 SQL 데이터 조작어(DML) INSERTSQL 과정 2019. 2. 7. 16:39
1. 데이터 조작어(DML) 가. 데이터의 검색 및 삽입, 삭제, 변경을 위해서 사용하는 언어 나. DML은 데이터베이스의 운영 및 사용과 관련해 가장 많이 사용하는 질의문으로 데이터 검색과 수정 등을 처리한다. 다. INSERT 문 1) 테이블에 새로운 로우를 추가할때 사용 2) 테이블에 새로운 데이터를 입력하기 위해 사용하는 데이터 조작어 * dept02 테이블에(INTO) deptno, dname, loc컬럼 생성하여 값(VALUES)을 10, ACCOUNTING, NEW YOURK로 저장하였다. (기존에 생성한 데이터 크기보다 큰 값을 넣게 되면 오류 발생[10-->100]) 3) 컬럼명 생략하여 데이터 추가가) 테이블의 모든 컬럼에 자료를 입력하는 경우에는 컬럼 목록을 기술하지 않아도 된다.나)..
-
2.7 SQL 데이터 딕셔너리(USER_TABLE, ALL, DBA)SQL 과정 2019. 2. 7. 15:42
1. 데이터 딕셔너리(Data Dictionary : DD) 가. 대부분 읽기 전용으로 제공되는 테이블 및 뷰들의 집합으로 데이터 베이스 전반에 대한 모든 정보를 제공 나. 데이터 베이스의 구조 정보, 즉 메타 데이터를 담고 있다. 메타 데이터는 데이터 베이스의 용량, 권한 등의정보를 담고 있다. 다. 테이블 생성, 변경 등 작업할 때 마다 데이터 베이스 서버에 의해 자동으로 갱신되는 테이블이다. 라. 사용자는 이 내용을 직접 수정하거나 삭제가 불가능하다. 마. 내용을 직접적으로 알수는 없다. 바. 데이터 딕셔너리 뷰 1) USER_TABLES 데이터 딕셔너리 뷰가) 자신의 계정이 소유한 객체 등에 관한 정보를 조회한다.나) USER가 붙은 데이터 딕셔너리중 자신이 생성한 테이블, 인덱스, 뷰 등과 같은..
-
2.7 SQL 데이터 정의어(DROP, TRUNCATE, RENAME TABLE, 삭제명령어들의 차이점)SQL 과정 2019. 2. 7. 15:22
1. DROP TABLE 가. 기존 테이블의 존재를 제거 나. 기존 테이블을 제거하면 테이블에 저장되어 있는 데이터도 함께 제거 된다. 다. 한번 제거한 데이터들은 다시 복구가 힘들므로 유의할 것 * emp01 테이블 삭제(DROP TABLE) 2. TRUNCATE 가. 기존에 사용하던 테이블의 모든 로우를 제거하기 위한 명령어(테이블은 존재하고 데이터만 삭제) 나. DROP TABLE vs TRUNCATE TABLE * emp02 테이블이 잘렸다.(TRUNCATE TABLE) 3. RENAME(잘사용하지 않는다 한다.) 가. 기존에 사용하던 테이블의 이름을 변경하기 위한 명령어 4. DELETE vs TRUNCATE vs DROP 가. 모두 삭제하는 명령어이지만 아주 중요한 차이점이 존재한다. 나. 삭..