# JOIN : 여러 테이블의 데이터를 검색하는 것
- 등가 조인 : 테이블 간 동일한 값을 이용 관련된 정보를 검색
- 비 등가 조인 : 테이블 간에 다른 값을 비교해서 검색
1> 외부 조인
[문법]
SELECT 테이블1.컬럼, 테이블2.컬럼……
FROM 테이블1, 테이블2, …
WHERE 조인조건(+)
AND 조건…
-> ‘+’기호는 데이터가 부족한 쪽에 기술
아래 두 조인 쿼리는 동일한 결과가 조회됩니다.
1]
SELECT a.name, a.num
FROM table_A a
JOIN table_B b ON a.num = b.num
2]
SELECT a.name, a.num
FROM table_A a
WHERE a.num = b.num
2> 좌우 외부 조인 (LEFT RIHGT OUTER JOIN)
[문법]
SELECT 테이블1.컬럼, 테이블2.컬럼……
FROM 테이블1
[LEFT, RIGHT, FULL] [OUTER] JOIN 테이블2 [ON 조인 조건 | USING 조인컬럼]
WHERE 조건…
- LEFT JOIN 테이블 : 왼쪽 테이블에 조인 조건과 일치하지 않은 데이터도 검색
- RIGHT JOIN 테이블 : 오른쪽 테이블에 조인 조건과 일치하지 않은 데이터도 검색
- FULL JOIN 테이블 : 양쪽 테이블에 조인 조건과 일치하지 않은 데이터도 검색
# GROUP BY절
SELECT [DISTINCT / ALL] 컬럼 OR 그룹함수 …
FROM 테이블
WHERE 조건
GROUP BY 그룹대상
ORDER BY 정렬대상 [ASC/DESC]
-> GROUP BY 절에는 SELECT 절의 그룹함수와 컬럼을 그룹화 줘해야 한다.
-> 그룹함수를 GROUP BY 절에 지정된 컬럼의 값이 같은 행에 대해서 통계 정보를 계산하는 의미
# 트랜잭션 (Transaction) 정리
- 함께 실행되는 작업의 단위
- 더 이상 쪼갤 수 없는 최소한의 작업 단위
(예시 : 입금과 출금을 하나의 트랜잭션으로 묶어 둘 중에 하나라도 오류가 나면 둘 다 취소가 되도록 처리)
- 특징
원자성 : 전체 처리 or 취소 (일부 X)
일관성 : 데이터베이스 무결성 유지
독립성 : 동시 실행되는 트랜잭션 간 서로 영향 X
영속성 : 종료된 트랜잭션 결과는 DB에 반영
- 트랜잭션 시작 : DML, DDL, DCL 문장이 실행 되었을 때 시작
- 트랜잭션 종료 :
COMMIT, ROLLBACK 명령 실행 시 종료 (DML)
DDL, DCL 문장 실행 완료되면 자동 종료
사용자의 정상 종료 시 종료
데드락 경우 일부 트랜잭션 종료
- 언두 세그먼트 : DML 작업 경우 ROLLBACK 작업을 위해 작업 이전 정보를 저장하기 위한 언두(Undo) 테이블스페이스와 언두 세크먼트 구조 사용
1. Update 문장이 수행되면, 원래의 값 A는 언두 세그먼트 위치에 저장되고, 테이블에는 변경할 값 B가 저장
2. 변경된 값B의 행과 테이블은 잠금(Lock) 상태로 변경
3. COMMIT 이 되면, 해당 행과 테이블의 잠금이 해제되면서 변경된 값으로 저장
4. ROLLBACK 이 되면, 언두 세그먼트에 저장되었던 원래의 값 A로 원복되고 잠금 해제
'IT ▶ > Database' 카테고리의 다른 글
[Database Index] 데이터베이스 인덱스, 뷰, 시퀀스 개념과 역할 (0) | 2020.03.11 |
---|---|
[Database] 데이터베이스 테이블 컬럼 추가, 삭제, 변경 방법 (0) | 2020.03.09 |
[Database] 데이터베이스 테이블 제약조건 PK, FK, UK 개념 (2) | 2020.03.07 |
[Database] 데이터베이스 테이블 생성 & 테이블 데이터타입 개념 (0) | 2020.03.06 |
데이터베이스 SQL 기본함수 정리 (숫자, 날짜 함수) (0) | 2020.03.02 |