首頁 >資料庫 >mysql教程 >mysql的長整型是什麼

mysql的長整型是什麼

青灯夜游
青灯夜游原創
2022-06-14 16:40:295132瀏覽

mysql的長整型是「BIGINT」。 BIGINT是ab位元組或64位元整數值,在儲存極大整數值時非常有用。 BIGINT與其他整數資料類型一樣,可以是有符號或無符號的;有符號資料類型表示該列可以儲存正整數和負整數值,而無符號資料類型表示該列只能儲存正整數值。有符號BIGINT類型的範圍在「-9223372036854775808」和「9223372036854775807」之間。

mysql的長整型是什麼

本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。

整數型別又稱數值型數據,數值型數據型別主要用來儲存數字。

MySQL 提供了多種數值型資料類型,不同的資料類型提供不同的取值範圍,可以儲存的值範圍越大,所需的儲存空間也會越大。

MySQL 主要提供的整數類型有 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,其屬性欄位可以加入 AUTO_INCREMENT 自增約束條件。下表中列出了 MySQL 中的數值類型。

##BIGINT
類型 大小 範圍(有符號) #(無符號) #用途
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) 大整數值
8個位元組######(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)######(0,18 463175 463#(075 463#(075) 4632 ######極大整數值#############

從上表可以看到,不同類型的整數儲存所需的位元組數不相同,佔用位元組數最小的是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;

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影片教學

以上是mysql的長整型是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn