[SQLD] 오답노트

SSOYEONG·2022년 8월 29일
0

SQLD

목록 보기
1/1
post-thumbnail

노랭이

UNIQUE

  • 테이블 내에서 중복되는 값이 없으며 NULL 입력이 가능하다.

COLUMN 삭제

  • ALTER TABLE EMP DROP COLUMN COMM;

테이블 이름 변경

  • RENAME STADIUM TO STADIUM_JSC

TRUNCATE TABLE

  • 테이블 자체 삭제 X
  • 해당 테이블에 있던 행들이 제고, 저장 공간을 재사용 가능
  • UNDO를 위한 데이터를 생성하지 않아, DELETE보다 빠르다.

CASE WHEN

  • CASE WHEN LOC = 'NEW YORK' THEN 'EAST'
  • CASE LOC WHEN 'NEW YORK' THEN 'EAST'

NULL 연산

  • NULL 포함 연산 결과는 모두 NULL이다.
  • AVG 연산에서 NULL은 제외된다.
  • NULL 비교는 IS NULLIS NOT NULL만 가능하다.

제약조건

  • CONSTRAINT PRODUCT_PK PRIMARY KEY(PROD_ID)

Dependent

  • Master 테이블에 PK가 존재할 때만 Child 입력 허용
  • 즉, Parent에 PK가 없으면 Child 입력을 허용하지 않음

Automatic

  • Master 테이블에 PK가 없는 경우 Master PK 생성 후 Child 입력

21회

NOT IN()

  • 괄호 안 null이 있다면 항상 참이기에 이에 대한 부정은 거짓, 아무것도 리턴하지 않는다.

논리 모델링의 외래키

  • 논리 모델링의 외래키는 물리 모델에서 반드시 구현되는 것은 아니다. 선택사항이다.

ROLLUP()

  • ROLLUP(A, B)의 경우 (A, B), (B), ()로 집계된다.
  • 그러므로 인자의 순서가 중요

IDENTITY() - Sql Server

  • IDENTITY로 지정된 칼럼에 값을 넣으면 오류 발생

CHECK() - Oracle

  • NULL을 넣으면 무시됨

Hash Join

  • 각 테이블에 INDEX가 반드시 필요한 것은 아님
  • 작은 테이블을 메모리에 올리는 선행 테이블로 사용
  • Non Equal Join 불가능. Equal Join만 가능

Sort Merge Join

  • 조인을 위해 사전 소트 작업이 필요

INDEX

  • 문자, 부정형은 인덱스 사용 불가

결합 함수

  • Oracle: CONCAT, ||
  • SQL Server: +

WITH TIES

  • TOP(~~) [WITH TIES];
  • TOP N의 마지막 행과 같은 값이 있는 경우 추가 행이 출력되도록 지정
  • 동일 데이터가 있을 때 추가 건수가 출력

RANGE BETWEEN A AND B

  • UNBOUNDED PRECEDING: A에만 들어갈 수 있음
  • UNBOUNDED FOLLOWING: B에만 들어갈 수 있음
  • CURRENT ROW: 둘 다 들어갈 수 있음

ALIAS

  • FROM절에 ALIAS(별칭)를 쓰기 위해서는 AS 키워드를 사용할 수 없다.

<>

유저와 권한

  • DBA 권한: 해당 권한을 가진 유저와 SYSTEM, SYS 등의 상위 유저가 해당 권한을 부여할 수 있음
  • 테이블의 소유자는 해당 테이블의 DML 권한을 다른 유저에게 부여할 수 있다.

30회

도메인

  • 엔터니 내에서 속성에 대한 데이터 타입, 크기 그리고 제약사항을 지정하는 것

식별자

  • 스스로 생성여부에 따라 분류되는 식별자는 내부 식별자외부 식별자이다.

Row migration

  • 데이터 블록에서 수정이 발생하면 수정된 데이터를 해당 데이터 블록에 저장하지 못하고 다른 블록의 빈 공간을 찾아 저장하는 방식

Row chaining

  • 로우 길이가 너무 길어서 데이터 블록 하나에 데이터가 모두 저장되지 않고 두 개 이상의 블록에 걸쳐 하나의 로우가 저장되는 현상

IN('A', 'X', NULL)

  • NULL은 무시된다.

SQL 계층구조 수행 순서

  • 선행테이블 -> 인덱스 -> 조인

Trigger

  • 테이블, 뷰에 트리거를 작성할 수 있으며 데이터베이스 작업에도 정의할 수 있다.

COALESCE(ID, SAL)

  • NULL이 아닌 최초의 표현식을 나타냄
  • 1차 선택값으로 ID, 2차 선택값으로 SAL
  • 둘 다 NULL이라면 NULL 리턴

NULLIF(ID, 1234)

  • ID와 1234를 비교해서 같으면 NULL 리턴, 같지 않으면 ID 리턴

NVL(SAL, 10)

  • SAL이 NULL이면 10으로 출력

CHARACTER

  • 고정 길이 문자열 정보로 S만큼 최대 길이를 갖고, 고정 길이를 가지고 있으므로 할당된 변수 값의 길이가 S보다 작을 경우에는 그 차이 길이 만큼 공간으로 채워진다.

Sort Merge Join

  • 중복 제거를 위해 정렬 작업을 하지 않음

Unique Index Scan

  • 스캔 시 PK로 지정된 column을 모두 조건으로 삼아야 한다.

Cross Join과 Natural Join

  • Cross Join과 Natural Join은 Where 절에서 조건을 걸 수 없다.
  • Cross Join은 Join에 참여하는 테이블의 Join Key가 없을 경우 발생한다.

List partition

  • 데이터의 양이 매우 많은 대용량 테이블
  • 데이터의 생성일자를 구분짓는 특정 컬럼이 없는 형태

컬럼의 데이터 타입 변경

  • ALTER TABLE DEPT ALTER COLUMN VARCHAR(30) NOT NULL;
profile
Übermensch

0개의 댓글