SQL은 기본적으로 계산기능을 포함한다.
산술연산: +-*/%MOD
덧셈, 뺄셈, 곱셈, 나눗셈의 사칙 연산과 나눗셈의 나머지
+
, -
, *
, /
, %
연산자를 사용해 여러 가지 연산을 할 수 있다!
*
,/
,%
+
,-
같은 그룹 내 연산자의 우선 순위는 동일하다. 계산 순서는 연산자에 따라 관계없는 경우도 있지만 기본적으로 왼쪽에서 오른쪽으로 진행, 우선순위가 다른 연산자들이 섞여 있는 경우는 우선순위가 높은 쪽이 먼저 계산
SELECT 식1, 식2 ... FROM 테이블명
예)가격 * 수량으로 금액 계산하기
SELECT *,price*quantity FROM sample34;
열 이름이 길고 알아보기 어려운 경우 별명을 붙여 열명을 재지정
SELECT *, price * quantity AS amount FROM sample34;
AS
사용이름에 ASCII 문자 이외의 것을 포함할 경우는 더블쿼트로 둘러싸서 지정
(싱글쿼트: 문자열 상수, 더블쿼트: 객체 이름)
이름을 지정하는 경우 숫자로 시작되지 않도록 한다.
SELECT *, price * quantity AS amount FROM sample34 WHERE price * quantity >= 2000;
WHERE구에서의 행 선택, SELECT 구에서의 열 선택은 데이터베이스 서버 내부에서 WHERE 구 -> SELECT 구의 순서로 처리된다.
SELECT 구에서 지정한 별명은 WHERE구 안에서 사용할 수 없다.
NULL + 1
의 결과값은 NULL이다.
NULL로 연산하면 결과는 NULL이 된다.
예) 금액을 계산하고 내림차순으로 정렬
SELECT *, price * quantity AS amount FROM sample34 ORDER BY price*quantity DESC;
ORDER BY는 SELECT 구보다 나중에 처리되므로 별명 사용 가능
SELECT *, price * quantity AS amount FROM sample34 ORDER BY amount DESC;
ORDER BY 구에서는 SELECT 구에서 지정한 별명을 사용할 수 있다.
함수명(인수1, 인수2..)
함수는 계산 대상을 인수로 지정한다. 인수는 함수명 뒤에 괄호를 묶어 표기한다.
MOD(10,3)
= 10%3
함수도 연산자도 표기방법이 다를 뿐, 같은 것이다
반올림 함수
SELECT amount, ROUND(amount) FROM sample341;
amount 열은 DECIMAL 형으로 정의 (정수부와 소수부의 자릿수를 지정 할 수 있는 자료형)
기본적으로 ROUND 함수는 첫째 자리를 기준으로 반올림한 값을 반환. ROUND 함수의 두 번째 인수로 반올림할 자릿수 지정 가능.
인수 생략 시 0으로 간주되어 소수점 첫째 자리를 반올림한다.
음수로 지정하여 정수부의 반올림할 자릿수 지정 가능 (-1을 지정하면 1단위)
버림을 하는 경우 TRUNCATE 함수 사용