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) | 大整數值 |
從上表可以看到,不同類型的整數儲存所需的位元組數不相同,佔用位元組數最小的是TINYINT 類型,佔用位元組最大的是BIGINT 類型,佔用的位元組越多的類型所能表示的數值範圍越大。因而,mysql的長整型是「BIGINT」。
MySQL BIGINT
BIGINT 是 ab 位元組或 64 位元整數值,在儲存大整數值時非常有用。
MySQL BIGINT 與任何其他 MySQL 整數資料型別一樣,可以是有符號或無符號的。有符號資料類型表示該列可以儲存正整數和負整數值。這是 MySQL 中大多數整數類型的預設類型。因此,除非明確指定,否則任何整數類型列都可以儲存正整數和負整數。
另一方面,無符號資料型態表示該列只能儲存正整數值。
有符號 MySQL BIGINT 類型的範圍在 -9223372036854775808 和 9223372036854775807 之間
#對於無符號 BIGINT 型,取值範圍為 0 到 184467440751744075。
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影片教學】
以上是mysql的長整型是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!