MySQL - Subtraction Operator (-)



MySQL performs operations on its data using various types of operators. It supports arithmetic operators, comparison operators, logical operators, assignment operators, etc. However, only arithmetic operators deal solely with numeric values.

Arithmetic operators are used to operations such as addition, subtraction, multiplication, division and modulus operations on the data stored in MySQL; where the Subtraction Operator (-) is used to subtract one number from another number.

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

Syntax

Following is the syntax of MySQL Subtraction operator −

[SELECT|DELETE|UPDATE] x - y;

Where, "x" and "y" are placeholders for the numeric values you want to subtract.

Example

In the following example, we are the subtraction operator (-) to subtract two numbers −

SELECT 4156456 - 56445;

Output

This will produce the following result −

4156456 - 56445
4100011

Example

In this query, we are subtracting two float numbers and a whole number using the subtraction operator −

SELECT 547.5478 - 657.3547 - 5475;

Output

This will produce the following result −

547.5478 - 657.3547 - 5475
-5584.8069

Example

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

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 below query uses INSERT statement to insert 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 following query to retrieve all the records inserted in 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 subtraction operator to subtract the salary and age of every customer −

SELECT NAME, SALARY - AGE as Difference FROM CUSTOMERS;

This will produce the following result −

NAME RESULT
Ramesh 1968.00
Khilan 1475.00
Kaushik 1977.00
Chaitali 6475.00
Hardik 8473.00
Komal 4478.00
Muffy 9976.00

Example

You can also use the subtraction operator with DELETE statement. In such cases, we use WHERE clause along with assignment operators.

In the following query, we will delete rows from the CUSTOMERS table where the difference between their SALARY and AGE is less than 5000.

DELETE FROM CUSTOMERS 
WHERE SALARY - AGE < 5000;

Output

Four records has been deleted from the CUSTOMERS table −

Query OK, 4 rows affected (0.01 sec)

Verification

Execute the following query to verify whether the above records have been deleted or not −

Select * From CUSTOMERS;

As we can see the output, the customers whose SALARY and AGE is less than 5000 are 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 the subtraction operator with the UPDATE statement.

Let us see an example where we try to update the marks of Asha to at least pass percentage using the UPDATE... SET statement below −

UPDATE CUSTOMERS
SET NAME = 'Hrithik'
WHERE SALARY - AGE > 9000;

Output

This will produce the following result −

Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

Verification

Execute the below query to verify whether the above records have been updated or not −

Select * From CUSTOMERS;

As we can see from the output, the customers whose SALARY and AGE are greater than 5000 have had their names changed to 'Hrithik'.

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