SQL SERVER机试

来源:互联网 发布:直接python的shell代码 编辑:程序博客网 时间:2024/05/14 03:37

SQL SERVER机试

以下的每一条SQL语句都要求在查询分析器中实现

首先创建一个数据库,名称为:Example

一、创建以下各表:

1、Student表:由学号(StdNo,自动编号(200301),主键)、姓名(Sname,varchar(20))、专业(Sspec,varchar(10))、班级(Class,char(4)

2、Grade表:由学号(Student)、课程编号(CouseNo,char(2),Not Null)、成绩(gradereal

3、Couse表:由课程编号(见Grade表,主键)、课程名称(CouseName,char(50),允许为空,唯一性约束)

二、添加约束

1、Grade表添加主键,主键为:StdNo+CouseNo

2、Grade表的学号和CouseNo添加外键约束,分别应用Grade表和Couse表的相应字段

3、Grade表的grade字段添加检查约束(grade>=0grade<=100)

三、选择查询SELECT语句的使用

1、检索“Grade表”中StdNo字段的数据,要求查询结果中不包含重复记录

2、使用link运算符,从Student表中查询姓名中第二个字是“小”的学生

3、使用通配符表示字符列表或字符范围内的任一字符

1、Student表中查找姓王、姓李和姓刘的学生记录

4、算出2003级学生的平均成绩(提示:2003级的学生是通过学号的前四个字符来标识的),并找出所有大于平均成绩的学生的信息

5、找出没有成绩的学生的信息

四、使用聚合函数

1、统计Grade表中记录学生总数

2、Grade表中,统计每个班每门课程的平均成绩并按照平均成绩降序排列,平均成绩相同时按照班级升序,在查询表中要显示班级、课程名称和平均成绩字段

3、使用with cube进行汇总计算

1、Grade表中,统计每个学生、每个班级的平均成绩以及所有班级的平均成绩。检索需要用到Grade表,Student表以内部连接方式连接起来,并以班级和学号分组

五、    使用游标

Student表上建立名为ST_CU的游标,并用它取出Student表的最后一条记录的Sname字段的值放在一个名为TEMP的变量中然后打印输出,最后释放它

六、存储过程

1、在Grade表中建立一个名为st_scr_sp的存储过程,它带有两个参数,用于接受指定的学生姓名和课程名称,然后从数据库中检索相应的成绩。

七、触发器的使用

1、Grade表中建立delete触发器,其名称为DeleteScoreTrigger,存储在Student表中,当从Student表中删除记录时引发该触发器,从Grade表中删除这个学生的成绩。

八、删除StudentGrade表及Couse表,最后删除数据库

 

原创粉丝点击