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

mysql中的int(5)到底有是多長

 更新時間:2023年04月12日 09:02:16   作者:【譚小譚】  
這篇文章主要介紹了mysql中的int(5)到底有是多長,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

int(5)到底有是多長

在設(shè)計 mysql 表字段時,int(5) 表示是該字段長度為 5 嗎?

如果你覺得是,那請你繼續(xù)往下看,相信你會有新的收獲的。

先來看一個實(shí)際例子

我們創(chuàng)建一個新表,表中只有一個主鍵 id 和一個 length 字段,其中 length 字段設(shè)置為 int(5) 。

#新建test表
CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `length` int(5) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

是不是 length 字段只能存儲長度不超過 5 的數(shù)字呢,我們來插入一條數(shù)據(jù)試試。

我們插入一條較大的數(shù)據(jù) 123456789 ,這個數(shù)據(jù)一共有 9 位,看能否正常插入。

#插入一條大數(shù)據(jù)
insert into test (length) values (123456789);

結(jié)果證明 int(5) 能插入長度大于 5 的數(shù)據(jù),所以現(xiàn)在可以肯定的是 int(5) 并不是代表數(shù)據(jù)的寬度。

#查看插入數(shù)據(jù)
mysql> select * from test;
+------------+-----------+
| id         | length    |
+------------+-----------+
|  1         | 123456789 |
+------------+-----------+

在 mysql 中 int 字段長度其實(shí)是固定的,就是 4 個字節(jié),不管你 int(11)  還是 int(5) 字段長度就是固定的 4 個字節(jié)。

int(5) 其實(shí)是和另一個屬性 zerofill 配合使用的,表示如果該字段值的寬度小于 5 時,會自動在前面補(bǔ) 0 ,如果寬度大于等于 5 ,那就不需要補(bǔ) 0 。

#int(5) length 字段添加了 zerofill 屬性
mysql> select * from test;
+----+--------+
| id | length |
+----+--------+
|  1 |  00888 |
|  2 |  00012 |
|  3 |  12345 |
|  4 | 123456 |
+----+--------+

注意前提是給該字段添加了 zerofill 屬性,不然 int(5) 不起作用。

#int(5) length 字段沒有 zerofill 屬性
mysql> select * from test;
+----+--------+
| id | length |
+----+--------+
|  1 |    888 |
|  2 |     12 |
|  3 |  12345 |
|  4 | 123456 |
+----+--------+

要想對整形字段設(shè)置長度,應(yīng)該是選擇 tinyint、smallint、mediumint、int、bigint 這幾個類型,這幾個整數(shù)類型才代表了固定的長度,具體長度請看下面這個表格。

注意如果要存儲帶符號的整形數(shù),是不支持 zerofill 屬性的,會自動轉(zhuǎn)換為 0,在一些涉及遞減的業(yè)務(wù)中需要注意考慮一下。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論