SQL笔试:Student学生表,Course 课程表,Sc选课表

tudent学生表(学号,姓名、性别、年龄、组织部门),Course 课程表(编号,课程名称),Sc选课表(学号,课程编号,成绩)

写一个SQL语句,查询选修了计算机原理的学生学号和姓名

select 学号,姓名 from Student where 学号 in

(select 学号 from Sc where 课程编号 in

(Select 课程编号 from Course where 课程名称 = ‘计算机原理’))

写一个SQL语句,查询“周星驰”同学选修了的课程名字

select 课程名称 from Course where 编号 in (

select Sc.课程编号 from Student,Sc where Student.姓名=’周星驰’ and Student.学号 = Sc.学号)

写一个SQL语句,查询选修了5门课程的学生学号和姓名

Select 学号,姓名 from Student where 学号 in (

Select 学号,count(课程编号) from Sc group by 学号 having count(课程编号)>=5)

Student(S#,Sname,Sage,Ssex)学生表

S#:学号

Sname:学生姓名

Sage:学生年龄

Ssex: 学生性别

Course(C#,Cname,T#)课程表

C#,课程编号;

Cname:课程名字;

T#:教师编号;

SC(S#,C#,score)成绩表

S#:学号;

C#,课程编号;

Score:成绩;

Teacher(T#,Tname)教师表

T#:教师编号;

Tname:教师名字

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

select SC1.S#

from SC SC1 JOIN SC SC2 ON SC1.S#=SC2.S#

WHERE SC1.C#=‘001’ AND SC2.C#=‘002’ AND SC1.score>SC2.score

查询平均成绩大于60分的同学的学号和平均成绩

select S#,AVG(score) 平均成绩

from SC

group by S#

having AVG(score)>60

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

select Student.S#,Sname,COUNT(*) 选课数,SUM(score) 总成绩

from Student JOIN SC on Student.S#=SC.S#

group by Student.S#,Sname

查询姓“李”的老师的个数

Select count(*) from Teacher where Tname like ‘李%’;

查询没学过“叶平”老师课的同学的学号、姓名

SELECT stu2.s#,stu2.stuname FROM Student stu2 WHERE stu2.s# NOT IN

(SELECT DISTINCT stu.s# FROM student stu, course c,teacher tea,score score

WHERE stu.s#= score.s# AND course.c#= score.c#

AND tea.t#= course.t#AND tea.tname= ‘叶平’ )

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学生课程表和成绩是常见的数据库格,在学生管理系统或者教务系统中经常使用。下面是一个简单的SQL试题,答案以SQL语句的形式给出。 1. 创建学生Student)包含字段:学号(ID)、姓名(Name)、性别(Gender)、年龄(Age)和班级(Class)。 ``` CREATE TABLE Student ( ID INT PRIMARY KEY, Name VARCHAR(50), Gender VARCHAR(10), Age INT, Class VARCHAR(50) ); ``` 2. 创建课程表Course)包含字段:课程编号(CourseID)、课程名称(CourseName)和学分(Credits)。 ``` CREATE TABLE Course ( CourseID INT PRIMARY KEY, CourseName VARCHAR(50), Credits INT ); ``` 3. 创建成绩Score)包含字段:学号(ID)、课程编号(CourseID)和分数(Grade)。 ``` CREATE TABLE Score ( ID INT, CourseID INT, Grade FLOAT, PRIMARY KEY (ID, CourseID), FOREIGN KEY (ID) REFERENCES Student(ID), FOREIGN KEY (CourseID) REFERENCES Course(CourseID) ); ``` 4. 查询学生中的所有学生信息。 ``` SELECT * FROM Student; ``` 5. 查询课程表中的所有课程信息。 ``` SELECT * FROM Course; ``` 6. 查询成绩中某个学生的所有成绩。 ``` SELECT * FROM Score WHERE ID = 学号; ``` 7. 查询成绩中某门课程的所有学生成绩。 ``` SELECT * FROM Score WHERE CourseID = 课程编号; ``` 8. 查询某个学生某门课程的成绩。 ``` SELECT Grade FROM Score WHERE ID = 学号 AND CourseID = 课程编号; ``` 9. 插入一条学生信息。 ``` INSERT INTO Student (ID, Name, Gender, Age, Class) VALUES (学号, '姓名', '性别', 年龄, '班级'); ``` 10. 更新某个学生的年龄。 ``` UPDATE Student SET Age = 新年龄 WHERE ID = 学号; ``` 这些是SQL试题中的一些基本操作,可以根据具体需求进行扩展和细化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值