수치연산

Hyun-jin Won·2021년 10월 6일
0

MySQL로 SQL 시작하기

목록 보기
10/24

좀 더 자유로운 사용이 가능할까?

SQL를 사용하여 DB에서 내가 원하는 대로 필요한 데이터를 가져오는 작업을 진행했다.

하지만 여기서 더 나아가서 좀 더 다양한 것들을 시도해 볼 수 없을까? 일반적으로 우리가 어떤 물건의 개수와 각 개수의 가격을 가져오면 이를 합산하여 총 가격이 얼마인지와, 해당 특정 값을 다른 값으로 치환하는 등의 작업 등 말이다.

SQL에서는 이러한 작업을 수치연산으로 제공하고 있다.

산술연산

+-*/%MOD

SELECT에서는 가져올 값, WHERE 등에 COLUMN 값 대신 이러한 연산을 집어넣어 좀 더 다양하게 사용할 수 있다.

SELECT 구로 연산

SELECT1 AS 별명,2, ... FROM 테이블명

식에 들어가는 데이터들은 테이블에서 조회한 데이터, 또는 주어진 상수값으로 만들어지며, 이를 통해 생성된 값은, 식 모양 그대로 COLUMN명이 되어 만들어진다. 만약 내가 원하는 컬럼명으로 변경하고 싶다면 AS 를 붙여서 명칭을 다르게 붙여 줄 수도 있다. 이렇게 별명을 달아주게 되면 이를 WHERE문 등의 다른 위치에서도 손쉽게 사용이 가능하다.

WHERE 구에서 연산

SELECT1 AS 별명,2, ... FROM 테이블명 WHERE (별명을 이용한 조건)

앞서 말한 것처럼 별명을 붙이게 되면 WHERE구 에서도 간단하게 사용이 가능하다.

ORDER BY 구에서 연산

SELECT1 AS 별명,2, ... FROM 테이블명 ORDER BY 별명 [ASC|DESC]

ORDER BY에서 해당 별명으로 지어진 값으로 정렬이 가능하다.
단 주의할 점은 해당 연산은 index등의 DBMS에서 검색을 최적화하기 위한 기능을 사용할 수가 없기 때문에 데이터량이 많다면 신중하게 생각해봐야 한다.

함수 연산

ORDER BY 구에서 연산

SELECT 함수명(파라메터, 파라메터 ...) AS 별명,2 ... FROM 테이블명

SQL에서는 함수로 몇가지 사칙연산을 지원한다.
대표적으로는 나머지 연산을 위한 MOD, 소수의 반올림 등을 위한 ROUND, 삼각함수을 위한 SIN, COS, 루트를 계산하는 SQRT, 대수를 계산하는 LOG 등이 존재합니다.

profile
삽질을 주체하지 못하는 잉간

0개의 댓글