1、tinyint:tinyint 是-128到128 。当属性设置为unsigned的时候。最大值就是255了。现在知道为什么需要设置为unsigned属性了。原来是为了最大限度的使用给予的存储空间。如果不设置。那么假如你的值都是正数的。那么-128这一百多个数字就相当于是浪费了。默认tinyint会自动设置为tinyint(3)
2、int,占四个字节,取值范围是-2^31到2^31-1(大约正负二十亿)int 类型phpmyadmin默认会设置int(10)
3、bigint,占八个字节,取值范围是-2^63到2^63-1
二、时间类型
1、Date:用来存储没有时间的日期。Mysql获取和显示这个类型的格式为“YYYY-MM-DD”。支持的时间范围为“1000-00-00”到“9999-12-31”;
2、TimeStamp:存储既有日期又有时间的数据。存储和显示的格式为 “YYYY-MM-DD HH:MM:SS”。支持的时间范围是“1000-00-00 00:00:00”到“9999-12-31 23:59:59”;
3、DateTime:也是存储既有日期又有时间的数据。存储和显示的格式跟TimeStamp一样。支持的时间范围是“1970-01-01 00:00:01”到“2038-01-19 03:14:07”; (一般用这个)
1、尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT,如果非负则加上UNSIGNED
2、大小(VARCHAR的长度只分配真正需要的空间)
3、使用枚举或整数代替字符串类型
4、类型(尽量使用TIMESTAMP而非DATETIME,在精度要求高的应用中,建议使用定点数来存储数值,以保证结果的准确性。能用decimal就不要用float)
5、单表不要有太多字段,建议在20以内
6、值(是否允许为空、是否有默认值,尽量避免使用NULL字段,很难查询优化且占用额外索引空间)
7、用整型来存IP
8、合理的字段名(符合3NF,避免不必要的数据冗余,参考 3NF)
9、创建并使用正确的索引
10、将字段设置为not null 还出于另外一种考虑:mysql表的列中包含null的话,那么该列不会包含在所有中。也就是使用索引是无效的。所有,考虑今后会使用索引的字段,就要设置字段属性是not null。
11、如果你要保存NULL,手动去设置它,而不是把它设为默认值。
12、考虑到这个字段今后会作为查询关键字使用like的形式进行搜索。那么要将该字段定义成索引。这样使用like查询就会更快。
转: 首先写一个数据库test,然后写一个表table,最后插入你想要写入的字段"工资"。出现了了乱码。就得1. 启动MySQL,在里面输入 ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin,将test数据库的编码设为utf8。
2. 修改表的编码:ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin 以上命令就是将一个表category的编码改为utf8 。
3. 修改字段的编码:直接在MySQL里右击表,然后点编辑表,在里面修改或输入代码: ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR ( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL。
4.得删除之前插入的字段之类的,再重新导入之前的字段
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)