studentdb数据库还是用的上篇文章的, 害,一直以为列名要用英文,知道可以用汉字时,就把自设的英文都改成汉字,舒服了。上篇文章链接:https://blog.csdn.net/weixin_43912621/article/details/105517325.
① select count(*) from grade
② select substring(姓名,1,2) from student_info
③ select sqrt(分数) from grade where 分数>=85
④ select year(getdate()),month(getdate()),day(getdate())
①在student_info表中,查询每个学生的学号、姓名和出生日期信息。
②查询学号为’0002’的学生的姓名和家庭住址。
③找出所有男同学的学号和姓名。
select 学号,姓名,出生日期from student_info
select 姓名,家庭住址from student_info where 学号=0002
select 学号,姓名from student_info where 性别='男'
①在grade表中查找分数在70-90范围内的学生的学号和分数。
②在grade表中查询课程编号为0003的学生的平均分。
③在grade表中查询学习各门课程的人数。
④将学生信息按出生日期由大到小顺序排序。
⑤查询所有姓“张”的学生的学号和姓名。
select 学号,分数from grade where 分数between 70 and 90
select AVG(分数)as 平均分from grade where 课程编号='0003'
select 课程编号,count(*)as 课程人数from grade group by 课程编号
select* from student_info order by 出生日期
select 学号,姓名from student_info where 姓名like '张%'
select * from student_info order by 性别,学号
select 学号,AVG(分数)as 同学平均分from grade group by 学号
select 学号as u_编号,姓名as u_名称from student_info
where 姓名like'张%' union
select 课程编号,课程名称from curriculum
① 在student_info表中查找与“刘卫平”性别相同的所有学生的姓名、出生日期。
② 使用in子查询查找所修课程编号为0002、0005的学生学号、姓名、性别。
③列出学号为0001的学生的分数比学号为0002号的学生的最低分数高的课程编号和分数。
④列出学号为0001的学生的分数比学号为0002号的学生的最高成绩还要高的课程编号和分数。
select 姓名,出生日期from student_info
where 性别=( select 性别 from student_info where 姓名='刘卫平')
select a.学号,姓名,性别,课程编号from student_info a, grade b
where a.学号=b.学号and 课程编号in(0002,0005)
select 课程编号,分数,学号from grade
where 学号='0001' and 分数>any( select 分数from grade where 学号='0002')
select 课程编号,分数,学号from grade
where 学号='0001' and 分数>all( select 分数from grade where 学号='0002')
①查询分数在80-90范围内的学生的学号、姓名和分数信息。
②查询学习“C语言程序设计”课程的学生的学号、姓名和分数。
③查询所有男同学的选课情况,要求列出学号、姓名、课程名称和分数。
④查询每个学生的所选课程的最高成绩,要求列出学号、姓名、课程编号和分数。
⑤查询所有学生的总成绩,要求列出学号、姓名、总成绩,没有选修课程的学生的总成绩为空。
⑥ 为grade表添加数据行:学号为0004、课程编号为0006、分数为76。查询所有课程的选修情况,要求列出课程编号、课程名称、选修人数,curriculum表中没有的课程列值为空。
select s.学号,s.姓名,分数 from student_info s, grade g
where s.学号=g.学号and g.分数between 80 and 90
select s.学号,s.姓名,课程名称,分数from student_info s
inner join grade g on g.学号=s.学号
inner join curriculum c on g.课程编号=c.课程编号
where c.课程名称='C语言程序设计'
select s.学号,姓名,课程名称,分数 from student_info s
join grade g on s.学号=g.学号
join curriculum c on g.课程编号=c.课程编号
where 性别='男'
select s.学号,姓名,课程编号,分数 from student_info s left
join( select a.学号,课程编号,分数 from grade a,
( select 学号,MAX(分数)最高分from grade g group by 学号) b
where a.学号=b.学号and a.分数=b.最高分)c on s.学号=c.学号
select s.学号,s.姓名,sum(分数) from student_info s
left join grade g on s.学号=g.学号
left join curriculum c on g.课程编号=c.课程编号
group by s.学号,s.姓名
insert into grade
values('0004','0006',76,null)
select c.课程编号,课程名称, COUNT(*) from grade g
right join curriculum c on c.课程编号=g.课程编号
group by c.课程编号,c.课程名称