中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在MySQL中int(10)和int(11)有什么區別?

發布時間:2020-05-20 13:49:55 來源:億速云 閱讀:1429 作者:鴿子 欄目:編程語言

最近在找工作所以一直在面試,在面試過程中暴露了自己很多不足的地方,一直在總結和歸納。可能大部分面試官對 mysql 的問題都會問數據庫優化啊、主從復制啊、索引啊、引擎啊等等之類的。那么使我印象最深的是 int (10) 和 int (11) 有什么區別。這好像是最基礎的問題了,我好像從來沒有在意過。當時有點兒懵逼,有什么區別?不知道!沒想過!

那么回到家以后,我趕緊復習了下 mysql 的數據類型相關知識。對整數類型做些說明。

mysql 中整數數據類型

數據類型說明存儲需求
tinyint很小的整數1 字節
smallint小的整數2 字節
mediumint中等大小的整數3 字節
int(integer)普通大小的整數4 字節
bigint大整數8 字節

不同類型的取值范圍

數據類型有符號無符號
tinyint-128~1270~255
smallint-32768~327670~65535
mediumint-8388608~83886070~16777215
int(integer)-2147483648~21474836470~4294967295
bigint-9223372036854775808~92233720368547758070~18446744073709551615

不同數據類型的默認顯示寬度

數據類型默認顯示寬度
tinyint4
smallint6
mediumint9
int(integer)11
bigint20

* 因為負號占了一個數字位,所以各類型的寬度是最大值數字位 + 1 位。例如 tinyint 的最大數字位是 3,加負號所以顯示寬度是 4。

那么取值范圍和顯示寬度到底有什么關系呢?我利用 tinyint 做了個實驗,首先創建一張表如下

mysql> desc test_integer;
+-----------+------------+------+-----+---------+----------------+
| Field     | Type       | Null | Key | Default | Extra          |
+-----------+------------+------+-----+---------+----------------+
| id        | int(11)    | NO   | PRI | NULL    | auto_increment |
| test_id_1 | tinyint(1) | NO   |     | NULL    |                |
| test_id_2 | tinyint(4) | NO   |     | NULL    |                |
+-----------+------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

我分別創建了有符號 tinyint 類型的 test_id_1 顯示寬度為 1 和 test_id_2 顯示寬度為 4 兩字段,接下來插入數據,同時插入 - 128、1 和 127 這些數值,看看會怎么樣。

mysql> insert into test_integer (test_id_1,test_id_2) values (-128,-128), (1,1), (127,127);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

ok 提示插入成功,我們查詢一下

mysql> select * from test_integer;
+----+-----------+-----------+
| id | test_id_1 | test_id_2 |
+----+-----------+-----------+
|  1 |      -128 |      -128 |
|  2 |         1 |         1 |
|  3 |       127 |       127 |
+----+-----------+-----------+
3 rows in set (0.00 sec)

查詢出來的結果也是一樣,經過以上實驗得到結論:

顯示寬度整數類型的取值范圍是無關的。顯示寬度只是指明 mysql 最大可能顯示的數字個數,數值的位數小于指定的寬度時就由空格填充,如果插入了大于顯示寬度的值,只要該值不超過該類型整數的取值范圍,數值依然可以插入,而且能夠顯示出來。

同理,所以 int (10) 和 int (11) 沒有任何區別,就是顯示寬度不同,小伙伴們千萬不要忘記了呀。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

利辛县| 沙湾县| 句容市| 天柱县| 九台市| 阿拉善左旗| 平江县| 肥城市| 南川市| 广东省| 花垣县| 武隆县| 余干县| 常熟市| 象山县| 嘉峪关市| 汾阳市| 怀柔区| 湄潭县| 潮安县| 鲜城| 南召县| 永平县| 迁西县| 马龙县| 武强县| 汝阳县| 会理县| 门源| 淅川县| 琼结县| 喀什市| 称多县| 盖州市| 宁海县| 松原市| 公主岭市| 凤阳县| 张家港市| 黄骅市| 岳池县|