ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

牛客网-SQL专项训练9

2022-09-12 21:03:56  阅读:266  来源: 互联网

标签:... 专项 name SQL 牛客 student 子句 table id


①假设有选课表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' , '女');

('1006' , '女生姓名' , '2001-12-02' , '女'); 删除符合条件的记录:是男生时删除name='男生姓名'的记录,是女生时删除name='女生姓名'的记录,如下SQL正确的是(B)?

 

 解析:

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名次。

标签:...,专项,name,SQL,牛客,student,子句,table,id
来源: https://www.cnblogs.com/liu-myu/p/16687236.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有