mc米兰 发表于 2013-2-3 13:58:51

mysql数据库字段发现(转)

mysql数据库字段发现(原创)


1.
mysql里的sql文件:tinyint字段不设置长度,则数据库默认是tinyint(4)

注:此长度是显示长度,比如:tinyint(4),我存储5,那么数据库就是0005

它的存储长度是固定不变的。
                  

2.
未指定UNSIGNED类型的TINYINT 型的字段存储-127到128的整数。指定了UNSIGNED类型的TINYINT 型的字段用来存储0-255的整数。  
通常,为了节省空间,应该尽可能的使用最小的整型数据。
一个TINYINT型数据只占用一个字节;一个INT型数据占用四个字节。
这看起来似乎差别不大,但是在比较大的表中,字节数的增长是很快的。
另一方面,一旦你已经创建了一个字段,要修改它是很困难的。
因此,为安全起见,你应该预测一下,一个字段所需要存储的数值最大有可能是多大,然后选择适当的数据类型。


3.boolean字段反应到数据库是tinyint(1),boolean -32786到 32767
tinyint是有正负的:-128到127
如果设置unsigned那么从0到255



4.选择zerofill则会默认选择unsigned一项
选择unsigned不会默认选择zerofill一项



5.boolean型---boolean
tinyint----short……
numeric----long

smallint----short

int----Interger


6.字符串类型的后面括号是存储长度
CHAR(n)、CHARACTER(n) 包含固定长度的字符串,用空格填充到长度n。
VARCHAR(n)、CHARACTER VARYING(n)、CHARACTER VARYING 存储长度可变的字符串,

   最大长度由n指定。末尾的空格不存储
数值类型的后面是显示长度
tinyint(4)、int(4)


7.NUMERIC、decimal类型的字段不能使用auto_increment属性
int 可以,但是映射到java实体类的时候是Integer型
bigint也可以,映射到java实体类的时候是long型

8.如果在方法里不添加事务,那么会有插入提交,但是没有提交事务,所以,结果是:消耗掉了一个id,但是,数据库没有记录
页: [1]
查看完整版本: mysql数据库字段发现(转)