MySQL知识回顾总结----数据类型
本章将会讲解MySQL其中常用的4种类型,分别为:整数类型、小数类型、日期类型、枚举类型。内容非常基础,小白一看就会!
目录
1 整数类型
1.1 tinyint,smallint, mediumint,int
1.2 bit类型
2 小数类型
2.1 float
2.1.1 语法
2.2 decimal
2.2.1 语法
3 字符串类型
3.1 char
3.1.1 基本语法
3.2 verchar
3.2.1 语法
3.2.2 char 与 verchar 比较
4 日期和时间类型
4.1 日期
4.2 案例
5. enum 和 set
5.1语法
5.1.2 实际操作
5.3 find_in_set
5.3.1 语法
1 整数类型
1.1 tinyint,smallint, mediumint,int
为 1 字节,分为带符号以及不带符号的类型。 small为2个字节,medium为3字节,int 为4字节,bigint为8字节。
也都是具有符号与无符号的两种情况,还有一点需要注意的是我们的数据库,在进行插入数据时会有约束的概念,就是约束填写表的程序的人,需要严格遵守一定的规则,如果是超过了数据的规定的最大返回,我们的数据库就不允许你让你插入数据,那么这个就是我们所说的约束的概念。
下面是一些测试的案例。分别为标准的插入,于查询。最后的图片为约束的方式 ,会提示你相关的报错信息。
1.2 bit类型
bit(m) :是按照位的方式进行存放的。m 的作用是用来约束插入数据的最大的位数。
其次还有一点非常重的是进行存放的数据是按照 ASCII 码的方式进行显示到我们的屏幕上,以下是它的具体的使用案例。其中可以看到,当我们设置好类型之后,设置为 4 则最大值为 2 的 4 次方 - 1, 然后是使用 ASCII 码的方式打印在屏幕上。
2 小数类型
2.1 float
2.1.1 语法
float(m, d) [unsigned] : m 表示显示的长度, d 表示指定的小数点后面的位数,占用空间为 4 字节,其次对于小数部分会进行四舍五入。
eg:float(4,2) 是 -99.99 -- 99.99. 如果是无符号的数据类型,是 0 开始到 99.99.
2.2 decimal
2.2.1 语法
decimal(m, d) 范围与 float 相同,这个不在进行重复描述。但是不同的点在于 decimal 对于位数比较多的小数点他的精度更高,看案例即可。
说明:float 表示的精度为 7 位,而 deciaml 的整数最大位数 m 为 65, d 为 30, m,d 如果省略那么他的默认值分别为10, 0 。 在这个案例当中我都插入了 12.34567899,可以看到其中decimal的精度没有丢失。
3 字符串类型
3.1 char
3.1.1 基本语法
char(L): 表示字符串的可以储存的最大长度为 L。需要注意的是 char 一开始就会开辟好 L 大小的长度。同时单位为字符,最大长度可以为 255.
说明一下:char 是按照字符的方式进行存储,也就意味着无论是 数字,字母,还是汉字都是占一个字符,尽管是字节不同。
3.2 verchar
3.2.1 语法
verchar(L) : 与 char 类似,唯二不同的点在于 verchar 进行动态的开辟内存,当存放的内存空间不够的时候会进行自动扩容,有效的节省空间。最大长度为65535 字节。注意⚠️这个单位是字节,不是字符, 下面谈到的 65535 是字节数,但是 L 仍为字符的个数。
为了实现可变长度的大小,需要牺牲前几位来存放这个类型的长度大小。 以 utf-8 为例,可以存放的最长的字符个数为 65535 - 3 = 65532, 655323/3 = 21844, 这个它的最大的个数。
3.2.2 char 与 verchar 比较
4 日期和时间类型
4.1 日期
date:日期"xxx-yy-zz" ,占用 3 个字节。
datetime : 时间日期格式"xxx-yy-zz hh:ii:ss" , 表示范围为:1000, 9999, 占用 8 个字节。
timestamp: 时间戳,从 1970 开始的时间,显示方式与 datetime 相同。
4.2 案例
我的这个timestamp 有点小问题,回头我再修改一下。
5. enum 和 set
5.1语法
enum : 枚举类型,后面有选项。但是只能选择一个。
set : 集合类型,不同点在于可以选择多个。
两个如果使用数字的方式进行插入或者是查找的话,对于里面的内容是通过位的方式进行标记的比如:"足球"篮球"乒乓球"羽毛球",其中0001, 表示足球0011,表示足球和篮球。
5.1.2 实际操作
案例已将充分体现,不在过多进行描述。
5.3 find_in_set
5.3.1 语法
find_in_set(sub, str) 去查看 sub 是不是 str 当中, 如果在返回下标,不在返回 0。
例子:
以上是对于数据类型的总结。这个文章用于我的学习记录,如果是有其他的错误还请批评指正。如果对你有帮助还请给我点个赞👍👍👍。