MySQL建表过程与不同字符类型的意义
2019-06-17 本文已影响0人
djz0306
前面几篇文章梳理了 MySQL 中的一些常见操作,包括安装、基础的建表、删表、增删改查等。但是那些都比较基础,在日常工作是使用肯定是不够的,从本篇开始逐渐深入,先从建表开始,而建表前就需要先明确不同字符类型的存储范围和所占的字节。
在日常生活中如果要画一张表,其实就是在确定表头,也就是第一行。就像在一张纸上面画表格一样,纸张的长宽是固定的,如果某一列的宽度过宽,一来可能会导致浪费,二来可能会导致其他列过窄,容纳不下。所以需要确定以下几个因素:
- 需要有哪些列
- 每一列存哪些类型,占据多大的位置
由于存储同样的数据,不同的列类型,占据的空间和效率是不同的,所以需要在建表的时候就明确每一列的存储范围和占据的字节关系,以保证每一列存储的范围都能满足需求,又不浪费过多的空间
MySQL 有三大列类型,包括整数型,字符串型,日期时间类型。而整数型中又包括整型和小数型。整型包括:
- tinyint
- smallint
- mediumint
- int
- bigint
以 tinyint 为例,需要清楚占据的空间为1字节,带符号的范围是-128-127,无符号的范围是0到255。既然有两种范围,那么声明类型的时候就需要确定声明哪种范围,参数共有三种
- M(宽度,以0填充时才有意义)
- unsigned(无符号类型)
- zerofill(0填充,默认无符号)
这三者的详细区别,在下一篇中再梳理