price和publisher字段插入数据。阅读并回答以下问题:(10分) Use bookdb Go
If exists(Select name From ①
Where name=’my_proc’and type=’ ② ’)
Drop Proc my_proc Go
Create Proc my_proc
@a int, @b char(50),@c float,@d publisher ③
Insert Into student(book_id,book_name,price,publisher) Values(@a,@b,@c,@d) Go
问题:(1)填写该程序段中空白处的内容:① ② ③
(
四、编程题(共4题)
有一个“学生-课程”数据库,数据库中包括三个表: (1) “学生”表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,可记为: Student(Sno,Sname,Ssex,Sage,Sdept) Sno 为关键字。
(2) “课程”表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,可记为: Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。
(3) “学生选课”表SC由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,可记为: SC(Sno,Cno,Grade) (SNO, CNO) 为关键字。
完成下列操作: 1、 请把其中建立 “学生”表Student的语句写下来,表Student是由学号Sno、姓名Sname、
性别Ssex、年龄Sage、所在系Sdept五个属性组成,其中学号属性不能为空,并且其值是唯一的。
2、 在student表中查询Sdept是‘计算机’的学生的所有信息,并按Sno降序排列。(5分)
3、 在以上三个表中查询Ccredit为5并且Grade大于60的学生的学号、姓名和性别。(7
分)
4、为Course表创建一个名称为my_trig的触发器,当用户成功删除该表中的一条或多条记录时,触发器自动删除SC表中与之有关的记录。
(注:在创建触发器之前要判断是否有同名的触发器存在,若存在则删除之。)(9分) 参考答案 一、选择题(每题2分,共30分)
CCDDA BBBAB CBACD
21
2)任写一条调用该存储过程的语
句: 。
二、填空题(每空2分,共30分)
1、数据共享、可控冗余度 2、主键 3、日志文件 4、用户 5、数据库管理系统 6、统一字符编码标准 7、备份数据库、备份事务日志 8、ALTER 、CREATE DATABASE 9、游标结果集、游标位置 10、一致性、隔离性 三、程序阅读题(第一题5分,第二题10分,共15分)
1、系统在15:43分为orderform表中订购数量book_number大于25本的订购信息的order_date、book_number和book_id三个字段创建一个名为my_view的视图。(答题意思差不多 即可得满分,其他情况酌情给分)
2、(1)① Sysobjects ② P ③ As (每空2分)
(2)Exec my_proc 7, ’SQL Server 2000教程’,38,‘北京科海集团公司’ 或 Exec my_proc @a=7, @b=’SQL Server 2000教程’,@c=38,@d=’北京科海集团公司’ (4分)
注:该小题不管怎样调用该存储过程,Exec 和 my_proc不可少,也不可多用Proc关键字;若不全对则酌情给分。
四、编程题(共4题,共25分)
1、(共6分)
CREATETABLE Student (1分) (Sno CHAR(5) NOT NULL UNIQUE, (1分) Sname CHAR(20), (1分) Ssex CHAR(1), (1分) Sage INT, (1分) Sdept CHAR(15)); (1分)
2、select * from student where Sdept=’计算机’ order by Sno desc (5分)
1分
1分
1分
2分
3、(共7分) 方法1:
select student.Sno,Sname,Ssex from student, course, sc
(1分) (1分)
where (student.Sno=sc.Sno) and (course.Cno=sc.Cno)
and (course.Ccredit=5) and (sc.Grade>60) (1+1+1+1+1分)
(1分)
(2分+2分) (1分+1分)
方法2:
select student.Sno,Sname,Ssex
On student.Sno=sc.Sno
4、(共9分)
If exists(Select name From sysobjects
Where name=’my_trig’and type=’tr’) (整个If语句 1分)
Drop trigger my_trig Go
Create trigger my_trig
from student Inner Join (sc Inner Join course On course.Cno=sc.Cno)
where (course.Ccredit=5) and (sc.Grade>60)
(0.5分)
(0.5分)
(1分)
22
On Course For Delete As
(0.5分)
(1分) (0.5分) (1分)
(1分+2分)
Delete From sc Go
Where Sno in (Select Sno From Deleted)
23