需要帮助理解这段MySQL代码

时间:2010-12-30 11:01:46

标签: mysql database

CREATE TABLE `users` (
`ID` int(10) unsigned zerofill NOT NULL auto_increment,
`username` varchar(20) NOT NULL,
PRIMARY KEY  (`ID`),
KEY `Username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

是什么 a)ID表中的unsigned,zerofill? b)KEY Usernameusername)是什么意思?

谢谢

4 个答案:

答案 0 :(得分:3)

zerofill - 左侧垫0

  

例如,对于声明为INT(4)ZEROFILL的列,将值5检索为0005。


unsigned是不小于零的数字

  

如果为数字列指定ZEROFILL,MySQL会自动将UNSIGNED属性添加到列中。

     

无符号类型可用于仅允许列中的非负数,或者当您需要更大的列数字

详细信息:http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html


  

KEY用户名(用户名)?

是列用户名

Username之后的索引名称

详细信息:http://dev.mysql.com/doc/refman/5.0/en/create-table.html

答案 1 :(得分:2)

unsigned =一个无正数/负数,所以你不能得-1,因为“ - ”是一个符号。

zerofill =默认填充零。没必要,因为列已经获得了auto_increment / pk属性

key =索引此列,即使SELECTS更快地搜索此列。

Ta

答案 2 :(得分:0)

这是部分答案。

a)无符号表示该值为正。

b)zerofill表示它的leftpadding为'0'

例如:没有zerofill你有55并且你将拥有00000055

问候。

答案 3 :(得分:0)

Zerofill用于用零填充数字而不是空格。在这种情况下,由于int(10),数字1337将填充6个零并显示为0000001337。由于zerofill会自动选择无符号,因此不需要指定unsigned,请参阅http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

KEY foo(bar)在条形列上创建索引。索引的名称是foo。