极客进化岛
技术自由路

【MySQL】这是我见过最有用的MySQL数据类型面试题,面了无数家总结的

面试官缓缓走来,头上飘着几根白发,在行走中随风飘摇,看的让人有一种想帮他薅下来的冲动。
这次面试的岗位是自动化运维,面试官坐下来冲着面试者小王呵呵一笑, “来啦”! 简单的俩字就让人感觉到一丝震慑,仿佛一股真气扑面而来。

小王把简历提上去,报以微笑,“你好面试官,我是来面试自动化运维的,这个是我的简历。”

面试官没有 接简历,点了下头,示意小王把简历放到桌子上,缓缓道“你的情况我基本了解了,一面的面试官都已经给我说了,不知道你对数据库了不了解,比如你对MySQL数据类型了解多少。”

小王松了一口气,多亏来面试的时候看过,小王指着旁边的白板说“借我白板一用”,说着便径直走了过去,拉过白板,开始阐述他对数据类型的理解

关于MySQL数据类型

在官网上MySQL支持将近39种数据类型,常用的大致可以分为三类:数值、日期/时间和字符串(字符)类型。

1. 数值类型

数值类型就包含了整数类型和浮点数类型:
关于数值类型,我在这里画了一个表:

在这里插入图片描述

举例: 比如tinyint 类型, 占一个字节,有符号-138-137 无符号位 0-255
如果一个人的年龄是0-100 ,理论上就可以使用tinyint 无服务号,0-255 足够用了, 而且占得字节数少。

举例2: 设置一个字段类型为 float(6,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位

2. 日期和时间类型

在这里插入图片描述

3. 字符串类型

在这里插入图片描述
char 和varchar的区别

1.char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以char类型存储的字符串末尾不能有空格,varchar不限于此。

2.char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),

所以varchar(4),存入3个字符将占用4个字节。

区别如图:
在这里插入图片描述

使用建议:
1. 在指定数据类型的时候一般是采用从小原则,比如能用TINY INT的最好就不用INT,能用FLOAT类型的就不用DOUBLE类型,这样会对MYSQL在运行效率上提高很大,尤其是大数据量测试条件下。
2. 不需要把数据表设计的太过复杂,功能模块上区分或许对于后期的维护更为方便,慎重出现大杂烩数据表

面试官看着滔滔不绝的小王,按了暂停键,眉宇间带着微笑,仿佛要把小王收为弟子一样, “可以啊,小王,我在问几个问题吧”

面试官在白板上写上了几个问题:
1. MySQL的逻辑运算符的使用
2. 连接查询
3. MySQL忘记密码如何恢复
4. MySQL日志类型

你回头准备下这几个问题,然后再来讲一下,咱们这边不单单招聘自动化运维,还招聘MySQL数据库高级讲师,我觉得你很适合,好好准备。

总结

小王回到家,喜忧参半, 小王还不太确定自己要不要做高级讲师,但面试又不能听,算了先睡一觉吧,回头把面试官提的几个问题发到博客,也算对知识的一种总结嘛

赞(0)
未经允许不得转载:极客进化岛 » 【MySQL】这是我见过最有用的MySQL数据类型面试题,面了无数家总结的