MySQL - 整數除法運算子 (DIV)



MySQL 中的整數除法運算子(DIV)表示。此運算子對兩個數字進行除法運算並返回整數商,這意味著它將丟棄結果中的任何小數部分。它會將除法結果向下舍入到小於或等於實際結果的最近整數。

此除法運算子也可與 MySQL 中的 SELECT、UPDATE 和 DELETE 語句一起使用,以及 WHERE、ORDER BY 等子句。

示例

在以下示例中,讓我們觀察兩個除法運算子“/”和“DIV”之間的區別。

首先,我們將使用除法運算子"/",如下所示:

SELECT 62555.5875/455 As Result;

如我們所見,輸出中沒有丟棄小數位:

結果
137.48480769

這裡,我們使用"DIV",如下所示:

SELECT 62555.5875 DIV 455 As 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 姓名 年齡 地址 薪資
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 表中每個人的薪資與年齡的比率:

SELECT NAME, salary DIV age AS SALARY_TO_AGE_RATIO
FROM CUSTOMERS;

輸出

這將產生以下結果:

姓名 薪資與年齡比率
Ramesh 62
Khilan 60
Kaushik 86
Chaitali 260
Hardik 314
Komal 204
Muffy 416

示例

您還可以將除法運算子與DELETE語句以及 WHERE 子句和賦值運算子一起使用。

以下查詢刪除薪資與年齡之比小於 250 的 CUSTOMERS 記錄。

DELETE FROM CUSTOMERS
WHERE SALARY DIV AGE < 250;

輸出

CUSTOMERS 表中已刪除四行。

Query OK, 4 rows affected (0.01 sec)

驗證

執行以下查詢以驗證上述記錄是否已刪除:

Select * From CUSTOMERS;

如我們所見,輸出中,薪資與年齡之比小於 250 的客戶已被刪除。

ID 姓名 年齡 地址 薪資
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 姓名 年齡 地址 薪資
4 Chaitali 25 Mumbai 260.00
5 Hardik 27 Bhopal 314.00
7 Muffy 24 Indore 416.00
廣告