저번 포스트에서는
LIMIT와 OFFSET 값을 이용해서 특정 갯수의 데이터만 조회를 하는
페이징 처리를 했었습니다 ^^
이번 포스트에서는 이미 존재하는 레코드의 수치 데이터들을
여러가지로 연산해서 새로운 컬럼으로 조회를 해보도록 하겠습니다 ^^!
마찬가지로 이번에도 books 테이블을 샘플로 이용하겠습니다
released_year, stock_quantity, pages 세 컬럼의 데이터 타입이 INT이므로
이번 시간에 알아볼 수치 연산을 다루어 설명 드리기에 편리할 것 같습니다 ^^!
기본적인 연산에는, 아시는 바와 같이
①덧셈 : +
②뺄셈 : -
③곱셈 : *
④나눗셈 : /
⑤모듈 연산 : %
등이 있습니다 ^^
수치 데이터들을 연산하여 새로운 컬럼으로 조회를 해보겠습니다!
stock_quantity 컬럼과 pages 컬럼의 수치를 더하여 sum이란 이름의 새로운 컬럼으로 조회를 하였습니다
참고로, AS 키워드를 이용하면 기존의 컬럼에 대해서 별칭(alias)을 붙일 수가 있는데요
중요한건, 지금 상황에서 sum이란 컬럼은 조회시에만 적용되는 컬럼일 뿐
데이터베이스에 저장되어 있지는 않은 조회용 임시 컬럼 및 데이터입니다 ^^
이후의 뺄셈, 곱셈, 나눗셈, 모듈 연산도 똑같은 구조를 갖습니다
만약 별칭을 지정하지 않으시면 해당 연산에 사용된 명령문 자체가 컬럼의 이름이 됩니다 ^^
as sum으로 별칭을 지정하지 않았다면 조회용 임시 컬럼의 이름은
'stock_quantity + pages' 자체가 됐을겁니다 ^^!
각 덧셈, 뺄셈, 곱셈, 나눗셈, 모듈 연산에 해당하는 기호(+, -, *, /, %)만 다를뿐
같은 구조의 SQL문이므로 첨언은 생략하고 해당 예시 이미지만 보여드렸습니다 ^^
※ 참고1 ※
참고 이미지는 준비하지 않았고, 간단한 기술(記述)로만 설명하겠습니다 ^^
혹시 피연산자의 값이 Null이라면 연산 결과가 어떻게 될까요?
정확히 얘기하면, Null이라는 것은 유효한 값이 없는 상태이기 때문에
유효한 값에 대해 더하거나 빼거나 곱하거나 나누거나 모듈러 연산 등을 시행했을 때
결과값은 Null이 됩니다 ^^
※ 참고2 ※
지금까지 여러 키워드들을 살펴보면서 SQL문 상에서 분명한 순서가 정해져 있었습니다
이 순서가 어긋날 경우 오류 메세지가 검출되었죠 ^^
상기 예시에서 as 키워드를 이용해서 별칭을 지정했었는데요
이 부분에서 중요한 사항이 하나 있습니다!
구문에 대한 내부 처리 순서가 정해져 있는데요
WHERE구 → SELECT구 → ORDER BY구 순서이기 때문에,
SELECT구에서 as로 별칭을 지정했을 경우!
WHERE구에서는 해당 별칭을 조건문 내에 포함시켜 유효하게 사용할 수가 없습니다
반면에, ORDER BY구는 순서상 SELECT구 다음이기 때문에
정렬 기준 컬럼으로 해당 별칭을 사용할 수 있습니다 ^^
※ 참고3 ※
별칭을 지정할 때 홑따옴표(Single Quotation, ' ')와
쌍따옴표(Double Quotation, " ")가 있죠 ^^
일반적으로 쌍따옴표로 둘러싼 문자열에 대해서는,
SQL문을 분석할 때 데이터베이스 객체의 이름이라고 간주합니다!
그리고 홑따옴표로 둘러싼 문자열에 대해서는 문자열 상수라고 분석합니다 ^^
이름을 지정할 때 예약어와 같은 이름을 지정할 수 없는 것이 원칙인데요 ^^
예를 들어서, SELECT라는 예약어가 이미 존재하므로
별칭을 지정할 때 SELECT라고 붙일 수가 없습니다
수치 연산에 대한 샘플 이미지에 보면 따옴표를 사용하지 않고도 별칭 지정이 가능했었습니다
근데 비교해서 보니, SELECT와 같은 예약어를 별칭으로 지정하려니까 해당 부분에
빨간 밑줄이 그어지면서 문법 오류 사항에 대해서 지적을 해주고 있습니다 ^^
이 때 쌍따옴표를 이용해서 지정을 해주니 해당 문자열로
별칭 지정이 된 것을 확인할 수가 있겠습니다 ^^!
크게 중요한 내용은 아니지만, 참고 삼아서 소개해드린 내용이었습니다!
이번 포스트에서는 수치 연산에 대해서 간단한 내용으로 알아보았습니다
기본적인 수치연산 외에도 함수를 이용한 수치 연산도 가능한데요^^!
삼각함수에 해당하는 SIN, COS 등
그리고 루트 값을 계산해주는 SQRT, 반올림과 관련된 ROUND 함수 등도 있습니다
수치연산에 관련된 나머지 부분은 추후에 정리하도록 하겠습니다 ^^
읽어주셔서 감사드리며,
다음 이어지는 포스트에서는 문자열을 다루는 방법에 대해서 살펴보도록 하겠습니다!
'MySQL > MySQL 기본 CRUD' 카테고리의 다른 글
[기본 CRUD] 9. INSERT문으로 데이터 추가(삽입)하기 (0) | 2024.08.07 |
---|---|
[기본 CRUD] 8. CASE문으로 데이터 변환하기 (0) | 2024.08.07 |
[기본 CRUD] 6. LIMIT 키워드로 데이터 일부 갯수만 조회하기 (0) | 2024.08.07 |
[기본 CRUD] 5-2. ORDER BY 키워드로 복수 컬럼에 대해 데이터 정렬하기 (0) | 2024.08.07 |
[기본 CRUD] 5-1. ORDER BY 키워드로 단일 컬럼에 대해 데이터 정렬하기 (0) | 2024.08.07 |