mysql的長整型是「BIGINT」。BIGINT是ab位元組或64位元整數值,在儲存極大整數值時非常有用。BIGINT與其他整數資料型別一樣,可以是有符號或無符號的;有符號資料型別表示該列可以儲存正整數和負整數值,而無符號資料型別表示該列只能儲存正整數值。有符號BIGINT型別的範圍在「-9223372036854775808」和「9223372036854775807」之間。
本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。
整數型別又稱數值型資料,數值型資料型別主要用來儲存數位。
MySQL 提供了多種數值型資料型別,不同的資料型別提供不同的取值範圍,可以儲存的值範圍越大,所需的儲存空間也會越大。
MySQL 主要提供的整數型別有 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,其屬性欄位可以新增 AUTO_INCREMENT 自增約束條件。下表中列出了 MySQL 中的數值型別。
型別 | 大小 | 範圍(有符號) | 範圍(無符號) | 用途 |
---|---|---|---|---|
TINYINT | 1個位元組 | (-128,127) | (0,255) | 小整數值 |
SMALLINT | 2個位元組 | (-32 768,32 767) | (0,65 535) | 大整數值 |
MEDIUMINT | 3個位元組 | (-8 388 608,8 388 607) | (0,16 777 215) | 大整數值 |
INT或INTEGER | 4個位元組 | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 大整數值 |
BIGINT | 8個位元組 | (-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的長整型是什麼的詳細內容,更多請關注TW511.COM其它相關文章!