常见的SQL笔试题和面试题(上):经典50题

常见的SQL笔试题和面试题(上):经典50题https://zhuanlan.zhihu.com/p/38354000常见的SQL笔试题和面试题(上):经典50题已知有如下4张表:学生表:STUDENT(S#,SNAME,SAGE,SSEX)课程表:COURSE(C#,CNAME,T#)成绩表:SC(S#,C#,SCORE)教师表:TEACHER(T#,TNAME)其中,1)学生表里的字段含义:S#代表学号,SNAME代表学生姓名,SAGE…

大家好,又见面了,我是你们的朋友全栈君。

题目转自:https://zhuanlan.zhihu.com/p/38354000

已知有如下4张表:

学生表:STUDENT(S#,SNAME,SAGE,SSEX)

课程表:COURSE(C#,CNAME,T#)

成绩表:SC(S#,C#,SCORE)

教师表:TEACHER(T#,TNAME)

其中,

1)学生表里的字段含义:

S#代表学号,SNAME代表学生姓名,SAGE代表学生年龄,SSEX代表学生性别

2)课程表里的字段含义:

C#代表课程编号,CNAME代表课程名字,T#代表教师编号,

3)成绩表

S#代表学号,C#代表课程编号,SCORE代表成绩

4)教师表的字段含义:

T#代表教师编号,TNAME代表教师姓名

自己赋值:

student表:

常见的SQL笔试题和面试题(上):经典50题

Course表:

常见的SQL笔试题和面试题(上):经典50题

Teacher表:

常见的SQL笔试题和面试题(上):经典50题

SC表:

由于建表时忘记设置主键,需要增加(sno,cno)一起为主键,方便后期引用,注意,每个字段更新语句后面用逗号分开,否则会报错。

方法一:

alter table sc
change column sno sno int(11) not null,
change column cno cno int(11) not null,
add primary key(sno,cno)

方法二:

alter table sc
modify sno int(11) not null,
modify cno int(11) not null,
add primary key(sno,cno)

常见的SQL笔试题和面试题(上):经典50题

1.查询课程编号为“001”的课程比“002”的课程成绩高的所有学生的学号

select x.sno,x.score,y.score from sc x,sc y
where  x.cno=1001 
   and y.cno=1002
   and x.sno=y.sno
   and x.score > y.score

常见的SQL笔试题和面试题(上):经典50题

2.查询平均成绩大于60分的学生的学号和平均成绩

select sno,avg(score) from sc
group by sno
having avg(score)>60

常见的SQL笔试题和面试题(上):经典50题

3.查询所有学生的学号、姓名、选课数、总成绩

select sc.sno,sname,count(cno),sum(score)
from student join sc
on student.sno=sc.sno
group by sc.sno,sname

常见的SQL笔试题和面试题(上):经典50题

4、查询姓“悟”的老师的个数

select count(Tname) from teacher
where Tname like '悟%'

常见的SQL笔试题和面试题(上):经典50题

5、查询没学过“悟空”老师课的学生的学号、姓名

(对原始SC表稍作修改,令1,2号学生没有学过悟空的课

delete from sc where sno=1 and cno=1009
delete from sc where sno=2 and cno=1009

select sno,sname from student 
where sno not in(select sno from SC where cno in(select cno from course
where tno in(select tno from teacher
where tname='悟空')))

常见的SQL笔试题和面试题(上):经典50题

6、查询学过“悟空”老师所教的所有课的同学的学号、姓名

(对原始表Course,SC稍作修改,让悟空交2门课

insert into course values('1010','Exercise','TS04')
insert into sc values
('8','1010','75'),
('9','1010','92'),
('10','1010','80');

)

7、查询学过编号为“1001”的课程并且也学过编号为“1010”的课程的学生的学号、姓名

8、查询课程编号为“1002”的总成绩

select sum(score) from sc 
where cno='1002'

9、查询所有课程成绩小于60分的学生的学号、姓名

select sno,sname from student
where sno in(select sno from SC where score <60)

10、查询没有学全所有课的学生的学号、姓名

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153437.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • a标签下划线的距离问题[通俗易懂]

    a标签下划线的距离问题[通俗易懂]需求a标签下划线距离太接近了,需要调整一下页面代码<pclass=”text_align_r”><spanclass=”ordersave_info”><s:textname=”order_submited_tip”/></span><ahref=”/to_be_signed.html”><s:textname=”order_submited_a_tip”/></a></p&

    2022年6月7日
    47
  • vue子组件调用父组件方法_父组件获取子组件数据

    vue子组件调用父组件方法_父组件获取子组件数据Vue子组件调用父组件的方法-靳哲-博客园Vue中子组件调用父组件的方法https://www.cnblogs.com/jin-zhe/p/9523782.html

    2022年9月25日
    0
  • oracle字符串补齐_oracle去掉字符串后几位

    oracle字符串补齐_oracle去掉字符串后几位一、拼接字符串1、使用“||”来拼接字符串:select’拼接’||’字符串’asStrfromstudent;2、使用concat(param1,param2)函数实现:selectconcat(‘拼接’,’字符串’)asStrfromstudent;注:oracle的concat()方法只支持两个参数,如果拼接多个参数,可以嵌套concat():selectconcat(…

    2022年9月20日
    0
  • java定时器_iphone如何定时发送短信

    java定时器_iphone如何定时发送短信定时任务(如:定时发送短信邮箱等)前面整过一个任务调度,它是固定在每天几点等执行,对于要手动加入的时间的定时发送短信不适用。学习quartz首先了解三个概念:调度器:负责调度作业和触发器;触发器:设置作业执行的时间、参数、条件等;(简单触发器和Cron触发器)作业:定时任务内容,被执行的程序;下载必要的jar包,将quartz-x.x.x.jar和core和/或optional文件夹中的…

    2022年10月13日
    0
  • finalize方法作用_Java finalize

    finalize方法作用_Java finalize关于object类中的finalize()方法。1、在object类中的源代码:protectedvoidfinalize()throwsThrowable{}2、finalize()方法只有一个方法体,里面没有代码,而且这个方法是protected修饰的。3、这个方法不需要程序员手动调用,JvM的垃圾回收器负责调用这个方法。4、finalize()方法的执行时机:当一个java对象即将被垃圾回收器回收的时候,垃圾回收器负责调用finalize()方法。5、finalize()方法实际上

    2022年9月19日
    0
  • Springboot 使用校验框架validation校验

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:双斜杠少年 blog.csdn.net/u012373815/article/details/72049796…

    2021年6月25日
    76

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号