面试官:小伙子,mysql学习的怎么样啊,我来考考你!
了不起:小意思,随便考,答不出来算我输!
面试官:挺自信啊!给你上一点强度。
面试题一:说说你常用的函数
答:平常用的函数有 sum , avg ,cast ,max,min 等等
面试题二:那你和我讲讲sum平常怎么使用
答:举个例子,select sum(socre) from student , 算出所有学生的总成绩。
select class,sum(score) from student group by class ,算出每个班级的学生成绩总和。
select sum(score),class,sex from student group by class,sex ,算出每个班级男女生的分别的成绩。
面试题三:那你了解过开窗函数吗?
答:那我就按照上面的student表举个例子
select sum(score) over(patrtition by year order by month ), class from student ,这句sql 可以做到以班级为维度,对成绩根据按年,以月数据做逐级累加。
面试题四:那你简单讲讲mysql主从的实现原理
答:首先,主节点 把改变数据的sql 记录的binlog, 从节点拉取主节点的binlog放进readylog ,再去执行readylog去同步数据。
面试题五:讲讲怎么删数据
答:最简单的就是delete了,但是我们一般删数据 用delete的话一定要去加上where条件,要不然容易误删数据。还有一种方式 就是truncate table ,这个就是清空表的意思。
面试题六:有用过insert into select 吗?
答:这其实就是一种插入表数据的方式,简单来说 就是select出来的数据,再插入到一张表里面。
面试题七:讲讲with怎么用
答:with ,简单来讲就是出一张临时表,简单举个例子。
with t1 as (select * from tablex)
select * from t1
在一些场景下,with还是很好用的,可以简化我们的sql,提高可读性。