NULL...

 

*조건상의 null

-UNKNOWN 형태의 평가는 대부분 FALSE와 동일함

-WHERE절의 평가가 UNKNOWN으로 리턴 될 경우 SELECT 절에는 아무런 ROW가 출력되지 않음

-UNKNOWN VS FALSE

。FALSE : 비교값과 같지 않음을 표시(TRUE는 비교값과 같지 않음을 표시)

。연산 조건 자체가 UNKNOWN일 경우 결과집합도 UNKNOWN으로 정의됨

 

 

NULL...

 

*null의 비교

-null 값을 테스트하기 위한 비교 방법은 IS NULL, 또는 is NOT NULL임

-만약 다른 조건으로 NULL을 함께 사용하였을 경우 결과는 UNKNOWN으로 리턴됨

-WHY? Null은 데이터의 부족함을 나타냄, 즉 null은 같음('=') 또는 같지 않음('≠')을 다름 값과 비교하거나 다른 null과 비교할 수 없다.

-그러나 오라클에서는 두 개의 서로 다른 null에 대하여 같다고 판단할 수 있는 방안은 제시하고 있음

-DECODE 함수를 이용하여 판단하였을 경우

-복합 키 내에서 null이 나타날 경우(that is oracle considers identical two compound keys containing nulls if all the non-null components of the keys are equal)

 

 

'오라클 > Oracle,SQL' 카테고리의 다른 글

오라클공부 184. NULL 연산자 예  (0) 2015.09.18
오라클공부 183. NULL...  (0) 2015.09.18
오라클공부 181. NULL의 이해  (0) 2015.09.17
오라클공부 180. NULL의 이해  (0) 2015.09.17
오라클공부 179. NULL의 이해  (0) 2015.09.17

NULL의 이해

 

SELECT MGR FROM EMP WHERE ENAME='SCOTT';                       7566

 

SELECT MGR FROM EMP WHERE ENAME='KING';                           NULL

 

SELECT NVL(MGR,0) FROM EMP WHERE ENAME='KING';                 0

 

SELECT MGR FROM EMP WHERE ENAME='KANG';                          공집합

 

SELECT NVL(MGR,'X') FROM EMP WHERE ENAME='KANG';             공집합

 

SELECT MAX(MGR) FROM EMP WHERE ENAME='KANG';                  NULL

 

SELECT NVL(MAX(MGR),99) FROM EMP WHERE ENAME='KANG;'      99

 

 

 

'오라클 > Oracle,SQL' 카테고리의 다른 글

오라클공부 183. NULL...  (0) 2015.09.18
오라클공부 182. NULL...  (0) 2015.09.17
오라클공부 180. NULL의 이해  (0) 2015.09.17
오라클공부 179. NULL의 이해  (0) 2015.09.17
오라클공부 178. NULL의 적용기준  (0) 2015.09.17

NULL의 이해

 

NVL

。Null인 경우만 지정된 값으로 대치하는 함수

-NVL(Null 판단 대상, 'Null 일때 대체값')

 

NVL2

。Null의 여부에 따라 지정한 값으로 대치하는 함수

-NVL2(Null 판단 대상, 'Not Null일 때 대체값', 'Null일 때 대체값')

 

 

'오라클 > Oracle,SQL' 카테고리의 다른 글

오라클공부 182. NULL...  (0) 2015.09.17
오라클공부 181. NULL의 이해  (0) 2015.09.17
오라클공부 179. NULL의 이해  (0) 2015.09.17
오라클공부 178. NULL의 적용기준  (0) 2015.09.17
오라클공부 177. NULL...  (0) 2015.09.17

NULL의 이해

 

*Example

 

 

'오라클 > Oracle,SQL' 카테고리의 다른 글

오라클공부 181. NULL의 이해  (0) 2015.09.17
오라클공부 180. NULL의 이해  (0) 2015.09.17
오라클공부 178. NULL의 적용기준  (0) 2015.09.17
오라클공부 177. NULL...  (0) 2015.09.17
오라클공부 176. NULL  (0) 2015.09.17
NULL의 적용기준

 

NULL

Null 값은 아직 정의되지 않은 값으로 0 또는 공백과 다름

0은 숫자이고, 공백은 하나의 문자

 

NULL 특성

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

Null 값을 포함하는 연산의 경우 결과 Null 값임

∞+2=∞                             ∞-2=∞

∞*2=∞                             ∞/2=∞

NULL+2=NULL                   NULL-2=NULL

NULL*2=NULL                   NULL/2=NULL

2/NULL=MULL

 

。숫자를 0으로 나누면 오류가 발생하지만 Null로 나누면 결과는 Null

2+0=2                                2-0=2

2*0=0                                2/0=오류

0/2=0            

 

 

 

 

'오라클 > Oracle,SQL' 카테고리의 다른 글

오라클공부 180. NULL의 이해  (0) 2015.09.17
오라클공부 179. NULL의 이해  (0) 2015.09.17
오라클공부 177. NULL...  (0) 2015.09.17
오라클공부 176. NULL  (0) 2015.09.17
오라클공부 175. ESCAPE 옵션  (0) 2015.09.17

NULL...

 

*정의

-컬럼에 아무런 값이 없을 경우, 컬럼은 null 상태라고 이야기를 함 또는 null을 포함했다고 정의함

-null은 어떠한 not null 또는 Primary key 제약조건을 포함하지 않는 경우 모든 컬럼의 모든 데이터 타입에서도 나타날 수 있음

-null은 값을 알 수 없거나 아무런 의미가 없을 경우 사용됨

-null 값을 0(zero)을 나타내는데 사용하지는 말 것(null과 0은 동일한 값이 아님)

-참조

。오라클 데이터베이스는 현재 길이가 '0'인 값에 대하여는 문자형 값(character value)은 null로 취급함

。그러나 이러한 부분은 향후 버전에서도 동일하게 인식되지 않을 수 있음

。따라서 공백 문자열과 null값을 동일하게 처리하지는 말아야 함

 

*SQL 함수 상에서의 null

-모든 스칼라 함수들은(REPLACE, NVL, CONCAT는 제외) null 변수를 입력 받았을 경우 null 값 리턴이 가능함

-대부분의 집계(Aggregate) 함수는 null 무시하고 수행됨

-1000, NULL, NULL, NULL, 2000에 대한 AVG는 1500으로 리턴됨

 

 

 

NULL

 

*NULL 개념

-NULL은 미확인 값이나 아직 적용되지 않은 값을 의미

-0도 아니며 스페이스도 아닌 정의되지 않은 값

-NULL값과 다른값과의 연산 결과는 NULL

 

-NULL은 단독으로 인덱스를 사용할 수 없으므로 가능한 정의가능한 값(특정값)으로 정한다면 ('0','99' 등) 인덱스를 이용할 수 있다.

-그렇다고 생각없이 NULL을 특정 값으로 변환하는 것은 향후 큰 문제를 일으킬 수 있으므로 주의 깊게 사용해야 함.

-예

  。학생 테이블에서 학생의 몸무게가 NULL인 경우 그 학생의 몸무게가 0이라는 의미가 아니라 현재 시점에서 그 학생의 몸무게를 모른다는 의미

  。학생 테이블에서 학생의 지도교수 코드가 NULL인 경우에는 그 학생은 아직 지도교수가 배정되지 않았음을 의미

 

 

 

+ Recent posts