欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL中BIGINT數(shù)據(jù)類型如何存儲整數(shù)值

 更新時間:2022年10月26日 12:00:26   作者:allway2  
mysql數(shù)據(jù)庫設計,其中對于數(shù)據(jù)性能優(yōu)化,字段類型考慮很重要,下面這篇文章主要給大家介紹了關于MySQL中BIGINT數(shù)據(jù)類型如何存儲整數(shù)值的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

前言

本文重點介紹 MySQL BIGINT 數(shù)據(jù)類型,并研究我們如何使用它來存儲整數(shù)值。我們還將了解它的范圍、存儲大小和各種屬性,包括有符號、無符號和零填充。

整數(shù)類型(精確值) - INTEGER、INT、SMALLINT、TINYINT、MEDIUMINT、BIGINT

MySQL 支持 SQL 標準整數(shù)類型 INTEGER(或INT)和 SMALLINT. 作為標準的擴展,MySQL 還支持整數(shù)類型 TINYINT、MEDIUMINT和 BIGINT. 下表顯示了每種整數(shù)類型所需的存儲空間和范圍。

表 11.1 MySQL 支持的整數(shù)類型所需的存儲和范圍

類型存儲(字節(jié))簽名的最小值最小值無符號簽署的最大值最大值無符號
TINYINT1-1280127255
SMALLINT2-3276803276765535
MEDIUMINT3-83886080838860716777215
INT4-2147483648021474836474294967295
BIGINT8-2630263-1264-1

MySQL BIGINT

BIGINT 是 ab 字節(jié)或 64 位整數(shù)值,在存儲大整數(shù)值時非常有用。

MySQL BIGINT 與任何其他 MySQL 整數(shù)數(shù)據(jù)類型一樣,可以是有符號或無符號的。有符號數(shù)據(jù)類型表示該列可以存儲正整數(shù)和負整數(shù)值。這是 MySQL 中大多數(shù)整數(shù)類型的默認類型。因此,除非明確指定,否則任何整數(shù)類型列都可以存儲正整數(shù)和負整數(shù)。

另一方面,無符號數(shù)據(jù)類型表示該列只能存儲正整數(shù)值。

簽名 MySQL BIGINT 類型的范圍在 -9223372036854775808 和 9223372036854775807 之間

對于無符號 BIGINT 類型,取值范圍為 0 到 18446744073709551615。

BIGINT 類型的另一個屬性是 ZEROFILL。在列上指定此屬性后,該列將自動設置為 UNSIGNED。

zerofill 屬性也用零填充空格。

例子

讓我們看幾個例子來說明如何使用 BIGINT 類型。

CREATE DATABASE IF NOT EXISTS integers;
USE integers;

接下來,讓我們創(chuàng)建一個表并用各種 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;
+---+------+----------------------+
| x | y    | z                    |
+---+------+----------------------+
| 1 |    2 | 00000000000000000003 |
+---+------+----------------------+
1 row in <strong>set</strong> (0.01 sec)

示例 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

現(xiàn)在讓我們嘗試添加每種類型的最大值。一個示例查詢是:

INSERT INTO examples(x,y,z) VALUES (-9223372036854775808, 9223372036854775808, 9223372036854775808);

在上面的示例中,由于所有值都在范圍內,因此查詢成功執(zhí)行。

考慮下面的查詢:

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 BININT 類型及其各種屬性的范圍。

到此這篇關于MySQL中BIGINT數(shù)據(jù)類型如何存儲整數(shù)值的文章就介紹到這了,更多相關MySQL BIGINT數(shù)據(jù)類型內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論