-
[MySQL] 트랜젝션, 세션, LOCK, DDL(CREATE, ALTER, RENAME, TRUNCATE , DROP)공부일지 2024. 4. 2. 12:36
[트랜젝션] 291page
: 명령어 수행 중 오류로 인해 한쪽만 수행되지 않도록 두 개를 묶어주는 것.
(a라는 사람한테 100만원을 빼고 b라는 사람한테 100만원을 이체하기 전에 오류가 나면 100만원이 날라가기 때문에 둘 다 수행되거나 둘 다 안되도록 묶어주는 것.)
TCL
: 트랜젝션을 제어할 때 사용하는 명령어
ROLLBACK 295page
: 트랜젝션 작업의 수행을 취소할 때 사용하는 명령어 (DML명령어에서만 사용 가능)
COMMIT
: 트랜잭션 명령어를 데이터베이스에 영구히 반영할 때 사용하는 명령어 (DML명령어에서만 사용 가능)
[세션] 298page
: 데이터베이스 접속을 시작으로 여러 관련 작업을 수행한 후 접속을 종료하기까지의 전체 기간
읽기 일관성의 중요성 299page
: 어떤 특정 세션에서 테이블의 데이터를 변경 중일 때, 그 외 다른 세션에서는 데이터의 변경이 확인되기 전까지 현재 진행 중인 변경과 무관한 본래의 데이터를 보여 주는 특성.
다른 세션에서는 COMMIT 완료 후 변경된 데이터가 확인됌.
[LOCK] 303page
: 트랜젝션이 완료 되기 전까지(COMMIT, ROLLBACK 전까지), 조작 중인 데이터를 다른 세션은 조작할 수 없도록 접근을 보류 시키는 것
데이터 조작이 완료될 때까지 기다리는 현상을 HANG(행)이라 한다.
LOCK의 종류
- 행 레벨 록
- 테이블 레벨 록
[데이터 정의어(DDL)] 311page
명령어를 수행하자마자 바로 반영됌, 자동 커밋되므로 롤백이 불가함.
CREATE
: 객체를 생성하는데 사용하는 명령어, 주로 테이블을 만들 때 사용
ALTER 317page
: 테이블을 변경하는 명령어
: ALTER TABLE (테이블 명) ADD (추가할 열 이름과 자료형)
RENAME 321page
: 테이블 이름을 변경하는 명령어
: ALTER TABLE (테이블 명) RENAME COLUMN (바꿀 컬럼명) TO (바꿀 컬럼의 새이름)
TRUNCATE
: 특정 테이블의 모든 데이터를 삭제하는 명령어
: TRUNCATE TABLE (테이블 명)
DROP
: 테이블을 삭제하는 명령어
: DROP TABLE (테이블 명)
* TRUNCATE와 DELETE문의 차이점
DML명령어인 DELETE문은 ROLLBACK과 COMMIT이 가능하지만, TRUNCATE는 불가함
[데이터 사전] 327page
사용자 테이블 – 데이터베이스를 통해 관리할 데이터를 저장하는 테이블
데이터 사전 – 데이터베이스를 구성하고 운영하는 데 필요한 모든 정보를 저장하는 특수한 테이블. 데이터베이스가 생성되는 시점에 자동 생성.
'공부일지' 카테고리의 다른 글
[HTML5 CSS3] 문서 구조, 태그, 작성 규칙, 글로벌 속성의 종류 (0) 2024.04.04 [MySQL] DDL, DML, DCL 정리, 제약조건 (0) 2024.04.02 [MySQL] 함수 정리 (0) 2024.04.01 [MySQL] 집합연산자 (0) 2024.03.27 [MySQL] select문, between, order by, distinct (0) 2024.03.26