牛客网-SQL专项训练9
2022/9/13 2:23:07
本文主要是介绍牛客网-SQL专项训练9,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
①假设有选课表course_relation(student_id, course_id),其中student_id表示学号,course_id表示课程编号,如果小易现在想获取每个学生所选课程的个数信息,请问如下的sql语句正确的是(D )
解析:
获取学生所选课程的个数,可以通过以学生id作为分组,统计出课程编号的个数
select student_id, count(course_id)
from course_relation
group by stuent_id;
AB选项:统计的是课程id的和,比如语文-A,数学-B,英语-C,而sum(course_id)=A+B+C,并非题目所求
C选项只是统计出了课程id的总数。
②Mysql中表student_table(id,name,birth,sex),score_table(stu_id,subject_name,score),查询没有英语分数的学生明细记录,如下SQL正确的是(B)?
解析:
可以先把有英语分数的学生id查出来
select stu_id
from score_table
where subject_name ='英语';
然后再进行排除已经查出来的学生
select *
from student_table
where id not in (
select stu_id
from score_table
where subject_name ='英语';
)
假设score_table为下表:那么A选项先选出没有英语的还是会把张三选出来,最后结果还是会有张三
C选项:子查询是选没有英语的,主查询依然选不在里面的其他课程的,结果就为空了吧
D选项:查询的是只有英语分数的学生
③Mysql中表student_table(id,name,birth,sex),插入如下记录:
('1003' ,'男生姓名' , '2000-05-20' , '男');
('1004' , '张三' , '2000-08-06' , '男');
('1005' , '李四' , '2001-12-01' , '女');
解析:
case when的正确语法是: case when ... then ... when ... then ... else ... end
A选项:删除时不能带关键字table;
C选项:缺少end;
D选项:缺少when;
④现在有一个学生表student,需要回收所有机器的nkw用户对学生表student所在数据库user的update和insert权限,则下列语句中能够实现这一功能的语句是(C)
解析:
回收表的操作功能语句revoke ... on ... from
授予权限用grant ...to
题目要求是回收所有机器的nkw用户对user表的update和insert权限,而选项D是回收所有数据库的update和insert权限,user.* :表示user库里面的所有表。
⑤MySQL查询语句的正确执行顺序:
(1)首先运算的是FROM子句,根据FROM子句中指定的一个或多个表创建工作表;
(2)如果存在WHERE子句,则WHERE子句对步骤1获得的工作表进行条件筛选,删除不符合条件的记录;
(3)如果存在GROUP BY子句,则对步骤2生成的结果表按指定字段进行分组,生成一份新的结果表;
(4)如果存在HAVING子句,则对步骤3的结果表按指定条件进行筛选,删除掉不满足筛选条件的记录;
(5)执行SELECT子句,删除不包含在SELECT 字段名,所指定的字段。如果SELECT子句中包含关键字DISTINCT,则执行去重复运算……
(6)如果有ORDER BY子句,则按指定的排序规则对结果表进行排序操作;
(7)如果需要找前几名,用LIMIT名次。
这篇关于牛客网-SQL专项训练9的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27数据结构与算法面试题详解及练习
- 2024-12-27网络请求面试题详解与实战
- 2024-12-27数据结构和算法面试真题详解与实战教程
- 2024-12-27网络请求面试真题解析与实战教程
- 2024-12-27数据结构和算法大厂面试真题详解与实战指南
- 2024-12-27TS大厂面试真题解析与应对策略
- 2024-12-27TS大厂面试真题详解与解析
- 2024-12-27网站安全入门:如何识别和修复漏洞
- 2024-12-27SQL注入基础教程
- 2024-12-27初学者指南:理解和修复跨域漏洞