미래학자
[MySQL] 11장 부록 (트랜잭션, 뷰, Date) 본문
지금까지 헤드퍼스트 SQL 책을 정리했다. 물론 SQL에는 더 많은 내용을 가지고 있다. 지금까지 다뤘던 내용은 기본적으로 많이 사용하는 내용을 위주로
다뤘다.
지금부터는 큰 주제로 다루지 못한 내용을 간단히 살펴 보려고 한다.
- 뷰 (VIEW)
- CHECK
- 트랜잭션
- DATE
1. 뷰 (VIEW)
뷰에 대한 설명은 다음과 같다.
쿼리를 저장하여 결과를 여러번 반복해서 확인하는 방법. 흔히, 가상 테이블이라 한다. 실제로 동작하는 것은 내부적으로 서브 쿼리를 호출한다.
뷰의 유용성
- 테이블 구조가 변경되어도 뷰를 계속 사용가능
- 어플리케이션 코드에 복잡한 쿼리가 존재하지 않게 할 수 있다.
- 쿼리가 어플리케이션에 노출 되지 않음
2. CHECK
만약, 성별 데이터를 'W', 또는 'M'일 것이라 예상을 하는데 다른 값이 들어간다면? 또는 다른 값을 넣는 것을 방지하고 싶다면??
* 데이터 무결성 : 특정 데이터에는 우리가 예상할수 있는, 의미가 있는 데이터 이외의 데이터가 들어가면 안된다.
* MySQL 에서는 안된다.3. 트랜잭션(TRANSACTION)
트랜잭션은 데이터 베이스를 안정적으로 사용하기 위해 고안된 내용이다. 트랜잭션에 대한 개념은 지금 많이 다루지는 못할 것 같다. 나중에 내가 트랜잭션에
대해 이해를 하게 되면 그 때 트랜잭션을 하나의 주제로 새롭게 글을 쓸 수 있을 것 같다.
지금은 대략적인 내용만 살펴보자.
트랜잭션 : 어떤 처리 과정에서 어떤 단계에서든 문제가 발생하면 초기 상태로 되돌려서, 전체가 실행되거나, 전체 중 어떤 것도 반영되지 않게 하는 것.
A : ATOMICITY (일부만 수행할 수 없음)
C : CONSISTENCY
I : ISOLATION (다른 트랜잭션이 실행 중에는 관련된 데이터에 접근 조차 못함)
D : DUABILITY (결과 그대로 저장되고 유지)
* MySQL에는 여러 엔진이 있는데 그 중 트랜잭션이 가능한 엔진은 BDB, InnoDB 다. (Default 는 InnoDB)
ALTER TABLE your_table TYPE = InnoDB; # 변경 가능
4. DATE (DATETIME, TIME)
자료형 |
format |
예 |
DATE |
YYYY-MM-DD |
2016-11-23 |
DATETIME |
YYYY-MM-DD HH:MM:SS |
2016-11-23 11:12:53 |
TIMESTAMP |
YYYYMMDDHHMMSS |
20161123111253 |
TIME |
HH:MM:SS |
11:12:53 |
TIMESTAMP는 시스템 변수를 통해 시간을 받아 오고, DATETIME은 임의로 입력한다. DATETIME은 미래의 일정에 적합하고, TIMESTAMP는 어떤 처리 시간을
저장할 때 유용할 것으로 보인다.
아래와 같이 일정한 형태로 날짜 정보를 출력도 가능하다.
지금은 간단하게 내용을 다뤘지만, 몇몇 개는 더 공부하여 하나의 주제로 잡고 다시 다루는 날을 기약해본다.
'DataBase' 카테고리의 다른 글
[MySQL] 10장 사용자 권한 주기 (GRANT) (0) | 2016.11.23 |
---|---|
[MySQL] 9장 대용량 데이터 샘플 (SAMPLE) 사용하기 (1) | 2016.11.23 |
[MySQL] 8장 유니온(UNION), 서브 쿼리 (1) | 2016.11.22 |
[MySQL] 7장 조인 : JOIN (INNER, LEFT, RIGHT) (34) | 2016.11.22 |
[MySQL] 6장 외래 키 설정하기, 1NF (테이블 쪼개기), (1) | 2016.11.21 |