MySQL入門課程:整數類型
最新學訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯系在線老師,甲骨文官方認證,報名從速!
我要咨詢MySQL入門課程:整數類型,MySQL支持所有的ANSI/ISO SQL92的數字類型,其中的整數類型為INTEGER,和SMALLINT,關鍵詞INT是INTEGER的一個同義詞:
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
取值范圍:有符號:-32768到32767(-215到215-1)無符號:0到65535(0到216-1)
存儲要求:2個字節
INT[(M)] [UNSIGNED] [ZEROFILL]、INTEGER[(M)] [UNSIGNED] [ZEROFILL]
取值范圍:有符號:-2147483648到2147483647(-231到231-1)無符號:0到4294967295(0到232-1)
存儲要求:4個字節
作為對ANSI/ISO SQL92標準的擴展,MySQL也支持上表所列的整型類型TINYINT、MEDIUMINT和BIGINT:
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
取值范圍:有符號:-128到127(-27和27-1)無符號:0到255(0到28-1)
存儲要求:1個字節
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
取值范圍:有符號:-8388608到8388607(-223到223-1)無符號:0到16777215(0到224-1)
存儲要求:3個字節
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
取值范圍:有符號:-9223372036854775808到9223372036854775807(-263到263-1)無符號:0到18446744073709551615(0到264-1)
存儲要求: 8個字節
在為列選擇了使用某種數值類型時,除了要考慮數據的類型外,還應該注意所要表示的值的范圍和存儲需求,只需選擇能覆蓋要取值的范圍的最小類型即可。選擇較大類型會對空間造成浪費,使表不必要地增大,處理起來沒有選擇較小類型那樣有效。對于整型值,如果數據取值范圍較小,則TINYINT最合適。MEDIUMINT和INT雖然能表示能夠表示更大的數值并且可用于更多類型的值,但存儲代價更大。BIGINT 在全部整型中取值范圍最大,而且需要的存儲空間是表示范圍次大的整型 INT 類型的兩倍,因此只在確實需要時才用。
作為對ANSI/ISO SQL92標準的的另一個擴展, MySQL支持可選地指定一個整型值顯示的寬度,用括號跟在基本關鍵詞之后(例如,INT(4))。這個可選的寬度指定被用于其寬度小于列指定寬度的值得左填補顯示,但是不限制能在列中被存儲的值的范圍;如果某個特定值的可打印表示需要不止 M 個字符,則顯示完全的值;不會將值截斷以適合 M 個字符。當與可選的擴展屬性ZEROFILL一起使用時,缺省的空格填補用零代替。例如,對于聲明為INT(5) ZEROFILL的列,一個為4的值作為00004被檢索。如果定義了一個沒有明確寬度的整數列,將會自動分配給它一個缺省的寬度。缺省值為每種類型的“最長”值的長度。
我們可以這樣知道M和D的缺省值。先創建一個表
CREATE TABLE number
(
tiny TINYINT,u_tiny TINYINT UNSIGNED,
small SMALLINT,u_small SMALLINT UNSIGNED,
medium MEDIUMINT,u_medium MEDIUMINT UNSIGNED,
num INT,u_num INT UNSIGNED,
big BIGINT,u_big BIGINT UNSIGNED
)
然后顯示這個表的結構
DESCRIBE number
在MySQL3.23上的結果如下:
+----------+-----------------------+
| Field | Type |
+----------+-----------------------+
| tiny | tinyint(4) |
| u_tiny | tinyint(3) unsigned |
| small | smallint(6) |
| u_small | smallint(5) unsigned |
| medium | mediumint(9) |
| u_medium | mediumint(8) unsigned |
| num | int(11) |
| u_num | int(10) unsigned |
| big | bigint(20) |
| u_big | bigint(20) unsigned|
+----------+-----------------------+