mysql中,int類型在存儲(chǔ)時(shí)需要4 個(gè)字節(jié)。int代表標(biāo)準(zhǔn)整數(shù),可表示普通大小的整數(shù);int類型可以是有符號(hào)或無符號(hào)的,無符號(hào)范圍是“0~4294967295”,有符號(hào)范圍是“-2147483648~2147483647”。因?yàn)檎麛?shù)類型表示確切數(shù)字,所以通常將int列用作表的主鍵,且設(shè)置AUTO_INCREMENT屬性,每增加一條記錄,int列數(shù)據(jù)會(huì)自動(dòng)以相同步長(zhǎng)進(jìn)行增長(zhǎng)。
本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。
MySQL 主要提供的整數(shù)類型有 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,其屬性字段可以添加 AUTO_INCREMENT 自增約束條件。
其中int類型:
類型名稱 | 說明 | 存儲(chǔ)需求 |
---|---|---|
INT | 普通大小的整數(shù) | 4個(gè)字節(jié) |
在MySQL中,INT代表標(biāo)準(zhǔn)整數(shù),它可以是1,100,4,-10等,它不能是1.2,5/3等。整數(shù)可以是零,正和負(fù)。
MySQL INT數(shù)據(jù)類型可以是有符號(hào)或無符號(hào)。
類型 | 有符號(hào) | 無符號(hào) | ||
---|---|---|---|---|
最小值 | 最大值 | 最小值 | 最大值 | |
INT | -2147483648(-216) | 2147483647(-216) | 0 | 4294967295(-232) |
在列中使用INT
因?yàn)檎麛?shù)類型表示確切的數(shù)字,所以通常將它用作表的主鍵。此外,INT列可以具有 AUTO_INCREMENT 屬性,這樣每增加一條記錄,int列數(shù)據(jù)會(huì)自動(dòng)以相同步長(zhǎng)進(jìn)行增長(zhǎng)。
當(dāng)你 插入一個(gè)NULL值或0到INT AUTO_INCREMENT列,列的值設(shè)置為下一個(gè)序列值。請(qǐng)注意,序列值以1開頭。
當(dāng)您向AUTO_INCREMENT列中插入一個(gè)非零或零值時(shí),列將接受NULL值。此外,序列被重置為插入值的下一個(gè)值。
讓我們看一個(gè)使用帶AUTO_INCREMENT 屬性的整數(shù)列的表的示例 。
首先,使用以下語句創(chuàng)建一個(gè)新表items以整數(shù)列作為主鍵:
CREATE TABLE items ( item_id INT AUTO_INCREMENT PRIMARY KEY, item_text VARCHAR(255) );
您可以在CREATE TABLE上使用INT或INTEGER,因?yàn)樗鼈兿嗟鹊?。無論何時(shí)向items表中插入新行,item_id列的值都會(huì)增加1。
接下來,以下INSERT語句在items表中插入三行。
INSERT INTO items(item_text) VALUES('laptop'), ('mouse'),('headphone');
然后,使用以下SELECT語句從items表中查詢數(shù)據(jù):
SELECT * FROM items;
之后,插入一個(gè)新行,明確指定item_id的值。
INSERT INTO items(item_id,item_text) VALUES(10,'Server');
由于item_id列的當(dāng)前值為 10,序列將重置為11.如果插入新行,則AUTO_INCREMENT列將使用11作為下一個(gè)值。
INSERT INTO items(item_text) VALUES('Router');
最后,再次查詢items表的數(shù)據(jù)以查看結(jié)果。
SELECT * FROM items;
注意:自MySQL 5.1以來,AUTO_INCREMENT列僅接受正值。AUTO_INCREMENT列不支持負(fù)值 。
拓展
加上 AUTO_INCREMENT 約束條件后,字段中的每個(gè)值都是自動(dòng)增加的。因此,這個(gè)字段不可能出現(xiàn)相同的值。通常情況下,AUTO_INCREMENT 都是作為 id 字段的約束條件,并且將 id 字段作為表的主鍵。
【