共計 2569 個字符,預計需要花費 7 分鐘才能閱讀完成。
本篇內容介紹了“mysql 長整型指的是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
mysql 的長整型是“BIGINT”。BIGINT 是 ab 字節或 64 位整數值,在存儲極大整數值時非常有用。BIGINT 與其他整數數據類型一樣,可以是有符號或無符號的;有符號數據類型表示該列可以存儲正整數和負整數值,而無符號數據類型表示該列只能存儲正整數值。有符號 BIGINT 類型的范圍在“-9223372036854775808”和“9223372036854775807”之間。
本教程操作環境:windows7 系統、mysql8 版本、Dell G3 電腦。
整數類型又稱數值型數據,數值型數據類型主要用來存儲數字。
MySQL 提供了多種數值型數據類型,不同的數據類型提供不同的取值范圍,可以存儲的值范圍越大,所需的存儲空間也會越大。
MySQL 主要提供的整數類型有 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,其屬性字段可以添加 AUTO_INCREMENT 自增約束條件。下表中列出了 MySQL 中的數值類型。
類型大小范圍(有符號)范圍(無符號)用途 TINYINT1 個字節 (-128,127)(0,255) 小整數值 SMALLINT2 個字節 (-32 768,32 767)(0,65 535) 大整數值 MEDIUMINT3 個字節 (-8 388 608,8 388 607)(0,16 777 215) 大整數值 INT 或 INTEGER4 個字節 (-2 147 483 648,2 147 483 647)(0,4 294 967 295) 大整數值 BIGINT8 個字節 (-9,223,372,036,854,775,808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615) 極大整數值
從上表中可以看到,不同類型的整數存儲所需的字節數不相同,占用字節數最小的是 TINYINT 類型,占用字節最大的是 BIGINT 類型,占用的字節越多的類型所能表示的數值范圍越大。因而,mysql 的長整型是“BIGINT”。
MySQL BIGINT
BIGINT 是 ab 字節或 64 位整數值,在存儲大整數值時非常有用。
MySQL BIGINT 與任何其他 MySQL 整數數據類型一樣,可以是有符號或無符號的。有符號數據類型表示該列可以存儲正整數和負整數值。這是 MySQL 中大多數整數類型的默認類型。因此,除非明確指定,否則任何整數類型列都可以存儲正整數和負整數。
另一方面,無符號數據類型表示該列只能存儲正整數值。
有符號 MySQL BIGINT 類型的范圍在 -9223372036854775808 和 9223372036854775807 之間
對于無符號 BIGINT 類型,取值范圍為 0 到 18446744073709551615。
BIGINT 類型的另一個屬性是 ZEROFILL。在列上指定此屬性后,該列將自動設置為 UNSIGNED。
zerofill 屬性也用零填充空格。
BIGINT 示例:
讓我們看幾個例子來說明如何使用 BIGINT 類型。
CREATE DATABASE IF NOT EXISTS integers;
USE integers;
接下來,讓我們創建一個表并用各種 BIGINT 列填充它,如下面的查詢所示:
CREATE TABLE examples(x BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, y BIGINT UNSIGNED, z BIGINT ZEROFILL );
示例 1
讓我們首先嘗試將所有正值添加到表中:
INSERT INTO examples(x,y,z) VALUES (1,2,3);
在上面的示例查詢中,這些值是可接受的,因為它們在有符號、無符號和 zerofill BIGINT 類型的范圍內。
SELECT * FROM examples;
示例 2
在下一個案例中,讓我們嘗試添加所有負值。示例查詢如下:
INSERT INTO examples(x,y,z) VALUES (-1,-2,-3);
ERROR 1264 (22003): Out of range value for column y at row 1
在這種情況下,查詢失敗,因為 y 列是無符號的。因此,為列分配負值超出了列范圍。
示例 3
我們可以觀察到與上述第三列類似的情況。zerofill 屬性自動使列無符號,使添加負值超出范圍。一個例子是:
INSERT INTO examples(x,y,z) VALUES (-1,2,-3);
ERROR 1264 (22003): Out of range value for column z at row 1
示例 4
現在讓我們嘗試添加每種類型的最大值。一個示例查詢是:
INSERT INTO examples(x,y,z) VALUES (-9223372036854775808, 9223372036854775808, 9223372036854775808);
在上面的示例中,由于所有值都在范圍內,因此查詢成功執行。
考慮下面的查詢:
INSERT INTO examples(x,y,z) VALUES (9223372036854775807, 9223372036854775808, 9223372036854775808);
您會注意到所有值都在最大值上。由于 x 列設置為 AUTO_INCREMENT,因此向其添加值將失敗。
INSERT INTO examples(y,z) VALUES (9223372036854775808, 9223372036854775808);
ERROR 1062 (23000): Duplicate entry 9223372036854775807 for key examples.PRIMARY
但是,如果在 MySQL 中禁用了嚴格模式,您可以插入超出范圍的值。
SELECT * FROM examples;
“mysql 長整型指的是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!