본문 바로가기
Certificate

SQLD 헷갈리는 내용

by 권세희 2021. 11. 19.

SQL문장 끝나고 ;(세미콜론) 빼먹지 말자 ❗

 

1. WHERE T1.COL1 = T2.COL1(+) <<< 이렇게 오른쪽 테이블에 (+)가 있을경우, LEFT OUTER JOIN이고

WHERE T1.COL1(+) = T2.COL1 <<< 왼쪽 테이블에 (+)가 있을경우가 RIGHT OUTER JOIN

 

2. delete tmp2;도 가능 from 없어도 된다. update도 where절이 없어도 가능!!

 

3. insert시 원하는 컬럼에만 값을 넣을려면 컬럼을 명시해줘야 함.

Insert into 주문(c1,c2,c3) values(10,20,NULL);

 

4. sort merge join을 merge join이라고도 한다.

 

5. 주식별자는 값의 변경을 할 수는 있지만, 그러면 관계가 의미가 없어짐... 따라서 주 식별자를 도출할 때는 값의 변경이 없는 컬럼을 주식별자로 선정해야 함.

 

6. 칼럼 반정규화

  • 중복 칼럼 추가: 조인 감소를 위해서 여러 테이블에 동일한 칼럼을 갖도록 함.
  • 파생 컬럼 추가: 조회 성능을 우수하게 하기 위해 미리 계산된 칼럼을 갖도록 함.
  • 이력 테이블에 기능 칼럼 추가: 최신값을 처리하는 이력의 특성을 고려해서 기능성 칼럼 갖도록 함.
  • PK에 의한 칼럼 추가: PK 종속자를 일반 속성으로 생성
  • 응용 시스템의 오작동을 위한 칼럼 추가

 

7. 속성은 엔터티를 설명하고 인스턴스의 구성요소가 된다.

특성에 따라 : 기본, 파생, 설계(일련번호 같은거)

분해 가능 여부에 따라: 단일, 복합, 단일값, 다중값(이거는 사실 다중값으로 표현되는게 아니라 다중값 테이블로 표현)

엔터티 구성 방식에 따라: 기본키, 외래키, 일반 속성

 

 

8. LAG(), LEAD() -> SQL SERVER에서는 지원안해줌

LEAD(칼럼명, 3) 이러면 자기 자신을 기준으로 3번째 후의 칼럼 값임

 

9. RATIO_TO_REPORT() : 합계 중에서 비율

PERCENT_RANK(): 시작할때 0, 끝은 1 나머지 칼럼은 나눈다.

CUME_DIST(): 행의 값을 누적으로 쌓는다. 0이 나올 수 없다.

NTILE(): 전체 행을 N개 타일로 나눈다.

10.

  ROUND(123.456,2),--반올림
  TRUNC(123.456,1),--버림
  MOD(10,3),--나머지
  CEIL(123.45),--해당 값보다 큰수중 가장 작은 정수(올림)
  FLOOR(123.45)--해당 값보다 작은수 중 가장 큰 정수(버림)

 

11. 셀프조인 시 LEFT OUTER JOIN임