데이터베이스 연산

데이터베이스에서 연산자를 이용한 연산


연산에 앞서서 잠깐 Number자료형을 알아보자.

emp 테이블의 구성을 살펴보면, empno와 sal은 동일한 NUMBER 자료형이지만, 뒤에 오는 숫자가 다르다. 이는 범위로 생각하면 된다. NUMBER(4)는 4자리 정수를 표현한다는 의미이며, NUMBER(7,2)는 7자리까지 표현되고 2자리의 소수부분까지도 표현가능하다는 의미이다.


자, 이제 연산에 대해서 알아보자.

먼저 데이터베이스는 집합 연산이다. 각 항목을 개별적으로 처리하는 것은 프로그래밍적인 연산이지만, 데이터베이스에서는 이를 집합 단위로 처리한다. 따라서 집합에 대해서는 프로그래밍에서 반복문을 사용하는 것과 달리 더욱 간편하게 처리할 수 있다.

먼저 간단하게 덧셈부터 시작해보자. 간단하게 직원 테이블에서 월급을 100씩 올리는 상황을 생각해보자.

이를 위해서 select문에서 sal을 선택하고 여기에 100을 더한 뒤 출력해보자. 집합 연산에 따라 모든 항목이 100씩 증가하였다. 게다가 sal + 100이라는 것은 실제 데이터베이스에는 없는 칼럼이다. 따라서 우리가 저장하고 있지 않은 가상의 칼럼을 만들어 줄 수 있다.

곱하기의 경우에도 똑같이 적용할 수 있다. 월급을 10% 인상한다고 생각했을 때, 1.1을 곱하여 처리할 수 있다.

이를 섞어 좀 더 복잡한 연산도 얼마든지 가능하다.

이번엔 sal을 연산을 통해서 연봉을 구해보도록 하겠다. 이를 위해서 먼저 sal을 12만큼 곱하고, 보너스(comm)을 더해야 한다.

하지만 이 연산에 앞서 null에 대해서 알아야 할 필요가 있다. null은 0과 달리 해당 셀에 데이터값이 아예 없는 것을 의미한다.

현재 comm 탭에서 공백 부분들이 존재한다. 이 부분들은 0을 의미하는 것이 아니라 아예 테이블에 채워지지 않은 영역들을 말한다. 이 부분을 null이라고 한다. null이 중요한 이유는 null을 포함한 연산을 진행할 경우 이 역시 null이 되기 때문이다.

우리가 구하려고 했던 연봉 연산을 null 포함된 칼럼에 대해 진행해보자.

이 예시를 살펴보면 현재 comm을 사용하여 연산을 진행하고 있다. 따라서 comm이 null인 경우에는 연산의 결과값 역시 null로 출력되고 있음을 확인할 수 있다.

일단 연산에 대해서는 여기까지 알아보도록 하고, null 처리에 대해서 공부한 후 다루도록 하겠다.

댓글

이 블로그의 인기 게시물

데이터베이스 PL/SQL - 배열과 테이블

데이터베이스 PL/SQL 변수선언

데이터베이스 PL/SQL 제어문 - 반복문