MySQL 데이터베이스 기본 연구 노트 05-TCL

TCL

트랜잭션 제어 언어
1. 트랜잭션
트랜잭션 : 하나 또는 그룹의 SQL 문이 실행 단위를 형성하며, 모두 실행되거나 실행되지 않습니다. 장치의 SQL 문이 실패하거나 오류를 생성하면 전체 장치가 롤백됩니다. 영향을받는 모든 데이터는 트랜잭션이 시작되기 전 상태로 돌아갑니다. 유닛의 모든 SQL 문이 성공적으로 실행되면 트랜잭션이 원활하게 실행됩니다.

트랜잭션의 속성 :
1. 원 자성 (원 자성)
트랜잭션은 분할 할 수없는 작업 단위이며, 트랜잭션의 작업은 발생하거나 발생하지 않습니다
. 2. 일관성 (일관성)
트랜잭션은 데이터베이스를 일관성있는 상태에서 다른 일관성 상태로 만들어야합니다.
3. 격리 (격리)
트랜잭션 실행은 다른 트랜잭션에 의해 방해 될 수 없습니다. 즉, 트랜잭션이 사용하는 내부 작업 및 데이터는 다른 동시 트랜잭션과 격리되며 동시에 실행되는 다양한 트랜잭션은 상호 배타적 인 간섭이 될 수 없습니다
. 내구성
트랜잭션이 커밋되면 데이터베이스의 데이터에 대한 변경 사항은 영구적이며 다른 작업 및 데이터베이스 오류가 영향을 미치지 않아야합니다.

2. 구문
1 단계 : 트랜잭션
세트 autocommit = 0 열기,
2 단계 : SQL 문 작성
3 단계 : 트랜잭션
커밋 종료 ,
롤백,

3. 동시성 문제
더티 읽기 : 두 개의 트랜잭션 T1, T2, T1에 대해 T2에 의해 업데이트되었지만 아직 커밋되지 않은 필드를 읽은 후 T2가 롤백하면 T1이 읽은 콘텐츠가 유효하지 않습니다.
반복 불가능한 읽기 : 두 개의 트랜잭션 T1, T2, T1이 필드를 읽은 다음 T2가 필드를 업데이트 한 후 T1이 동일한 필드를 다시 읽고 값이 다릅니다.
팬텀 읽기 : 두 트랜잭션의 경우 T1, T2, T1이 테이블에서 필드를 읽은 다음 T2는 테이블에 새 행을 삽입합니다. 그 후 T1이 동일한 테이블을 다시 읽으면 몇 줄이 더 생깁니다.
격리 수준을 설정할 수 있습니다.

4.보기
의미 : 가상 테이블
적용 시나리오 :
동일한 쿼리 결과가 여러 곳에서 사용되고 쿼리 결과 SQL 문이 더 복잡합니다.

창조하다:

create view 视图名
as
查询语句;

수정 :

create or replace view 视图名
as
查询语句;
alter view 视图名
as
查询语句

지우다:

drop view 视图名,...

전망:

show create view 视图名;

보기 업데이트 :
1. 다음 키워드를 포함하는 SQL 문은 업데이트 할 수 없습니다 : grouping function, distinct, group by, having, union
2. 상수보기는 업데이트 할 수 없습니다.
3. Select 포함 하위 쿼리는 업데이트 할 수 없습니다.
4.
업데이트 할 수없는 하나의 뷰에서 5. 조인
6. where 절의 하위 쿼리는 from 절의 테이블을 참조합니다.

보기와 테이블의 비교 :
1.보기가 물리적 공간을 차지하지 않습니다. 테이블은 물리적 공간
2를 차지합니다 . 일반적으로보기를 추가, 삭제 또는 수정할 수 없습니다.

추천

출처blog.csdn.net/qq_44708714/article/details/105878050