MySQL中int(10) 的 10代表什么
在 MySQL 中,我們定義int類型時需要設(shè)置長度,比如INT(10),那么10 到底代表什么?如果超過這個范圍會出現(xiàn)什么問題?這篇文章我們來詳細(xì)地聊一聊。
1. 含義
在數(shù)據(jù)類型如 INT 后面的括號中的數(shù)字(例如 INT(10))指定了顯示寬度,即當(dāng)使用 ZEROFILL 屬性時,系統(tǒng)會在數(shù)值前補(bǔ)零以達(dá)到指定的寬度。
- 存儲空間:
INT數(shù)據(jù)類型總是占用 4 字節(jié)(32 位),無論顯示寬度是多少。 - 取值范圍:對于有符號的
INT,范圍是-2147483648到2147483647;對于無符號的INT UNSIGNED,范圍是0到4294967295。顯示寬度不會改變這一范圍。
2.ZEROFILL的應(yīng)用
當(dāng)在 INT 類型后使用 ZEROFILL 時,MySQL 會在數(shù)值前補(bǔ)零,以符合指定的顯示寬度。如下示例:
CREATE TABLE users ( id INT(10) ZEROFILL, name VARCHAR(50) );
插入數(shù)據(jù):
INSERT INTO users (id, name) VALUES (123, 'Alice');
查詢結(jié)果:
+-----------+-------+ | id | name | +-----------+-------+ | 0000000123 | Alice | +-----------+-------+
在這個例子中,id 字段顯示為 0000000123,達(dá)到 10 位寬度。
3.MySQL 8.0.17 及以后的變化
從 MySQL 8.0.17 版本開始,整數(shù)類型的顯示寬度被廢棄(deprecated),即使指定了顯示寬度,默認(rèn)情況下也不再影響存儲或顯示。這意味著:
影響:不再推薦在整數(shù)類型后指定顯示寬度,如
INT(10)中的10將被忽略,除非配合ZEROFILL使用。推薦做法:直接使用
INT而無需指定顯示寬度,除非確實需要與現(xiàn)有系統(tǒng)兼容或有特殊需求。
為了更好地理解INT,下面通過幾個例子詳細(xì)解釋。
創(chuàng)建表并插入數(shù)據(jù):
CREATE TABLE example (
id INT(10) NOT NULL,
name VARCHAR(50)
);
INSERT INTO example (id, name) VALUES (1, 'John'), (123456, 'Jane');
查詢顯示:
SELECT * FROM example;
結(jié)果:
+-------+-------+ | id | name | +-------+-------+ | 1 | John | | 123456 | Jane | +-------+-------+
在沒有使用 ZEROFILL 的情況下,顯示寬度 10 并未影響輸出格式。
使用 ZEROFILL 的情況:
CREATE TABLE example_zf (
id INT(10) ZEROFILL NOT NULL,
name VARCHAR(50)
);
INSERT INTO example_zf (id, name) VALUES (1, 'John'), (123456, 'Jane');
SELECT * FROM example_zf;
結(jié)果:
+-----------+-------+ | id | name | +-----------+-------+ | 0000000001 | John | | 0000123456 | Jane | +-----------+-------+
這里,id 字段根據(jù)顯示寬度 10 補(bǔ)充了前導(dǎo)零。
注意:由于 MySQL 8.0.17 及以后的版本中顯示寬度被廢棄,建議在設(shè)計數(shù)據(jù)庫時避免依賴顯示寬度,除非有明確的需求和兼容性考慮。
5. 總結(jié)
INT(10)中的10代表的是顯示寬度,它用于在與ZEROFILL一起使用時補(bǔ)充前導(dǎo)零。- 不影響數(shù)值的存儲大小或取值范圍。
- 在 MySQL 8.0.17 及以后版本中,整數(shù)類型的顯示寬度被廢棄,建議不再使用這種方式指定寬度,除非有特定需求。
到此這篇關(guān)于MySQL中int(10) 的 10代表什么的文章就介紹到這了,更多相關(guān)MySQL int(10) 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL登錄時出現(xiàn) Access denied for user ‘
今天打開mysql的時候突然提示:Access denied for user 'root'@'localhost' (using password: YES) 在網(wǎng)上搜索了很多文章,本文就來做一下總結(jié),介紹了幾種場景的解決方法,感興趣的可以了解一下2024-03-03
MySQL中slave_exec_mode參數(shù)詳解
本篇文章主要給大家講述了MySQL中slave_exec_mode參數(shù)的用法以及示例分析了出現(xiàn)的錯誤問題和解決辦法,需要的朋友參考學(xué)習(xí)下吧。2017-12-12
MySQL中l(wèi)ower_case_table_names作用及使用小結(jié)
在使用DataEase連接外部數(shù)據(jù)庫時,可能會遇到啟動報錯的問題,官方文檔指出,修改數(shù)據(jù)庫配置文件中的lower_case_table_names=1參數(shù)可以解決此問題,此參數(shù)控制表名大小寫敏感性,感興趣的可以了解一下2024-09-09
CentOS6.7 mysql5.6.33修改數(shù)據(jù)文件位置的方法
mysql存放的數(shù)據(jù)文件,分區(qū)容量較小,目前已經(jīng)滿,導(dǎo)致mysql連接不上,怎么解決呢?下面小編給大家分享CentOS6.7 mysql5.6.33修改數(shù)據(jù)文件位置的方法,一起看看吧2017-06-06

