数据库的考察在面试时可是十分常见的,MySQL作为一种常用的关系型数据库管理系统,对于它的介绍在面试时可是必不可少的,下面就是一些常见笔试题的模拟,希望可以帮助到你
所用到的表如下:
学生表(t_mysql_student)
有学生ID(sid),学生姓名(sname),学生年龄(sage),学生性别(ssex)
教师表(t_mysql_teacher)
教师编号(tid),教师姓名(tname)
课程表(t_mysql_course)
课程编号(cid),课程名称(cname),教师编号(tid外键)
成绩表(t_mysql_score)
学生编号(sid外键),课程编号(cid外键),学生成绩(score)
select s.*,t1.score 01课程分数,t2.score 02课程分数 from
(select *from t_mysql_score where cid='01')t1,
(select *from t_mysql_score where cid='02')t2,
t_mysql_student s
where s.sid=t1.sid and s.sid=t2.sid
and t1.score>t2.score
select s.*,t1.score 01课程分数,t2.score 02课程分数 from
(select * from t_mysql_score where cid='01')t1,
(select * from t_mysql_score where cid='02')t2,
t_mysql_student s
where s.sid=t1.sid and s.sid=t2.sid
select t1.*,t2.score 02课程 from
(select *from t_mysql_score where cid='01')t1 left join
(select *from t_mysql_score where cid='02')t2 on
t1.sid=t2.sid
select *from t_mysql_score s where s.sid not in
(select sid from t_mysql_score where cid='01')
and cid='02'
select
s.sid,s.sname,ROUND(AVG(sc.score)) 平均成绩
from
t_mysql_student s,t_mysql_score sc
where s.sid=sc.sid
GROUP BY
s.sid,s.sname
HAVING
平均成绩>60
select *from t_mysql_student where sid in
(select sid from t_mysql_score GROUP BY sid )
select
s.sid,s.sname,count(sc.cid),sum(sc.score)
from
t_mysql_student s ,
t_mysql_score sc
where s.sid=sc.sid
GROUP BY
s.sid,s.sname
select count(*) from t_mysql_teacher where tname like '李%'
select
s.*,t.tname
from
t_mysql_student s,t_mysql_teacher t,t_mysql_course c,t_mysql_score sc
where
s.sid=sc.sid and t.tid=c.tid and c.cid=sc.cid
and tname='张三'
select
s.sid,s.sname,count(sc.cid) 课程总数
from
t_mysql_student s,t_mysql_score sc
where s.sid=sc.sid
GROUP BY
s.sid,s.sname
HAVING
课程总数<(select count(1) from t_mysql_course)
select s.* from t_mysql_student s where s.sid not in (
select
sc.sid
from
t_mysql_teacher t,t_mysql_course c,t_mysql_score sc
where t.tid=c.tid and c.cid=sc.cid
and t.tname='张三'
GROUP BY
sc.sid)
SELECT
s.sid,s.sname,ROUND(AVG(sc.score)) 平均成绩,COUNT(sc.cid) 课程总数
FROM
t_mysql_student s,t_mysql_score sc
WHERE
s.sid=sc.sid and sc.score<60
GROUP BY
s.sid,s.sname
HAVING
课程总数>=2
SELECT
s.*
FROM
t_mysql_score sc,t_mysql_student s
WHERE
sc.sid=s.sid and sc.score<60 and cid='01'
ORDER BY sc.score DESC
SELECT
s.sid,s.sname,round(AVG(sc.score),2) 平均成绩 ,
max(case when sc.cid='01' then sc.score end)语文,
max(case when sc.cid='02' then sc.score end)数学,
max(case when sc.cid='03' then sc.score end)英语
FROM
t_mysql_score sc,t_mysql_student s,t_mysql_course c
WHERE
sc.sid=s.sid and sc.cid=c.cid
GROUP BY
s.sid,s.sname
ORDER BY 平均成绩 desc
SELECT
c.cid,c.cname,max(sc.score)最高分,
min(sc.score)最低分,
ROUND(AVG(sc.score))平均分,
count(sc.score)选修人数,
CONCAT(ROUND(sum(if(sc.score>=60,1,0))/count(sc.score)*100),'%')及格率,
CONCAT(ROUND(sum(if(sc.score>=70 and sc.score<80,1,0))/count(sc.score)*100),'%')中等率,
CONCAT(ROUND(sum(if(sc.score>=80 and sc.score<90,1,0))/count(sc.score)*100),'%')优良率,
CONCAT(ROUND(sum(if(sc.score>=90,1,0))/count(sc.score)*100),'%')优秀率
FROM
t_mysql_score sc,t_mysql_course c,t_mysql_student s
WHERE
sc.sid=s.sid and sc.cid=c.cid
GROUP BY
c.cid,c.cname
ORDER BY
选修人数 desc,
c.cid
在MySQL数据库中,CASE函数是一种条件表达式函数,它允许根据条件的结果返回不同的值。CASE函数有两种形式:简单CASE表达式和搜索CASE表达式。
简单CASE表达式用于对单个表达式进行多个条件的比较,语法如下:
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE result
END
expression是需要进行比较的表达式(是可以省略的),value1、value2等是待比较的值,result1、result2等是满足条件时返回的结果,ELSE子句用于指定当没有条件匹配时的默认结果(也是可以省略的)。
用上面的第14题举例
case when sc.cid='01' then sc.score end
- case后面的表达式和else后面的子句都进行了省略
- sc.cid='01'是需要被比较的值,当它成立时,便输出sc.score
搜索CASE表达式用于根据多个条件进行比较,并返回满足条件的第一个结果。它的语法如下:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END
condition1、condition2等是待比较的条件表达式,result1、result2等是满足条件时返回的结果,ELSE子句用于指定当没有条件匹配时的默认结果。
总结而言,CASE函数在MySQL数据库中用于根据条件返回不同的值。简单CASE表达式适用于对单个表达式进行多个条件比较,而搜索CASE表达式适用于根据多个条件进行比较。它们可以在SELECT语句中使用,并且可以与其他函数和条件表达式组合使用。
MySQL数据库中的IF函数是一个条件表达式函数,它允许根据条件的结果返回不同的值。IF函数的语法如下:
IF(condition, value_if_true, value_if_false)
condition是一个布尔表达式或条件,value_if_true是当条件为真时返回的值,value_if_false是当条件为假时返回的值。
用上面的第15题举例
if(sc.score>=60,1,0)
如果sc.score大于60分,就输出1,否则就输出0
总结而言,IF函数在MySQL数据库中用于根据条件返回不同的值,它可以在SELECT、INSERT、UPDATE等语句中使用,并且可以与其他函数和运算符组合使用。
一起进步吧!!!✌✌✌