10、 默认值对象的创建与使用
(1)使用T-SQL语句创建名为DF_GRADE的默认值对象,值为0。
create default DF_GRADE AS 0
(2)使用企业管理器将DF_GRADE绑定到成绩表Grade中的DailyGrade、PracticeGrade和TestGrade字段上。
exec sp_bindefault 'DF_GRADE','grade.DailyGrade' exec sp_bindefault 'DF_GRADE','grade.PracticeGrade' exec sp_bindefault 'DF_GRADE','grade.TestGrade'
(3)使用sp_unbindefault存储过程将DF_GRADE从DailyGrade、PracticeGrade和TestGrade字段上解除。
exec sp_unbindefault 'grade.DailyGrade' exec sp_unbindefault 'grade.PracticeGrade'
exec sp_unbindefault 'grade.TestGrade'
(4)删除DF_GRADE默认值对象。
DROP DEFAULT df_grade
实验思考:
1、删除表的命令是什么?要将实验中的Student表删除,命令应怎样写?
drop table tableName drop table Student
2、要将Course表中的学分字段删除,相应的SQL语句怎么写?
alter table Course drop column Credit
3、若要删除第9题(1)中所建立的外键约束,使用企业管理器应怎么做?使用T-SQL语句应怎么做?
数据库关系图->新建数据库关系图->将相关的列属性进行连接 T-SQL语句:
alter table student add constraint FK_student_classId foreign key(classId) references ClassInfo(classId)
4、默认值约束和默认值对象是一回事吗? 不是一回事,
实验七 索引
实验内容:
1、 使用企业管理器为学生表stud_info创建一个以stud_id为索引关键字的惟一聚簇索引。
USE student
GO
CREATE INDEX old_index ON stud_info(stud_id)
2、
引名称修改为new_index。
exec sp_rename 'old_index','new_index';
将上一步所建立的索
3、 将前述所建立的new_index索引删除。
drop index student.new_index
4、 使用T-SQL语句为教师表teacher_info创建一个名为Teacher_Index的惟一非聚簇索引,索引关键字为教师编号teacher_id,降序,填充因子为80%。
CREATE UNIQUE NONCLUSTERED INDEX Teacher_Index ON teacher_info(teacher_id) ASC WITH
PAD_INDEX, FILLFACTOR=80,
5、使用T-SQL语句将教师表中的Teacher_Index删除。
drop index teacher.Teacher_Index
6、为stud_info表创建一个基于“入学成绩mark,学号stud_id”组合列的非聚集、复合索引cj_xh_index。
USE student
GO
CREATE INDEX cj_xh_ihdex ON stud_info(mark,stud_id)
7、为lesson_info创建一个基于“课程号course_id,课程类型course_type”组合列的惟一、聚集、复合索引kc_lx_index。
USE student GO
CREATE UNIQUE CLUSTERED INDEX kc_lx_index ON lesson_info(course_id,course_type) WITH
PAD_INDEX, FILLFACTOR=80,
实验九 存储过程
实验内容:
1、 创建一个名为“proc_1”的存储过程,用于查看学生表的所有信息。然后调用该存储过程。
2、创建一个名为“proc_2”的存储过程,用于向学生表的所有字段添加一条记录,记录内容由调用时决定。然后调用该存储过程。
3、创建一个名为“proc_3”的存储过程,用于删除学生表中指定学号的记录,具体学号由调用时决定。然后调用该存储过程。
4、修改存储过程“proc_4”,用于查询不小于指定成绩的学生的基本信息,具体 成绩由调用时决定。
5、创建一个名为“proc_5”的存储过程,用于求一个3位整数的反序数。例如123的反序数为321。
create proc proc_4 @a int as
declare @b int,@c int,@t int,@s int begin
set @t=@a % 10
select @b=@a/10,@b=@b % 10 set @c=@a/100
set @s=@t*100+@b*10+@c select @s end go
exec proc_4 123