MySQL - 整数除法运算符 (DIV)
MySQL 中的整数除法运算符表示为(DIV)。该运算符对两个数字进行除法运算并返回整数商,这意味着它将舍弃结果中的小数部分。它会将除法结果向下舍入为小于或等于实际结果的最接近的整数。
此除法运算符也可以与 MySQL 中的 SELECT、UPDATE 和 DELETE 语句以及 WHERE、ORDER BY 等子句一起使用。
示例
在下面的示例中,让我们观察两个除法运算符"/"和"DIV"之间的区别。
首先,我们将使用除法运算符 "/",如下所示 -
SELECT 62555.5875/455 As Result;
从输出结果可以看出,小数部分不会被丢弃 -
Result |
---|
137.48480769 |
这里,我们使用 "DIV" 如下 -
SELECT 62555.5875 DIV 455 As Result;
正如我们在输出中看到的,小数被丢弃了 -
Result |
---|
137 |
示例
在下面的查询中,我们使用 CREATE 语句创建一个名为 CUSTOMERS 的 MySQL 表,如下所示 -
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) );
以下查询将 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 整数除法运算符 (DIV) 来计算 CUSTOMERS 表中每个人的 SALARY 与 AGE 的比率 -
SELECT NAME, salary DIV age AS SALARY_TO_AGE_RATIO FROM CUSTOMERS;
输出
这将产生以下结果 -
NAME | SALARY_TO_AGE_RATIO |
---|---|
Ramesh | 62 |
Khilan | 60 |
Kaushik | 86 |
Chaitali | 260 |
Hardik | 314 |
Komal | 204 |
Muffy | 416 |
示例
您还可以将除法运算符与 DELETE 语句以及 WHERE 子句和赋值运算符一起使用。
以下查询删除 CUSTOMERS 表中 SALARY 与 AGE 之比小于 250 的记录。
DELETE FROM CUSTOMERS WHERE SALARY DIV AGE < 250;
输出
CUSTOMERS 表中删除了四行。
Query OK, 4 rows affected (0.01 sec)
验证
执行以下查询来验证上述记录是否已被删除 -
Select * From CUSTOMERS;
从输出结果可以看出,SALARY 与 AGE 之比小于 250 的客户已被删除。
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 CUSTOMERS SET SALARY = SALARY DIV AGE;
输出
这将产生以下结果 -
Query OK, 3 rows affected, 2 warnings (0.01 sec) Rows matched: 3 Changed: 3 Warnings: 2
验证
执行以下查询,验证 SALARY 列中的值是否已更新 -
Select * From CUSTOMERS;
从输出结果中可以看出,工资的小数部分被舍弃,显示为 0。
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
4 | Chaitali | 25 | Mumbai | 260.00 |
5 | Hardik | 27 | Bhopal | 314.00 |
7 | Muffy | 24 | Indore | 416.00 |