Back-End/SQL 개발자 자격증

[ 데이터베이스 ] Foreign key specification options

psy_er 2023. 11. 6. 20:18
728x90

[ 데이터베이스 ] 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 조건과 동일하다

 

728x90