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인 경우에는 그 학생은 아직 지도교수가 배정되지 않았음을 의미

 

 

 

ESCAPE 옵션

 

*ESCAPE

-ESCAPE 옵션은 LIKE 연산자에서 사용하는 와일드 문자(%,_) 자체를 포함하는 문자열을 검색할 때, 와일드 문자를 일반 문자처럼 취급하기 위한 옵션

 

SQL> insert into student(studno, name)

  2 values(33333, '황보_정호');

1개의 행이 만들어졌습니다.

SQL> select name

  2 from student

  3 where name like '황보\_%' escape '\';

NAME

--------------

황보_정호

 

EACAPE 옵션은 백슬래시를 이스케이프 문자로 식별합니다. 이 패턴에서 이스케이프 문자가 밑줄 앞에 있으므로 오라클은 밑줄을 리터럴로 해석합니다.

 

 

 

 

LIKE 연산자를 이용한 조건 검색

 

*사용 예

-학생 테이블에서 이름이 3글자, 성은 '김'씨고 마지막 글자가 '영'으로 끝나는 학생의 이름, 학년, 학과 번호를 출력하여라.

 

 

LIKE 연산자를 이용한 조건 검색

 

*LIKE 연산자

-칼럼에 저장된 문자열중에서 LIKE 연산자에서 지정한 문자 패턴과 부분적으로 일치하면 참이 되는 연산자

 

*사용 예

-학생 테이블에서 성이 '김'씨인 학생의 이름, 학년, 학과 번호를 출력하여라.

 

 

 

+ Recent posts