[SQL] 12. 수치 연산

uuuu.jini·2023년 1월 24일
0

SQL 첫걸음

목록 보기
12/36
post-thumbnail

SQL은 기본적으로 계산기능을 포함한다.

산술연산: +-*/%MOD

1. 사칙연산


덧셈, 뺄셈, 곱셈, 나눗셈의 사칙 연산과 나눗셈의 나머지

  • +, -, *, /, %

연산자를 사용해 여러 가지 연산을 할 수 있다!

- 연산자의 우선순위

  1. *,/,%
  2. +,-

같은 그룹 내 연산자의 우선 순위는 동일하다. 계산 순서는 연산자에 따라 관계없는 경우도 있지만 기본적으로 왼쪽에서 오른쪽으로 진행, 우선순위가 다른 연산자들이 섞여 있는 경우는 우선순위가 높은 쪽이 먼저 계산

2. SELECT 구로 연산하기


SELECT 식1, 식2 ... FROM 테이블명

예)가격 * 수량으로 금액 계산하기

  • SELECT *,price*quantity FROM sample34;

3. 열의 별명


열 이름이 길고 알아보기 어려운 경우 별명을 붙여 열명을 재지정

  • SELECT *, price * quantity AS amount FROM sample34;
  • 별명 예약어 AS 사용
  • 콤마로 복수의 식 지정 가능
  • 각 식에 별명 붙이기 가능 (중복되지 않도록 지정)
  • 키워드 AS 생략 가능 (에일리어스: 영어, 숫자, 한글 가능)
  • 한글은 더블쿼트로 둘러싸서 지정

이름에 ASCII 문자 이외의 것을 포함할 경우는 더블쿼트로 둘러싸서 지정

(싱글쿼트: 문자열 상수, 더블쿼트: 객체 이름)

  • 별명 숫자 시작 불가능, 데이터베이스 객체명 숫자로 시작 불가 (but, 더블쿼트 묶는 경우 가능)

이름을 지정하는 경우 숫자로 시작되지 않도록 한다.

4. WHERE 구에서 연산하기


  • 예) 2000원 이상인 행 검색
  • SELECT *, price * quantity AS amount FROM sample34 WHERE price * quantity >= 2000;

- WHERE 구와 SELECT 구의 내부 처리 순서

WHERE구에서의 행 선택, SELECT 구에서의 열 선택은 데이터베이스 서버 내부에서 WHERE 구 -> SELECT 구의 순서로 처리된다.

  • WHERE구로 행이 조건에 일치하는지 먼저 조사한 후에 SELECT 구에 지정된 열을 선택해 결과로 반환하는 식으로 처리
  • 별명은 SELECT구문을 내부 처리시 비로소 붙여짐
  • 즉, WHERE 구의 처리가 선행되므로 SELECT구의 별칭을 사용할 수 없음

SELECT 구에서 지정한 별명은 WHERE구 안에서 사용할 수 없다.

5. NULL 값의 연산


NULL + 1의 결과값은 NULL이다.

NULL로 연산하면 결과는 NULL이 된다.

6. ORDER BY 구에서 연산하기


  • 예) 금액을 계산하고 내림차순으로 정렬

  • 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 구에서 지정한 별명을 사용할 수 있다.

7. 함수


함수명(인수1, 인수2..)

함수는 계산 대상을 인수로 지정한다. 인수는 함수명 뒤에 괄호를 묶어 표기한다.

  • MOD(10,3) = 10%3

함수도 연산자도 표기방법이 다를 뿐, 같은 것이다

8. ROUND 함수


반올림 함수

  • SELECT amount, ROUND(amount) FROM sample341;

  • amount 열은 DECIMAL 형으로 정의 (정수부와 소수부의 자릿수를 지정 할 수 있는 자료형)

- 반올림 자릿수 지정

기본적으로 ROUND 함수는 첫째 자리를 기준으로 반올림한 값을 반환. ROUND 함수의 두 번째 인수로 반올림할 자릿수 지정 가능.

인수 생략 시 0으로 간주되어 소수점 첫째 자리를 반올림한다.

음수로 지정하여 정수부의 반올림할 자릿수 지정 가능 (-1을 지정하면 1단위)

버림을 하는 경우 TRUNCATE 함수 사용

profile
멋쟁이 토마토

0개의 댓글