mysql面试题 zabbix_MySQL实际面试题!

实际面试题解析分享

已知如下:

学生表(学号、姓名):student(stu_no,stu_name),

科目表(课程ID,课程名称):course(c_id,c_name),

成绩(成绩ID,学号,课程,分数:grade(g_id,stu_no,c_id,fraction)

student表如下

stu_no

stu_name

1

张三

2

李四

3

王五

4

赵六

course表如下

c_id

c_name

1

语文

2

数学

3

英语

grade表如下

g_id

stu_no

c_id

fraction

1

1

1

70

2

2

2

60

3

3

2

99

4

4

3

50

5

2

2

40

6

1

3

66

1,查询所有姓张的学生姓名;

#首先根据题目信息 ,我们只需要查询 “student”表中姓名字段为姓张的字段即可

#姓张的姓名字段 我们可以用到模糊查询的用法

# 模糊查询 like:% 表示任意个任意字符

select stu_name from student where stu_name like '张%';

2,查询有语文课程的学生学号和姓名;

#首先这题涉及到的字段分别在不同表中,所以可以使用表连接完成

#这里用到了一个多表连接

select s.stu_no,s.stu_name from student s left join grade g on s.stu_no = g.stu_no left join course c on

g.c_id = c.c_id and c.c_name = "语文";

3,展示每个学生的学号、姓名、总成绩、平均分,并按总分从高到低排序;

#这题也需要使用到一个多表连接

#这边需要用到一个平均值函数avg 一个求和函数sum

select s.stu_no,s.stu_name,sum(g.fraction),avg(g.fraction) from student s inner join

grade g on s.stu_no = g.stu_no inner join course on c g.c_id = c.c_id order by sum(g.fraction) desc;

4,查询出所有科目成绩都在80分以上的学生姓名;

#这边我们可以使用一个子查询的方法

#先查出成绩大于80的同学的id 再查出id在这个范围内的人

select stu_name from student where stu_no in (select stu_no from grade where fraction > 80);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值