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 −

IDNAMEAGEADDRESSSALARY
1Ramesh32Ahmedabad2000.00
2Khilan25Delhi1500.00
3Kaushik23Kota2000.00
4Chaitali25Mumbai6500.00
5Hardik27Bhopal8500.00
6Komal22Hyderabad4500.00
7Muffy24Indore10000.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 −

NAMESALARY_TO_AGE_RATIO
Ramesh62
Khilan60
Kaushik86
Chaitali260
Hardik314
Komal204
Muffy416

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.

IDNAMEAGEADDRESSSALARY
4Chaitali25Mumbai6500.00
5Hardik27Bhopal8500.00
7Muffy24Indore10000.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.

IDNAMEAGEADDRESSSALARY
4Chaitali25Mumbai260.00
5Hardik27Bhopal314.00
7Muffy24Indore416.00