Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 열 값 나누기: 소수점 결과를 정수로 변환하는 방법

MySQL에서 / 연산자로 숫자 열을 나누면 기본적으로 소수점 형태의 결과가 반환됩니다. 만약 소수점 없이 정수 형태의 결과가 필요하다면 CAST 함수를 활용하면 됩니다. 이 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable
    -> (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Number int
    -> );
Query OK, 0 rows affected (0.50 sec)

2. 데이터 삽입하기

INSERT 명령어를 사용해 테이블에 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable(Number) values(10);
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable(Number) values(20);
Query OK, 1 row affected (0.12 sec)

mysql> insert into DemoTable(Number) values(30);
Query OK, 1 row affected (0.20 sec)

mysql> insert into DemoTable(Number) values(40);
Query OK, 1 row affected (0.14 sec)

3. 저장된 데이터 확인하기

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

출력 결과

+----+--------+
| Id | Number |
+----+--------+
|  1 | 10     |
|  2 | 20     |
|  3 | 30     |
|  4 | 40     |
+----+--------+
4 rows in set (0.00 sec)

4. 나누기 연산 수행하기

다음은 Number 열의 값을 2로 나누는 기본적인 쿼리입니다.

mysql> select Id,Number,(Number/2) AS DivideBy2 from DemoTable;

출력 결과

나눗셈 결과가 소수점 형태로 출력되는 것을 확인할 수 있습니다.

+----+--------+-----------+
| Id | Number | DivideBy2 |
+----+--------+-----------+
|  1 |     10 |    5.0000 |
|  2 |     20 |   10.0000 |
|  3 |     30 |   15.0000 |
|  4 |     40 |   20.0000 |
+----+--------+-----------+
4 rows in set (0.00 sec)

5. 소수점 없이 정수로 변환하기

소수점 자릿수가 불필요하다면 CAST(... AS UNSIGNED)를 사용해 결과를 정수로 변환할 수 있습니다.

mysql> select Id,Number,cast((Number/2) AS UNSIGNED) AS DivideBy2 from DemoTable;

출력 결과

이제 나눗셈 결과가 깔끔한 정수 형태로 표시됩니다.

+----+--------+-----------+
| Id | Number | DivideBy2 |
+----+--------+-----------+
|  1 | 10     | 5         |
|  2 | 20     | 10        |
|  3 | 30     | 15        |
|  4 | 40     | 20        |
+----+--------+-----------+
4 rows in set (0.00 sec)

참고 사항

CAST를 사용하면 소수점 이하 값이 가장 가까운 정수로 반올림됩니다. 예를 들어 CAST(2.5 AS UNSIGNED)의 결과는 3입니다. 만약 반올림 없이 소수점 이하를 버리고 싶다면 DIV 연산자를 사용하는 것이 좋습니다. SELECT 10 DIV 4;의 결과는 2로, 몫만 반환됩니다. 상황에 맞게 두 방식 중 적절한 방법을 선택하시기 바랍니다.