亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

在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

大悟县| 始兴县| 平安县| 五华县| 江安县| 张家界市| 新郑市| 敦煌市| 双峰县| 鸡西市| 会理县| 松原市| 丹巴县| 阿尔山市| 高要市| 习水县| 城市| 阿图什市| 太谷县| 仪征市| 凤阳县| 新蔡县| 昭通市| 简阳市| 德保县| 兴海县| 新田县| 通州市| 新昌县| 内丘县| 甘德县| 永川市| 邳州市| 张家口市| 略阳县| 泉州市| 龙胜| 黎川县| 息烽县| 张家川| 扬州市|