mysql的長整型是什么

mysql的長整型是“BIGint”。BIGINT是ab字節或64位整數值,在存儲極大整數值時非常有用。BIGINT與其他整數數據類型一樣,可以是有符號或無符號的;有符號數據類型表示該列可以存儲正整數和負整數值,而無符號數據類型表示該列只能存儲正整數值。有符號BIGINT類型的范圍在“-9223372036854775808”和“9223372036854775807”之間。

mysql的長整型是什么

本教程操作環境: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;

mysql的長整型是什么

示例 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視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享