DBMS - NULL, 숫자형 함수
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