Computer Science/Database
[MySQL] 데이터베이스 수치형 데이터 연산하기
luminous13
2021. 11. 12. 16:31
때로는 데이터베이스에서 총액과 같은 값을 구하고 싶을 때가 있습니다. 그럴 때에는 값*수량을 데이터베이스에서 할 수 있습니다.
예시 테이블
CASE1. 각 아이템 별 총액 구하기
열 * 열을 통해 곱셈을 할 수 있습니다. 근데 열의 이름을 바꾸고 싶지 않나요?
CASE2. 'AS'를 이용하여 열 별명(ALIAS) 설정하기
열의 이름이 amount으로 변경되었습니다. AS 키워드는 참고로 생략이 가능합니다. 따라서
SELECT *, price * quantity amount FROM sample34;위의 명령어와 같은 결과를 가져옵니다. 별명을 설정할 때 만약 한글로 설정하고 싶으면 쌍따옴표로 감싸서 설정해야 합니다.
CASE3. 총액을 구한 뒤 총액이 2000이상인 행 검색하기
2000이상인 조건이 붙었으니 WHERE구를 이용하여 조건에 맞는 행을 검색할 수 있습니다. 이 때 WHERE구에 별명 입력하면 검색이 안되는 것에 주의합니다. 왜냐하면 SELECT 구보다 WHERE구가 내부에서 먼저 처리되기 때문입니다. 별명은 SELECT 내부 처리를 할 때 붙여지므로 WHERE에서는 별명을 사용할 수 없습니다.
NULL의 연산
SQL에서 NULL의 연산 결과는 모두 NULL 입니다.
- NULL + 1 = NULL
- 1 + NULL = NULL
- 1 + 2*NULL = NULL
- 1 / NULL = NULL
CASE4. 총액 구하고 총액을 기준으로 내림차순 정렬하기
자세히 살펴보면 ORDER BY에서는 별명을 사용할 수 있다. 그 이유는 ORDER BY는 서버에서 가장 마지막으로 처리되기 때문입니다.
연산자 말고 함수로 연산하기
+,-,*,/와 같은 연산자 말고 함수로도 연산을 할 수 있습니다. 함수는 다음과 같이 사용합니다.
함수명(인수1, 인수2, ...)
예시 테이블
CASE5. 반올림하여 소수를 정수로 만들기
CASE6. 반올림 지정하기( 둘째 자리에서 반올림하기)