7.Student学生表(学号,姓名、性别、年龄、组织部门),Course 课程表(编号,课程名称),Sc选课表(学号,课程编号,成绩)
a、写一个SQL语句,查询选修了计算机原理的学生学号和姓名
select 学号,姓名 from Student where 学号 in(select 学号 from Sc where 课程编号 in(Select 课程编号 from Course where 课程名称 = ‘计算机原理’))
b、写一个SQL语句,查询“周星驰”同学选修了的课程名字
select 课程名称 from Course where 编号 in (select Sc.课程编号 from Student,Sc where Student.姓名=’周星驰’ and Student.学号 = Sc.学号)
8.表结构说明
下面是学生表的(Student)的结构说明
字段名称 字段解释 字段类型 字段长度 约束
s_id 学号 字符 10 PK
s_name 学生姓名 字符 50 Not null
s_age 学生年龄 数值 3 Not null
s-sex 学生性别 字符(男:1女:0) 1 Not null
下面是教师表(Teacher )的结构说明
字段名称 字段解释 字段类型 字段长度 约束
t_id 教师编号 字符 10 PK
t_name 教师名字 字符 50 Not null
下面是课程表(Course)的结构说明
字段名称 字段解释 字段类型 字段长度 约束
c_id 课程编号 字符 10 PK
c_name 课程名字 字符 50 Not null
t_id 教师编号 字符 10 Not null
下面是成绩表(SC)的结构说明
字段名称 字段解释 字段类型 字段长度 约束
s_id 学号 字符 10 PK
c_id 课程编号 字符 10 Not null
score 成绩 数值 3 Not null
9.查询“001”课程比“002”课程成绩高的所有学生的学号;
select a.s_id from (select s_id,score from SC where C_ID=‘001’) a,(select s_id,scorefrom SC where C_ID=‘002’) b where a.score>b.score and a.s_id=b.s_id;
10.查询平均成绩大于60分的同学的学号和平均成绩;
select S_ID,avg(score) from sc group by S_ID having avg(score) >60;
11.查询所有同学的学号、姓名、选课数、总成绩;
select Student.S_ID,Student.Sname,count(SC.C_ID),sum(score) from Student left Outer join SC on Student.S_ID=SC.S_ID group by Student.S_ID,Sname
12.查询姓“李”的老师的个数;
select count(distinct(Tname)) from Teacher where Tname like ‘李%’;
13.查询所有课程成绩小于60分的同学的学号、姓名;
select S_ID,Sname from Student where S_ID not in (select S.S_ID from Student AS S,SC where S.S_ID=SC.S_ID and score>60);
14.查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;
select distinct S_ID,Sname from Student,SC where Student.S_ID=SC.S_ID and SC.C_ID in (select C_ID from SC where S_ID=‘1001’);
————————————————
版权声明:本文为CSDN博主「轩辕青锋」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44919083/article/details/110090849