数据类型

整形:tinyint  smallint  mediumint  int  bigint依次为1,2,3,4,8bytes

默认情况下整形是有符号的,需要一个二进制位存储符号

给整形加上约束unsinged来表示无符号,如果数据超出范围就取最大的,在无符号的情况下保存256其实为255

如果有符号如 tinyint 保存-1280 其实存的是-128 为最小值

show variables like ‘’sql_mode''查看当前模式

get global sql_mode=''STRICT_TRANS_TABLES''在严格模式下超出范围就直接报错,默认为严格模式

在正常情况下。先判断数据的正确性,没有问题在发送给数据库

浮点型数据:float  double  decimal  精度越来越高,在位数一样的情况下

float(m,d)m表示这个浮点数的整体长度,d表示小数部分

他们的小数部分长度都为30,float和double最大长度为225

char和varchar

char定长,存取速度快

varchar变长字符,节省空间,存取速度慢

char 填充空格来满足固定长度,但是在查询时会删除尾部的空格,而varchar存多少显示多少

虽然char和varchar的存储方式不一样,但是对两个字符串的比较都只是比较其值

单从数据的类型实现机制去考虑,char数据类型的处理速度更快,有事甚至可以超出varchar速度的一半

但是从Innodb存储引擎上看建议使用varchar

enum  单选只能在一个给定的范围选择一个值(后面的括号里面只能是字符串)

set 多选 在给定的范围可以选择一个或者一个以上的值(后面的括号里面只能是字符串)

原文地址:https://www.cnblogs.com/AllenZhou/p/9637445.html