MySQL - Integer Division Operator (DIV)



The integer division operator in MySQL is represented by (DIV). This operator performs division between two numbers and returns the integer quotient, which means it will discard any decimal part from the result. It will round down the division result to the nearest integer that is less than or equal to the actual result.

This division operator can also be used with the SELECT, UPDATE, and DELETE statements in MySQL, along with clauses like WHERE, ORDER BY etc.

Example

In the following example, let us observe the difference between two division operators '/' and 'DIV'.

First, we will use the division operator "/" as follows −

SELECT 62555.5875/455 As Result;

As we can see the output, the decimal values are not discarded −

Result
137.48480769

Here, we are using the "DIV" as follows −

SELECT 62555.5875 DIV 455 As Result;

As we can see the output, the decimal values are discarded −

Result
137

Example

In the following query, we are creating a MySQL table named CUSTOMERS using the CREATE statement as follows −

CREATE TABLE CUSTOMERS (
   ID INT AUTO_INCREMENT,
   NAME VARCHAR(20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

The following query inserts 7 records into the above created table −

INSERT INTO CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES 
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

Execute the below query to fetch all the records present in the CUSTOMERS table −

Select * From CUSTOMERS;

Following is the CUSTOMERS table −

ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 Kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

Here, we are using the MySQL integer division operator (DIV) to calculate the ratio of SALARY to AGE for each person in the CUSTOMERS table −

SELECT NAME, salary DIV age AS SALARY_TO_AGE_RATIO
FROM CUSTOMERS;

Output

This will produce the following result −

NAME SALARY_TO_AGE_RATIO
Ramesh 62
Khilan 60
Kaushik 86
Chaitali 260
Hardik 314
Komal 204
Muffy 416

Example

You can also use the division operator with DELETE statement along with WHERE clause and assignment operators.

The following query removes the records of CUSTOMERS whose ratio of SALARY to AGE is less than 250.

DELETE FROM CUSTOMERS
WHERE SALARY DIV AGE < 250;

Output

Four rows has been deleted from the CUSTOMERS table.

Query OK, 4 rows affected (0.01 sec)

Verification

Execute the below query to verify whether the above records has been deleted or not −

Select * From CUSTOMERS;

As we can see the output, the customers whose ratio of SALARY to AGE is less than 250 has been deleted.

ID NAME AGE ADDRESS SALARY
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
7 Muffy 24 Indore 10000.00

Example

Along with SELECT and DELETE statements, you can also use this operator with the UPDATE statement.

In the following example, we are updating the salaries of customers by dividing each person's salary by their age −

UPDATE CUSTOMERS
SET SALARY = SALARY DIV AGE;

Output

This will produce the following result −

Query OK, 3 rows affected, 2 warnings (0.01 sec)
Rows matched: 3  Changed: 3  Warnings: 2

Verification

Execute the below query to verify whether the values in SALARY column has updated or not −

Select * From CUSTOMERS;

As we can see the output, the decimal values for salaries are discarted and displayed as 0.

ID NAME AGE ADDRESS SALARY
4 Chaitali 25 Mumbai 260.00
5 Hardik 27 Bhopal 314.00
7 Muffy 24 Indore 416.00
Advertisements