mysql int类型
发布时间:2023-12-21 20:46:50 所属栏目:MySql教程 来源:DaWei
导读: 在mysql中,int是标准整数类型,可以代表普通大小的整数,占4个字节。可以在没有分数分量的情况下写入整数,例如,它是1,100,4,-10等,并且它不能是1.2,5 / 3等。整数可以是零,正和负。
在mysql中,int是标准整数类型,可以代表普通大小的整数,占4个字节。可以在没有分数分量的情况下写入整数,例如,它是1,100,4,-10等,并且它不能是1.2,5 / 3等。整数可以是零,正和负。 MySQL支持所有标准SQL整数类型INTEGER或INT和SMALLINT。另外,MySQL提供 了标准SQL TINYINT MEDIUMINT,并BIGINT 作为标准SQL的扩展。 MySQL INT 数据类型可以是有符号和无符号的。下表说明了每种整数类型的特征,包括以字节为单位的存储,最小值和最大值。 类型 存储(字节) 有符号 无符号 最小值 最大值 最小值 最大值 TINYINT 1 -128(-24) 127(24) 0 255(28) SMALLINT 2 -32768(-28) 32767(-28) 0 65535(-216) MEDIUMINT 3 -8388608(-212) 8388607(-212) 0 16777215(-224) INT 4 -2147483648(-216) 2147483647(-216) 0 4294967295(-232) BIGINT 8 -9223372036854775808(-232) 9223372036854775807(-232) 0 18446744073709551615(-264) 在列中使用INT 因为整数类型表示确切的数字,所以通常将它用作表的主键。此外,INT列可以具有 AUTO_INCREMENT 属性。 当你 插入一个NULL值或0到INT AUTO_INCREMENT列,列的值设置为下一个序列值。请注意,序列值以1开头。 当您向AUTO_INCREMENT列中插入一个非零或零值时,列将接受NULL值。此外,序列被重置为插入值的下一个值。 让我们看一个使用带AUTO_INCREMENT 属性的整数列的表的示例 。 首先,使用以下语句创建一个新表items以整数列作为主键: CREATE TABLE items ( item_id INT AUTO_INCREMENT PRIMARY KEY, item_text VARCHAR(255) ); 您可以在CREATE TABLE上使用INT或INTEGER,因为它们相等的。无论何时向items表中插入新行,item_id列的值都会增加1。 接下来,以下INSERT语句在items表中插入三行。 INSERT INTO items(item_text) VALUES('laptop'), ('mouse'),('headphone'); 然后,使用以下SELECT语句从items表中查询数据: SELECT * FROM items; 之后,插入一个新行,明确指定item_id的值。 INSERT INTO items(item_id,item_text) VALUES(10,'Server'); 由于item_id列的当前值为 10,序列将重置为11.如果插入新行,则AUTO_INCREMENT列将使用11作为下一个值。 INSERT INTO items(item_text) VALUES('Router'); 最后,再次查询items表的数据以查看结果。 SELECT * FROM items; 注意:自MySQL 5.1以来,AUTO_INCREMENT列仅接受正值。AUTO_INCREMENT列不支持负值 。 MySQL INT和显示宽度属性 MySQL提供了一个扩展,允许您指定显示宽度和INT数据类型。显示宽度包含在INT关键字后面的括号内,例如,INT(5)指定INT显示宽度为五位的a。 请务必注意,display width属性不控制列可以存储的值范围。应用程序通常使用display width属性来格式化整数值。MySQL包含display width属性作为返回结果集的元数据。 MySQL INT具有ZEROFILL属性 除了显示宽度,MySQL还提供了非标准ZEROFILL 属性。在这种情况下,MySQL将空格替换为零。请考虑以下示例。 首先,zerofill_tests使用以下语句创建一个名为的表: CREATE TABLE zerofill_tests( id INT AUTO_INCREMENT PRIMARY KEY, v1 INT(2) ZEROFILL, v2 INT(3) ZEROFILL, v3 INT(5) ZEROFILL ); 其次,在zerofill_tests表中插入一个新行。 INSERT into zerofill_tests(v1,v2,v3) VALUES(1,6,9); 第三,从zerofill_tests表中查询数据。 SELECT v1, v2, v3 FROM zerofill_tests; v1列的显示宽度为2的ZEROFILL.因此它的值为1,因此,您可以在输出中看到01。MySQL将第一个空格替换为0。 v2列的显示宽度为3的 ZEROFILL。因此,它的值为6,其它值以00填充。 v3列的显示宽度为5 的ZEROFILL,而其值为9,因此MySQL 在输出中的0000数字的开头填充。 注意:如果ZEROFILL对整数列使用属性,MySQL将自动向列添加 UNSIGNED属性。 (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |