建表就是一个声明列的过程,所以想要建好表,首先要掌握列类型
1.整型
- tinyint(1字节,8位)
- smallint(2字节,16位)
- mediumint(3字节,32位)
- int(4字节,64位)
- bigint(8字节,128位)
可能有些同学对字节和位概念不是很懂,咋们就拿tinyint举个栗子:
tinyint(1字节,8位)那么它的存储的有符号位范围就是-128-127,无符号范围就是0-255
那么这些值是咋来的呢?
这里8位就对应二进制的8位:0000 0000 。比如博主的年龄18岁,就是0001 0010,这种十进制转换为二进制想必大家都会的。
其实这些范围大家都不用记得,可以根据字节和位推出来的,现在教大家一个万能公式:
以tinyint为例:(1字节,8位)
0——2^8N-1(无符号位)
-2(8N-1)——2(8N-1)-1(有符号位)
PS:这里N对应的就是字节位
- 浮点型
- float(M,D)
- decimal(M,D)
这里M对应总位数,D对应小数位数,例如float(6,2)最大可以存储:9999.99
PS:decimal比float更加精确,更加适合存储对小数敏感的数字,如果你设计银行账户的数据库涉及到浮点型就使用decimal
3.字符串型
定长类型:char(M)
变长类型:varchar(M)
这里的M限定的是字符的长度,例如你只想输入一个男或者女就定一个char(1)就足够了。
4.日期时间型
- date
格式:yyyy-mm-dd
范围:1000-01-01——9999-12-31 - time
格式:HH:MM:SS - datetime
格式:yyyy-mm-dd hh:mm:ss - timestamp
不赋值的话就获取当前年月日,时分秒 - year
范围:1901——2155