Mysql入门系列:MySQL的列类型(1)
2006-12-31 10:48:03 来源:WEB开发网AUTO_INCREMENT 的性能将在下一小节“使用序列”中作进一步的介绍。
■ U N S I G N E D。此属性禁用负值。将列定义为UNSIGNED 并不改变其基本数据类型的取值范围;它只是前移了取值的范围。考虑下列的表说明:
itiny 和itiny_u两列都是T I N Y I N T列,并且都可取2 5 6个值,但是i t i n y的取值范围为-12 8 到127,而itiny_u的取值范围为0 到2 5 5。UNSIGNED 对不取负值的列是非常有用的,如存入人口统计或出席人数的列。如果用常规的有符号列来存储这样的值,那么就只利用了该列类型取值范围的一半。通过使列为U N S I G N E D,能有效地成倍增加其取值范围。如果将列用于序列号,且将它设为U N S I G N E D,则可取原双倍的值。在指定以上属性之后(它们是专门用于数值列的),可以指定通用属性NULL 或N O TNULL。如果未指定NULL 或NOT NULL,则缺省为NULL。也可以用D E FA U LT 属性来指定一个缺省值。如果不指定缺省值,则会自动选择一个。对于所有数值列类型,那些可以包含NULL 的列的缺省将为NULL,不能包含NULL 的列其缺省为0。下面的样例创建三个INT 列,它们分别具有缺省值-1、1和NULL:
2. 使用序列
许多应用程序出于标识的目的需要使用唯一的号码。需要唯一值的这种要求在许多场合都会出现,如:会员号、试验样品编号、顾客ID、错误报告或故障标签等等。AUTO_INCREMENT 列可提供唯一编号。这些列可自动生成顺序编号。本节描述AUTO_INCREMENT 列是怎样起作用的,从而使您能够有效地利用它们而不至于出错。另外,还介绍了怎样不用AUTO_INCREMENT 列来产生序列的方法。
更多精彩
赞助商链接