mysql中支持的数据类型有整数类型(tinyint,smallint,mediumint ,int,bigint)浮点数类型(float,double)定点数类型(decimal)位类型(bit)
数值类型中需要注意的细节就是各个类型的取值范围
tinyint 1个字节(8位) 取值范围也就是0~255(2的8次方 减一)
smallint 2个字节(16位)取值范围是0~65536(2的16次方 减一)
mediumint 3个字节(24位)取值范围是0~1677215(2的24次方 减一)
int 4个字节 (32位)取值范围是0~(2的32次方 减一)
bigint 8个字节 (64位)取值范围是0~ (2的64次方减一)
需要注意一点,以上说明的取值范围都是无符号情况下,如果是有符号,那么需要有一位代表符号位,所以取值范围
负2的n次方~2的n-1次方减一 这里的n就是位数
建表时候会在类型后边加一个显示位数 例如int(5) 或者是mediumint(3)
这个数字仅仅只是显示时候会有点作用,对取值范围没有任何印象,如果插入的数据在该类型的取值范围之内,正常插入,查询的时候可以查询出来,如果插入的数据,比显示数字小,那么就在前面填满宽度
然后再说一下
char的长度取值范围是0~255
varchar的长度取值范围是0-65535
=========================================
比较运算中需要注意的问题
一般的比较运算操作,如果一个数和null比较,无论是= <> > < <= >=那么结果都是null
如果想要和null比较,需要使用is null 或者isnot null
还有一个null-safe的比较运算符<=>
========================================
说明mysql中操作符的优先级
首先是赋值
然后是逻辑运算符 或>与>非
然后是between case when then else
接着是比较运算符