数据库实验 SQL简单查询

一、实验目的:

  1. 掌握SQL查询语句的一般格式
  2. 掌握简单数据查询操作。
  3. 熟练掌握各种查询条件的表示。
  4. 掌握排序和分组操作在SQL语句中的实现。
  5. 掌握聚集函数的使用。

二、实验内容和主要步骤:

  1. 实验一中的数据为基础
  2. 对各表中的数据进行不同条件的查询;
    • 查询全体学生的学号和姓名
    • 查询全体学生的详细记录
    • 查询所有选修过课程的学生学号
    • 查询考试有不及格的学生学号
    • 查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别
    • 查询选修了4号课的学生学号和成绩,结果按成绩降序排列
    • 查询每个课程号和相应的选课人数
    • 查询计算机系(CS)的学生姓名、年龄、系别
    • 查询年龄18-20岁的学生学号、姓名、系别、年龄;
    • 查询姓刘的学生情况
    • 查询既选修1号课程,又选修2号课程的学生学号
    • 查询学生的姓名和出生年份(今年2003年)
    • 查询没有成绩的学生学号和课程号
    • 查询总成绩大于200分的学生学号
    • 查询每门课程不及格学生人数
    • 查询不及格课程超过3门的学生学号
    • 查询年龄在10到19岁之间的学生信息
    • 查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列
    • 查询选了1号课程的学生平均成绩
    • 查询选了3号课程的学生的最高分
    • 查询每个同学的总成绩

三、实验要求:

  1. 将上述任务中完整的SQL语句调试并使之运行正确;
  2. 写出实验报告(在实验系统完成)

注意:有些题目可以使用多种方法进行表示

--1)查询全体学生的学号和姓名
select sno,sname 
from student;
--2)查询全体学生的详细记录
select *
from student;
--3)查询所有选修过课程的学生学号
select sno 
from sc;
--4)查询考试有不及格的学生学号
select sno 
from sc 
where Grade<60;
--5)查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别
select ssex,sage,sdept 
from student 
where not sdept='is' and not sdept='cs';
--6)查询选修了4号课的学生学号和成绩,结果按成绩降序排列
select sno,Grade 
from sc 
where cno=004 
order by Grade desc;
--7)查询每个课程号和相应的选课人数
select cno,count(*)
as '选课人数' 
from sc 
group by cno;
--8)查询计算机系(CS)的学生姓名、年龄、系别
select sname,sage,sdept 
from student 
where sdept='cs';
--9)查询年龄18-20岁的学生学号、姓名、系别、年龄;
select sno,sage,sdept,sage 
from student 
where sage>=18 
and sage<=20;
--10)查询姓刘的学生情况
select *
from student 
where sname like'刘%';
--11)查询既选修1号课程,又选修2号课程的学生学号(嵌套查询)
select sno 
from sc 
where cno=001 
and sno in(
select sno 
from sc 
where cno=002);
--12)查询学生的姓名和出生年份(今年2003年)
select sname,(2003-sage)
as birthdate 
from student 
where(2003-sage)>0;
--13)查询没有成绩的学生学号和课程号
select sno,cno 
from sc 
where Grade is NULL;
--14)查询总成绩大于200分的学生学号
select sno 
from sc 
group by sno 
having sum(Grade)>200;
--15)查询每门课程不及格学生人数
select cno,count(cno) 
from sc 
where Grade<60 
group by cno;
--16)查询不及格课程超过3门的学生学号
select sno,count(cno) 
from sc 
where Grade<60 
group by sno 
having count(*)>3
--17)查询年龄在10到19岁之间的学生信息
select *
from student 
where sage>=10 
and sage<=19;
--18)查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列
select *
from student 
order by sdept asc, sage desc
--19)查询选了1号课程的学生平均成绩
select avg(Grade) 
as '一号课程平均成绩' 
from sc 
where cno=001 
--20)查询选了3号课程的学生的最高分
select max(Grade) 
as '三号课程最高分' 
from sc where cno=003
--21)查询每个同学的总成绩
select sum(Grade) 
from sc 
group by sno

 

你可能感兴趣的:(MYSQL数据库技术)