[ 데이터베이스 ] Foreign key specification options
외래키 지정 시 옵션 (for 참조 무결성 유지)
1) RESRICT = NO ACTION
변경/삭제할 테이블이 참조하는 다른 테이블의 PRIMARY 값이 변경/삭제된다면 -> 테이블 변경/삭제 취소 (불가)
CHILD 테이블에 MASTER 테이블의 PK값이 없는 경우에만 MASTER 삭제 허용
2) CASCADE : ON UPDATE CASCADE & ON DELETE CASCADE
부모 테이블에서 PRIMARY 값이 변경/삭제되면 -> 함께 변경/삭제된다
3) SET NULL : ON UPDATE SET NULL & ON DELETE SET NULL
부모테이블에서 PRIMARY 값이 변경/삭제된다면 -> NULL로 세팅된다
EX) CREATE 테이블 자식테이블명 칼럼명 자료형 REFERENCES 부모테이블(칼럼명) ON DELETE CASCADE;
4) SET DEFAULT
MASTER(부모테이블) 삭제 시 CHILD 해당 필드 DEFAULT 값으로 지정
5) AUTOMATIC
MASTER에 PK가 없는 경우, MASTER PK 생성 후 CHILD 입력
6) DEPENDENT
MASTER에 PK가 존재할 때만 CHILD 입력 허용
트랜잭션 추가
DIRTY READ : 타 트랜잭션으로 수정 가능, BUT 아직 COMMIT 전 데이터만 읽기
NON-REPEATABLE READ : 같은 쿼리 수행, BUT 타 트랜잭션의 수정/삭제로 다른 값 RETURN 됨
PHANTOM READ : 같은 쿼리 수행, BUT 유령레코드가 두 번째 쿼리에서 발생함
내장함수 (BUILT IN)
단일행 함수 : 함수의 입력 값이 단일 행에 입력됨
다중행 함수 : 함수의 입력 값이 여러 행에 입력됨
1) 집계함수 - COUNT, SUM, AVG, MAX, MIN
2) 그룹함수 - ROLLUP, CUBE, GROUPING SETS
3) 윈도함수 - 다양한 분석기능 함수 RANK
CASE 표현
- 단일행 내장함수에서 표현식 작성, SQL의 비교 연산 기능 보완
- IF ~ THEN ELSE와 유사하다
CASE
SIMPLE_CASE_EXPRESSION 조건
ELSE 조건
END
>> 조건이 맞으면 조건 내의 THEN 절을 수행하고, 조건이 맞지 않으면 ELSE 절을 수행한다.
>> 같은지 확인한다, 동등조건
CASE
SEARCHED_CASE_EXPRESSION 조건
ELSE 조건
END
>> 조건이 맞으면 조건내의 THEN 절을 수행하고, 조건이 맞지 않으면 ELSE 절을 수행한다.
>> 여러 조건 (>,>= 등) 사용가능
DECODE(표현식, 기준값 1, 값1 [기준값 2, 값 2,... , 디폴트값)
>> ORACLE에서만 사용되는 함수로, 표현식의 값이 기준값 1이면 값 1을 출력하고, 기준값 2이면 값 2를 출력한다.
>> 기준값이 없으면 디폴트 값을 출력한다.
>> CASE 표현의 SIMPLE_CASE_EXPRESSION 조건과 동일하다
'Back-End > SQL 개발자 자격증' 카테고리의 다른 글
[ 데이터베이스 ] PL/SQL, T-SQL, Trigger (1) | 2023.11.12 |
---|---|
[ 데이터베이스 ] Built in Function (0) | 2023.11.12 |
[ 데이터베이스 ] Entity Classification and Characteristics (1) | 2023.11.02 |
[ 데이터베이스 ] ERD, Data Modeling, Normalization (0) | 2023.11.01 |
[ 데이터베이스 ] Optimizer, Execution Plan 2 (1) | 2023.10.30 |