实验二:数据查询语言
实验内容
SQL数据查询语句:
  5-1 (选择表中的若干列求全体学生的学号、姓名、性别和年龄。
select sno,sname,sex,sage from student;
  5-2 (不选择重复行求选修了课程的学生学号。
select distinct cno from sc where cno is not null;
  5-3 (选择表中的所有列求全体学生的详细信息。
select * from student;
  5-4 (使用表达式求全体学生的学号、姓名和出生年份。
select sno,sname,birthday from student;
  5-5 (使用列的别名求学生的学号和出生年份,显示时使用别名“学号”和“出生年份”。
select sno as"学号",birthday as"出生年份" from student;
  5-6 (比较大小条件求年龄大于19岁的学生的姓名和年龄。
select sname,age from student
where age>19;
  5-7 (比较大小条件求计算机系或经济管理系年龄大于18岁的学生的姓名、系和年龄。
select  sname,depname ,age
from  student,department
where student.depno=department.depno
and  age>18;
  5-8 (确定范围条件求年龄在19岁与22(20岁和22)之间的学生的学号和年龄。
select  sno,age from student
where age in(19,22);
  5-9 (确定范围条件求年龄不在19岁与22岁之间的学生的学号和年龄。
select  sno,age from student
where age not in(19,22);
  5-10(确定集合条件求在下列各系的学生信息:数学系、计算机系。
select  student.*,department.*
from student,department
where student.depno=department.depno
    and  department.depname in('计算机系','数学系');
 
  5-11(确定集合条件求不是数学系、计算机系的学生信息。
select  student.*,department.*
from student,department
where student.depno=department.depno
    and  department.depname not in('计算机系','数学系');
   
  5-12(匹配查询求姓名是以“李”打头的学生。
select * from student
where sname like '%';
  5-13(匹配查询求姓名中含有“志”的学生。
select * from student
where sname like '%%';
  5-14(匹配查询求姓名长度至少是三个汉字且倒数第三个汉字必须是“马”的学生。
select * from student
where sname like '%__';
  5-15(匹配查询求选修课程c1c3,成绩在8090之间,学号为10xxx的学生的学号、课程号和成绩。
select sno,cno,grade from sc
and  cno in ('c1','c3')
and  grade between 80 and 90
and  sno like '10_';
  5-16(涉及空值查询求缺少学习成绩的学生的学号和课程号。
select sno,cno,grade from sc where grade is NULL
  5-17(控制行的显示顺序求选修c3课程或c4课程的学生的学号、课程号和分数。
select sno,cno,grade from sc where cno in('c3','c4')
  5-18(组函数求学生总人数。'
select distinct count(sno)  from student
  5-19(组函数求选修了课程的学生人数。
select distinct count(sno)  from sc
  5-20(组函数求计算机系学生的平均年龄。
select avg(sage)  from student
where  depno='9001'
  5-21(组函数求选修了课程c1的最高、最低与平均成绩。
select max(grade) ,min(grade),avg(grade) from sc where cno='c1'
  5-22(分组查询求各门课程的平均成绩与总成绩
select cno,avg(grade) ,sum(grade) from sc group by cno
  5-23(分组查询求各系、各班级的人数和平均年龄。
select depno,ccno,count(depno),avg(sage)  from student
group by depno,ccno
  5-24(分组查询输入以下查询语句并执行,观察出现的其结果并分析其原因。
  SELECT SNAMESDEPTCOUNT*FROM STUDENT                                       
      WHERE SDEPT=’CS’ GROUP BY SDEPT;
  5-25(分组查询分析以下语句为什么会出现错误。并给出正确的查询语句。                   
    SELECT SAGE FROM STUDENT GROUP BY SNO;
  5-26(分组查询求学生人数不足3人的系及其相应的学生数。
sql语句查询不包含
select count(depno) ,depno from student
group by depno having count(depno)<=3
                   
  5-27(分组查询求各系中除1001班之外的各班的学生人数。
select count(ccno),ccno from student
group by ccno having ccno<>'1001'
               
  5-28(涉及空值的查询分别观察各组函数、行的显示顺序以及分组查询与空值的关系。
                   
  5-29(自然连接查询求学生号以及其选修课程的课程号和成绩,但查询结果中只能有一个SNO字段。
select sc.sno from sc,student where sc.sno=student.sno
                 
  5-30(连接查询求选修了课程c1且成绩在70分以下或成绩在90分以上的学生的姓名、课程名称和成绩。
select sno,cname,grade from sc
and  cno = 'c1'
and  grade not between 70 and 90                   
5-31(连接查询求选修了课程的学生的学生姓名、课程号和成绩。
select  sname,cno,grade from student,sc
where  student.sno=sc.sno
and cno is not null;
                   
  5-32(自身连接查询求年龄大于 ’李斯’ 的所有学生的姓名、系和年龄。
select a.sname,a.depno,sage
from student a,student b
where a.sage>=b.sage
and b.sname='李斯'
                                       
  5-33(子查询求与 ‘李斯’ 年龄相同的学生的姓名和系。
select sname,depno from student
where sage in( select sage from student where sname='李斯')
                   
  5-34(子查询求选修了课程名为 ’数据结构’ 的学生的学号和姓名。   
select student.sname,student.sno from student,sc,course
where  student.sno = sc.sno
and    sco= courseo
and    courseame ='数据结构'
         
  5-35(子查询ANY)  求比数学系中某一学生年龄大的学生的姓名和系。
select sname,depname from student,department
where student.depno=department.depno
and sage>any(select sage from student where depname='数学系')   
                   
  5-36(子查询ALL)  求比数学系中全体学生年龄大的学生的姓名和系。 
select sname,depname from student,department

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。