본문 바로가기
자격증/SQLD - 준비중

SQLD정리 -4

by Woodland 2018. 12. 1.

1. 단일행 함순의 종류

- 문자형 함수

= 문자를 입력하면 문자나 숫자값을 반환한다.

- 숫자형 함수

= 숫자를 입력하면 숫자 값을 반환한다.

- 날짜형 함수

= DATE타입의 값을 연산한다.

- 변환형 함수

= 문자, 숫자, 날짜형 값의 데이터 타입을 변환한다.

- Null관련 함수

= null을 처리하기 위한 함수.


2. NULL의 특성

- 널값은 아직 정의되지 않은 값으로, 0또는 공백과 다르다. 0은 숫자이고 공백은 하나의 문자이다.

- 테이블을 생성할 때 NOT NULL 또는 PRIMARY KEY로 정의되지 않은 모든 데이터 유형은 널값을 포함할 수 있다.

- 널 값을 포함하는 연산의 경우 결과 값도 널값이다. 모르는 데이터에 숫자를 더하거나 빼도 결과는 마찬가지로 모르는 데이터인 것과 같다.

- 결과값을 NULL이 아닌 다른 값을 얻고자 할 때 NVL/ISNULL함수를 사용한다. NULL값의 대상이 숫자 유형의 데이터인 경우에는 주로 0으로, 문자 데이터인 경우에는 x같이 해당 시스템에서 의미없는 문자로 바꾸는 경우가 많다.


3. 단일행 NULL관련 함수의 종류.

- NVL(EX1,EX2) / ISNULL(EX1, EX2)

= EX1의 결과값이 NULL이면 EX2의 값을 출력한다. 단, EX1과 EX2의 결과 데이터 타입이 같아야 한다.NULL관련 가장 많이 사용되는 함수이므로 상당히 중요하다.

- NULLIF(EX1, EX2)

= EX1이 EX2와 같으면 NULL을, 같지 않으면 EX1을 리턴한다.

- COALESCE(EX1,EX2,.....)

= 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다. 모든 표현식이 NULL이라면 NULL을 리턴한다.


4.  집계 함수의 종류

- COUNT(*)

= NULL값을 포함한 행의 수를 출력한다.

- COUNT(표현식)

= 표현식의 값이 NULL값인 것을 제외한 행의 수를 출력한다.

- SUM([DISTINCT|ALL] 표현식)

= 표현식의 NULL값을 제외한 합계를 출력한다.

- AVG([DISTINCT|ALL] 표현식)

= 표현식의 NULL값을 제외한 평균값을 출력한다.

- MAX([DISTINCT|ALL] 표현식)

= 표현식의 최대값을 출력한다.

- MIN([DISTINCT|ALL] 표현식)

= 표현식의 최소값을 출력한다.


- STDDEV( [DISTINCT|ALL] 표현식)

= 표현식의 표준편차를 출력한다.)

- VARIAN([DISTINCT|ALL] 표현식)

= 표현식의 분산을 출력한다.


5. ORDER BY 절 특징

- 기본적인 정렬 순서는 오름차순(ASC)이다.

- 숫자형 데이터 타입은 오름차순으로 정렬했을 경우에 가장 작은 값부터 출력된다.

- 날짜형 데이터 타입은 오름차순으로 정렬했을 경우 날짜 값이 가장 빠른 값이 먼저 출력된다.

- ORACLE에서는 NULL값을 가장 큰 값으로 간주한다.

- SQL서버에서는 NULL값을 가장 작은 값으로 간주한다.

- ORDER BY 절에서 컬럼명 대신 ALIAS명이나 컬럼 순서를 나탄는 정수를 혼용하여 사용할 수 있다.

- GROUP BY 절을 사용하는 경우 ORDER BY 절에 집계 함수를 사용할 수도 있다.


6. SELECT문의 실행 순서

@ FROM -> WHERE -> GRUP BY -> HAVING -> SELECT -> ORDER BY

- FROM     : 발췌대상 테이블을 참조한다.

- WHERE    : 발췌 대상 데이터가 아닌 것을 제거한다.

- GROUP BY : 행들을 소그룹화 한다.

- HAVING   : 그룹핑된 값의 조건에 맞는 것만을 출력한다

- SELECT   : 데이터 값을 출력/계산한다.

- ORDER BY : 데이터를 정렬한다.


7. TIES WITH

EX1> SELECT TOP(2) TISE WITH NAME, AGE

- 나이가 높을 순으로 2명을 출력하는데 나이가 같은 사원이 있으면 같이 뽑음.


8. 여러 테이블로부터 원하는 데이터를 조회하기 위해서는 전체 테이블 개수에서 최소 N-1개 만큼의 JOIN 조건이 필요하다.


9. JOIN에 대한 설명.

1. 일반적으로 JOIN은 PK와 FK값의 연관성에 의해 성립된다.

2. DBMS 옵티마이저는 FROM절에 나열된 테이블이 아무리 많아도 항상 2개의 테이블씩 짝을 지어 JOIN을 수행한다.

3. EQUI JOIN은 JOIN에 관여하는 테이블 간의 컬럼 값들이 정확하게 일치하는 경우에 사용되는 방법이다.

4. EQUI JOIN은 '=' 연산자에 의해서만 수행되며 그 이외의 비교연산자를 사용하는 경우에는 모두 NON EQUI JOIN이다.

5. EQNQNS NON EQUI JOIN을 수행할 수 있지만, 때로는 설계상의 이유로 수행이 불가능한 경우도 있다.

 



'자격증 > SQLD - 준비중' 카테고리의 다른 글

SQLD정리 3  (0) 2018.11.29
sqld 정리 2  (0) 2018.11.28
SQLD 정리 1과목 2  (0) 2018.11.17
[데이터 모델링의 이해] 핵심체크-1  (0) 2018.11.12