본문 바로가기
DB/DBMS

DBMS - NULL, 숫자형 함수

by 코딩하는 랄로 2023. 8. 14.
728x90

NULL이란

지금까지 DBMS를 공부하면서 예제에서 가끔 보았던 용어이다. 프로그래밍을 조금이라도 해본 사람은 대략적으로 어떤 의미이고 어디에 사용하는지에 대해 알 것이다.

 

DBMS 에서는 실제 테이블에 저장하는 값은 주소 값이다. 어떠한 정보를 조회할 때 그 주소값을 통해 실제값에 접근할 수 있는 것이다. 

 

 

그렇기 때문에 테이블에 데이터를 집어넣게 되면 실제 값이 들어가는 메모리를 제공받고 테이블에는 해당 메모리의 주소가 들어가게 되는데 아직 실제 값이 뭔지 모를 때에도 해당 메모리의 주소를 입력받게 된다.

 

이 때에 아직 이 메모리 주소가 저장하는 값은 정의되지 않은 값이라는 것을 알려주기 위해 사용하는 용어가 바로  NULL이다. 즉, NULL은 빈 값 대신 미정 값을 부여할 때 사용하는 문법으로 어떤 값이 들어올지 모른다는 것을 알려준다.

 

 

 

NULL 제약 조건

DDL에서 제약 조건을 다룰 때 NOT NULL이라는 제약 조건이 있다. NOT NULL은 해당 칼럼의 타입 옆에 바로 선언 해 주어도 되지만 테이블을 생성한 후에도 추가할 수 있다.

 

ALTER TABLE 테이블명 MODIFY 컬럼명 NOT NULL;

 

ALTER문법을 사용하여 제약 조건을 수정하는 것이기 때문에 MODIFY를 사용한다. 제약 조건을 삭제할 때에도 ALTER 문을 사용한다.

 

ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;

 

제약 조건명은 임의로 배정받기 때문에 알아낸 뒤 제거하면 된다.

 

 

 

NULL 조건식(feat. NVL)

NULL은 WHERE 조건식에서도 사용할 수 있다. 조건식에서 값을 비교할 때에는 =, <>, != 등을 사용하였는데 NULL 조건식의 경우는 사용방법이 다음과 같다.

WHERE 칼럼명 IS NULL;
WHERE 칼럼명 IS NOT NULL;

IS, IS NOT을 사용하여 NULL 조건식을 사용한다.

 

NVL

oracle dbms 문법에는 NULL값을 다른 값으로 변경하여 사용해주는 함수를 지원하는데 바로 NVL, NVL2 함수이다. 이전에 배운 Alias와 비슷한 개념이라고 생각하면 된다.

NVL(칼럼명, 다른 값) : 널값 대신 다른 값으로 변경 후 검색
NVL2(칼럼명, 다른 값1, 다른 값2) : 널이 아닐 때에는 다른값1로 변경, 널이면 다른 값2로 변경 후 검색

 

 

 

숫자형 함수 DUAL

NVL 이외에도 숫자형 함수라는 편리한 함수가 있다. 각 값들에 절대값, 올림, 내림 등 수학적인 처리를 해주는 함수이다.

 

  • 절대값 : SELECT ABS(value) FROM  DUAL;
  • 정수판별 : SELECT SIGN(value) FROM DUAL;
  • 올림 : SELECT CEIL(value) FROM DUAL;
  • 내림 : SELECT FLOOR(value) FROM DUAL;
  • 소수점 반올림 : SELECT ROUND(value, 소수점) FROM DUAL;
  • 버림 : SELECT TRUNC(value) FROM DUAL;

뒤에 FROM DAUL은 query문에서 생략할 수 있다.

 

 

 

2023.08.14 - [Programming 공부/DBMS] - DBMS - 집계함수, ORDERBY,CASE

 

DBMS - 집계함수, ORDERBY,CASE

집계함수 저번 글에서 다루었던 숫자형 함수 이외에도 Oracle DBMS 에서는 집계함수도 제공하고 있습니다. 집계 함수란 평균, 합계 등 특정 데이터 값을 집계하여 보여주는 편리한 기능을 제공해주

codingralro.tistory.com

 

728x90

'DB > DBMS' 카테고리의 다른 글

DBMS - GRUOP BY, SUB QUERY  (0) 2023.08.15
DBMS - 집계함수, ORDERBY,CASE  (0) 2023.08.14
DBMS - 정규화(NF) : 이상현상  (0) 2023.08.14
DBMS - 정규화(NF) : 정규화란?  (0) 2023.08.14
DML - Concatenation,Like  (0) 2023.08.13