2013年5月8日星期三

[转] 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,但是,数据库没有记录

ps: 老要查,索性收录了.

没有评论: