MySQL - 减法运算符 (-)
MySQL 使用各种类型的运算符对其数据执行操作。它支持算术运算符、比较运算符、逻辑运算符、赋值运算符等。但是,只有算术运算符专门处理数值。
算术运算符用于对 MySQL 中存储的数据执行加、减、乘、除和模等运算;其中 减法运算符 (-) 用于将一个数字减去另一个数字。
减法运算符可与 MySQL 中的 SELECT、UPDATE 和 DELETE 语句一起使用,以及 WHERE、ORDER BY 等子句。
语法
以下是 MySQL 减法运算符的语法 -
[SELECT|DELETE|UPDATE] x - y;
其中,"x" 和 "y" 是要减去的数值的占位符。
示例
在以下示例中,我们使用减法运算符 (-) 来对两个数字进行减法运算 -
SELECT 4156456 - 56445;
输出
这将产生以下结果 -
4156456 - 56445 |
---|
4100011 |
示例
在此查询中,我们使用减法运算符将两个浮点数和一个整数相减 -
SELECT 547.5478 - 657.3547 - 5475;
输出
这将产生以下结果 -
547.5478 - 657.3547 - 5475 |
---|
-5584.8069 |
示例
在下面的查询中,我们使用 CREATE TABLE 语句创建一个名为 CUSTOMERS 的表 -
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) );
以下查询使用 INSERT 语句将 7 条记录插入到上面创建的表中 -
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 );
执行以下查询以检索插入 CUSTOMERS 表中的所有记录 -
Select * From CUSTOMERS;
以下是 CUSTOMERS 表 -
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 |
这里,我们使用 MySQL 减法运算符减去每个客户的工资和年龄 -
SELECT NAME, SALARY - AGE as Difference FROM CUSTOMERS;
这将产生以下结果 -
NAME | RESULT |
---|---|
Ramesh | 1968.00 |
Khilan | 1475.00 |
Kaushik | 1977.00 |
Chaitali | 6475.00 |
Hardik | 8473.00 |
Komal | 4478.00 |
Muffy | 9976.00 |
示例
您也可以在 DELETE 语句中使用减法运算符。在这种情况下,我们将 WHERE 子句与赋值运算符结合使用。
在以下查询中,我们将从 CUSTOMERS 表中删除 SALARY 和 AGE 之差小于 5000 的行。
DELETE FROM CUSTOMERS WHERE SALARY - AGE < 5000;
输出
CUSTOMERS 表中删除了四条记录 -
Query OK, 4 rows affected (0.01 sec)
验证
执行以下查询来验证上述记录是否已被删除 -
Select * From CUSTOMERS;
从输出结果可以看出,SALARY 和 AGE 小于 5000 的客户已被删除。
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
4 | Chaitali | 25 | Mumbai | 6500.00 |
5 | Hardik | 27 | Bhopal | 8500.00 |
7 | Muffy | 24 | Indore | 10000.00 |
示例
除了 SELECT 和 DELETE 语句外,您还可以在 UPDATE 语句中使用减法运算符。
让我们看一个例子,我们尝试使用下面的 UPDATE...SET 语句将 Asha 的成绩更新为至少及格百分比 -
UPDATE CUSTOMERS SET NAME = 'Hrithik' WHERE SALARY - AGE > 9000;
输出
这将产生以下结果 -
Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0
验证
执行以下查询来验证上述记录是否已更新 -
Select * From CUSTOMERS;
从输出中我们可以看到,SALARY 和 AGE 大于 5000 的客户姓名已更改为"Hrithik"。
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
4 | Chaitali | 25 | Mumbai | 6500.00 |
5 | Hardik | 27 | Bhopal | 8500.00 |
7 | Hrithik | 24 | Indore | 10000.00 |