搜档网
当前位置:搜档网 › 实验一 SQL语言单表查询

实验一 SQL语言单表查询

实验一  SQL语言单表查询
实验一  SQL语言单表查询

实验一SQL语言单表查询

一、实验目的

熟悉SQLServer2008建立数据库和表的方法;掌握SQL语言单表查询方法二.实验内容

1、建立数据库Student

2、建立该数据库的三张表:stu_info,course_info,stu_grade,三张表分别存放学生的学生信息、课程信息和学生选课信息

3、请写出实现如下功能的SQL语句,并在SQLServer2008中进行测试

(1)查询所有同学的姓名和年龄信息,要求使用别名(姓名和年龄),结果如下:

(2)查询所有的院系信息,要求取消重复的行,结果如下:

(3)查询前5位同学的学号、姓名和成绩信息。查询结果如下:

(4)查询所有的男同学学号、姓名、生日和性别信息。查询结果如下:

(5)查询所有总分大于550的男同学信息。查询结果如下:

(6)查询所有信息学院和会计学院并且总分大于550分的同学信息。查询结果如下:

(7)查询所有籍贯为空的同学信息。查询结果如下:

(8)查询总分在530—560之间的同学信息。

查询结果如下:

(9)查询所有在信息学院或会计学院就读的同学信息。查询结果如下:

(10)查询所有姓“张”的同学信息。查询结果如下:

(11)查询所有姓“张”,而且姓名是两个字的同学信息。查询结果如下:

(12)查询所有不姓“张”也不姓“王”的同学信息。查询结果如下:

(13)查询所有同学课程编号701的课程成绩,并按由大到小的顺序输出,如果成绩相同,则按学号由小到大排序。查询结果如下:

(14)统计学生成绩表中每个同学的最高分、最低分、平均分和总分。查询结果如下:

(15)统计学生成绩表中每个同学的最高分、最低分、平均分和总分,80分以下的成绩不参与统计。

Select stu_id,MAX(grade),MIN(grade),AVG(grade),SUM(grade)

From stu_grade

Where grade>=80

Group by stu_id

查询结果如下:

(16)统计学生成绩表中每个同学的最高分、最低分、平均分和总分,并输出平均分大于87分的信息。查询结果如下:

(17)明细汇总:

使用group by子句对查询数据进行分组汇总,为每一组产生一个汇总结果,每个组只返回一行,无法看到详细信息。使用compute和compute by子句既能够看到统计经营部的结果又能够浏览详细数据。

使用compute子句对所有学生的人数进行明细汇总。查询结果如下:

(18)使用compute by子句按照院系对所有学生的人数进行明细汇总。select*

from stu_info

order by sdept

compute count(stu_id)

by sdept

查询结果如下:

附:样本数据库student表数据:

学生信息表(stu_info):

课程信息表(course_info):

学生成绩表(stu_grade):

相关主题