实验目的。
通过使用ms sql server 2000企业管理器和sql语句完成完整性控制。
知识点拨:1. 完整性控制机制。
2. 完整性规则。
3. 实体完整性定义。
4. 参照完整性定义。
5. 用户定义完整性定义。
6. 完整性约束命名子句。
7. t-sql的流程控制。
8. 存储过程。
9. 触发器及其原理。
实验内容。1. 实体完整性定义。
2. 参照完整性定义。
3. 用户定义完整性定义。
4. 完整性约束命名子句。
5. 存储过程定义。
***存储过程定义格式:create proc procedure_name
[ 输入参数,局部变量的书写格式。
output ] 输出时需要。
n ] as sql_statement [ n ] sql语句。
***存储过程的使用:exec procedure_name 实参。
6. 触发器定义。
实验步骤。1. 三类完整性定义及完整性命名子句的使用:
1) 在实验2的实验内容4中,我们用企业管理器定义了jx中各表的一些约束,请在企业管理器中先将这些约束删除,然后再用修改表结构的语句进行约束的添加。
alter table teacher
drop constraint ck_grade
alter table teacher
add constraint ck_grade check (grade>=0 and grade <=100)
2) 在student表上定义约束,不允许同名学生的信息出现;
alter table student add constraint unique_s unique (sname)
3) 删除2)定义的约束;
alter table student
drop constraint unique_s
2. 触发器应用练习:
1) 创建触发器tri_restrictxk,以保证每门课的选课人数不超过10人;(提示:用instead of 触发器)
create trigger tri_restrictxk
on scinstead of delete,insert,update
as select cno
from sc
group by cno
h**ing count(distinct sno)<=10
2) 创建触发器tri_updateteacher,以保证在修改教师号时同时更新选课表中该教师的教师号;
create trigger tri_updateteacher
on teacher
for update
asdeclare @oldtno char(10),@newtno char(10)
select @oldtno=tno
from deleted
beginselect @oldtno=tno from inserted
update sc
set tno=repalce(tno,@oldtno,@newtno)
where tno like'%'oldtno+'%
end以下两题选做!!
3) 定义触发器tri_addtototal1,当在选课表中插入元组的成绩大于等于60分时在该同学的总学分上增加相应的学分值;
4) 定义触发器tri_addtototal2,当成绩由60分以下更新为60分以上,则在该同学的总学分上增加相应的学分值;
3. 存储过程应用练习:
1) 创建存储过程pro_selectbywy,用以查询外国语系学生的基本信息;
create proc pro_selectbywy
asselect *
from student
where sdept='is'
2) 创建存储过程pro_selectbydept,用以按照用户指定的系别查询该指定系学生的基本信息;
create proc pro_selectbydept(@sdept varchar(20))
asselect *
from student
where sdept=@sdept
3) 创建存储过程pro_addstudent,用以插入指定学号,姓名的信息;
create proc pro_addstudent(@sno char(10),@sname varchar(10))
as insert
into student(sno,sname)
values(@sno,@sname)
4) 创建存储过程pro_deletesc,用以删除指定学号的选课信息。
create proc pro_deletesc(@sno char(10))
asdelete
from student
where sno=@sno
数据库上机作业
语句查询数据 二 汇总查询 实验内容 1 打开 sql server management studio 窗口。2 单击 标准 工具栏的 新建查询 按钮,打开 查询编辑器 窗口3 在窗口中输入以下sql查询命令并执行 a.在kc表中,统计每学期的总分数。usexscjselect开课学期,count...
数据库上机作业
语句查询数据 二 汇总查询。打开 窗口。单击 标准 工具栏的 新建查询 按钮,打开 查询编辑器 窗口。在窗口中输入以下查询命令并执行 在表中,统计每学期的总分数。开课学期,学分 总学分 在表中统计每个学生的选修课程的门数。学号,课程号 选修的课程门数。统计表中的总学分,并显示明细信息。总学分。按开课...
数据库上机作业
2011年11月21日上机作业。1利用t sql语句,对教学库完成下列查询。1 检索所有姓王的学生的姓名和年龄。2 检索成绩为空值的学生学号和课程号。3 统计有学生选修的课程门数。4 统计每门课程的学生选修人数,超过3人的课程才统计,要求输出课程号和选修人数。5 检索选修2门以上课程的学生平均成绩 ...