SQL를 사용하여 DB에서 내가 원하는 대로 필요한 데이터를 가져오는 작업을 진행했다.
하지만 여기서 더 나아가서 좀 더 다양한 것들을 시도해 볼 수 없을까? 일반적으로 우리가 어떤 물건의 개수와 각 개수의 가격을 가져오면 이를 합산하여 총 가격이 얼마인지와, 해당 특정 값을 다른 값으로 치환하는 등의 작업 등 말이다.
SQL에서는 이러한 작업을 수치연산으로 제공하고 있다.
+-*/%MOD
SELECT에서는 가져올 값, WHERE 등에 COLUMN 값 대신 이러한 연산을 집어넣어 좀 더 다양하게 사용할 수 있다.
SELECT 식1 AS 별명, 식2, ... FROM 테이블명
식에 들어가는 데이터들은 테이블에서 조회한 데이터, 또는 주어진 상수값으로 만들어지며, 이를 통해 생성된 값은, 식 모양 그대로 COLUMN명이 되어 만들어진다. 만약 내가 원하는 컬럼명으로 변경하고 싶다면 AS 를 붙여서 명칭을 다르게 붙여 줄 수도 있다. 이렇게 별명을 달아주게 되면 이를 WHERE문 등의 다른 위치에서도 손쉽게 사용이 가능하다.
SELECT 식1 AS 별명, 식2, ... FROM 테이블명 WHERE (별명을 이용한 조건)
앞서 말한 것처럼 별명을 붙이게 되면 WHERE구 에서도 간단하게 사용이 가능하다.
SELECT 식1 AS 별명, 식2, ... FROM 테이블명 ORDER BY 별명 [ASC|DESC]
ORDER BY에서 해당 별명으로 지어진 값으로 정렬이 가능하다.
단 주의할 점은 해당 연산은 index등의 DBMS에서 검색을 최적화하기 위한 기능을 사용할 수가 없기 때문에 데이터량이 많다면 신중하게 생각해봐야 한다.
SELECT 함수명(파라메터, 파라메터 ...) AS 별명, 식2 ... FROM 테이블명
SQL에서는 함수로 몇가지 사칙연산을 지원한다.
대표적으로는 나머지 연산을 위한 MOD, 소수의 반올림 등을 위한 ROUND, 삼각함수을 위한 SIN, COS, 루트를 계산하는 SQRT, 대수를 계산하는 LOG 등이 존재합니다.