SQL复习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
准备:在D盘建立一个文件夹,以学号+名字命名。例如:01张三。将发送的两个数据文件拷贝到这一个文件夹中。
一、将所提供的数据库“学生学籍管理系统”附加至数据库服务器。
二、使用SQL Server Management Studio实现约束设置。
1.Student表:设“Sno”为主键。
2.Course表:设“Cno”为主键。
3.Score表:设“Sno”和“Cno”一起为主键;设“Sno”字段为外键,其值参照于Student
表中的“Sno”;设“Cno”字段为外键,其值参照于Course表中的“Cno”。
三、使用Transact-SQL语句创建视图,并将语句保存至自己所建立的文件夹。
1.创建视图对象myview1,通过该视图来查询学生的学号(Sno)、姓名(Sname)、课程号(Cno)、课程名(Cname)、成绩(Grade)。
2.检索myview1中的所有信息。
3.创建视图对象myview2,通过该视图来查询所有女生的学号(Sno)、姓名(Sname)、所选课的课程名称(Cname)。
4.检索myview2中所有信息。
四、使用SQL Server Management Studio创建存储过程,并将相关语句保存至自己所建立的文件夹。
1.将对Student表的插入记录操作定义为存储过程proc_insert_s。
create proc proc_insert_s
@n1 int,@n2 varchar(8),@n3 char(2),@n4 int,@n5 varchar(15)
as
insert into student(sno,sname,ssex,sage,sdept)
values (@n1,@n2,@n3,@n4,@n5)
2.通过调用存储过程proc_insert_s实现记录的插入。
exec proc_insert_s 7,'aa','女',19,'外语系'
3.将对Student表的删除操作定义为存储过程proc_delete_s。
create proc proc_delete_s
@n1 int
as
delete from student
where sno=@n1
4.通过调用存储过程proc_delete_s实现记录的删除。
exec proc_delete_s 7
五、使用Transact-SQL语句创建触发器,并将语句保存至自己所建立的文件夹。
1.创建一个名为Mytriger_1的触发器,当向Student表添加记录时,该触发器自动显示Student表的所有信息。
create trigger Mytriger_1
on student
after insert
as select* from student
2.设计一个语句,用来触发Mytriger_1。
insert into student(sno,sname)
values(8,'BB')
3.创建一个名为Mytriger_2的触发器,当向Score表添加记录时,该触发器自动显示Score表的所有信息。
create trigger Mytriger_2
on score
after insert
as select* from score
4.设计一个语句,用来触发Mytriger_2。
insert into score(sno,cno,grade)
values(8,2,100)
5. 创建一个名为触发器Mytriger_3,当向Student表插入记录时,该触发器自动显示修改前和修改后的记录。
create trigger Mytriger_3
on student
after update
as
print ('修改前的记录')
select* from deleted
print ('修改后的记录')
select* from inserted
6.设计一个语句,用来触发Mytriger_3。
update student
set ssex='女'
where sno=1
7. 创建一个名为Mytriger_4的触发器,当向Score表添加记录时,该触发器自动显示修改前和修改后的记录。
create trigger Mytriger_4
on score
after update
as
print ('修改前的记录')
select* from deleted
print ('修改后的记录')
select* from inserted
8.设计一个语句,用来触发Mytriger_4。
update score
set grade=88
where sno=2
六、使用Transact-SQL语句完成以下内容,并将语句保存至自己所建立的文件夹中。
1.查询全体学生的详细信息。
select *
from student
2.查询年龄在-岁之间的学生的姓名(Sname)、系别(Sdept)和年龄(Sage)。
select Sname,Sdept,Sage
from student
where Sage>=20 and Sage<=25
3.查询成绩不及格学生的学号(Sno)、姓名(Sname)、课程名称(Cname)、成绩(Grade)。
select student.sno,sname,cname,grade
from student,course,score