SQL SERVER2005上机实验指导

发布时间 : 星期二 文章SQL SERVER2005上机实验指导更新完毕开始阅读

第1部分 错误!文档中没有指定样式的文字。

9

(4)在查询语句中SELECT、FROM和WHERE选项分别实现什么运算? (5)在查询的FROM子句中实现表与表之间的连接有哪几种方式?对应的关键字分别是什么?

实验5 索引和视图

1.实验目的

(1)掌握使用SQL Server管理平台和Transact-SQL语句CREATE INDEX创建索引的方法。

(2)掌握使用SQL Server管理平台查看索引的方法。 (3)掌握使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引的 方法。

(4)掌握使用SQL Server管理平台和Transact-SQL语句CREATE VIEW创建视图的用法。

(5)了解索引和视图更名的系统存储过程sp_rename的用法。 (6)掌握使用Transact-SQL语句ALTER VIEW修改视图的方法。 (7)了解删除视图的Transact-SQL语句DROP VIEW的用法。

2.实验内容及步骤

(1)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的student_info表和curriculum表创建主键索引。

(2)使用SQL Server管理平台按curriculum表的课程编号列创建唯一性索引。

(3)分别使用SQL Server管理平台和Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index。 (4)为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。

(5)分别使用SQL Server管理平台和系统存储过程sp_helpindex查看grade表和student_info表上的索引信息。

(6)使用SQL Server管理平台对grade表创建一个聚集索引和唯一索引。 (7)使用系统存储过程sp_rename将索引grade_index更名为grade_ind。 (8)分别使用SQL Server管理平台和Transact-SQL语句DROP INDEX删除索引grade_ind。再次使用系统存储过程sp_helpindex查看grade表上的索引信息。

(9)在studentsdb数据库中,以student_info表为基础,使用SQL Server管理平台建立名为v_stu_i的视图,使视图显示学生姓名、性别、家庭住址。 (10)在studentsdb数据库中,使用Transact-SQL语句CREATE VIEW建立

10

数据库技术与应用实践教程——SQL Server 2005

一个名为v_stu_c的视图,显示学生的学号、姓名、所学课程的课程编号,并利用视图查询学号为0003的学生情况。

(11)基于student_info表、curriculum表和grade表,建立一个名为v_stu_g的视图,视图中具有所有学生的学号、姓名、课程名称、分数。使用视图v_stu_g查询学号为0001的学生的所有课程与成绩,如图1-9所示。

图1-9 学号为0001的学生的视图信息

(12)分别使用SQL Server管理平台和Transact-SQL语句修改视图v_stu_c,使之显示学号、姓名、每个学生所学课程数目。

(13)使用Transact-SQL语句ALTER VIEW修改视图v_stu_i,使其具有列名学号、姓名、性别。

(14)使用系统存储过程sp_rename将视图v_stu_i更名为v_stu_info。 (15)利用视图v_stu_i为student_info表添加一行数据:学号为0015、姓名为陈婷、性别为女。

(16)利用视图v_stu_i删除学号为0015的学生记录。

(17)利用视图v_stu_g修改姓名为刘卫平的学生的高等数学的分数为84。 (18)使用Transact-SQL语句DROP VIEW删除视图v_stu_c和v_stu_g。

3.实验思考

(1)是否可以通过视图v_stu_g修改grade表中学号列数据? (2)比较视图和基表操作表中数据的异同。 (3)可更新视图必须满足哪些条件?

(4)什么是索引?SQL Server 2005中有两种形式的索引:聚集索引和非聚集索引,简单叙述它们的区别? (5)能否在视图上创建索引?

实验6 数据完整性

1.实验目的

(1)掌握Transact-SQL语句(CREATE RULE、DROP RULE)创建和删除规则的方法。

(2)掌握系统存储过程sp_bindrule、sp_unbindrule绑定和解除绑定规则的

第1部分 错误!文档中没有指定样式的文字。

11

操作方法,以及sp_helptext查询规则信息、sp_rename更名规则的方法。

(3)掌握Transact-SQL语句(CREATE DEFAULT、DROP DEFAULT)创建和删除默认对象的方法。

(4)掌握系统存储过程sp_bindefault、sp_unbindefault绑定和解除绑定默认对象的操作方法,以及sp_helptext查询默认对象信息。 (5)掌握SQL Server管理平台和Transact-SQL语句(CREATE TABLE、ALTER TABLE)定义和删除约束的方法,并了解约束的类型。

2.实验内容及步骤

(1)为studentsdb数据库中student_info表的创建一个规则,限制“电话号码”列所输入的数据为7位0~9的数字。

(2)创建一个规则stusex_rule,将其绑定到stu_phone表的“性别”列上,保证输入的性别值只能是“男”或“女”。

(3)使用系统存储过程sp_help查询stusex_rule规则列表,使用sp_helptext查询stusex_rule规则的文本,使用sp_rename将stusex_rule规则更名为stu_s_rule。

(4)删除stu_s_rule规则。

(5)在studentdb数据库中,建立日期、货币和字符等数据类型的默认值对象。

① 在查询设计器中,完成以下代码,创建默认对象df_date、df_char、df_money。

② 输入以下代码,在studentsdb数据库中创建stu_fee数据表。

CREATE TABLE stu_fee (学号 char(10) NOT NULL, 姓名 char(8) NOT NULL, 学费 money,

交费日期 datetime, 电话号码 char(7))

表stu_fee的数据结构如图1-11所示。

图1-11 stu_fee的数据结构

③ 使用系统存储过程sp_bindefault将默认对象df_money、df_date、df_char分别绑定在stu_fee表的“学费”、“交费日期”、“电话号码”列上。

④ 输入以下代码,在stu_fee表进行插入操作:

INSERT INTO stu_fee(学号,姓名) VALUES('0001','刘卫平')

INSERT INTO stu_fee(学号,姓名,学费) VALUES('0001','张卫民',$120)

12

数据库技术与应用实践教程——SQL Server 2005

INSERT INTO stu_fee(学号,姓名,学费,交费日期) VALUES('0001','马东',$110,'2006-5-12') 分析stu_fee表中插入记录的各列的值是什么?

⑤ 完成以下代码,解除默认对象df_char的绑定,并删除默认对象。按同样的方式,删除默认对象df_date、df_money。

(6)为student_info表添加一列,命名为“院系”,创建一个默认值对象stu_d_df,将其绑定到student_info表的“院系”列上,使其默认值为“信息工程学院院”,对student_info表进行插入操作,操作完成后,删除该默认对象。 (7)在studentsdb数据库中用CREATE TABLE语句创建表stu_con,并同时创建约束。

① 创建表的同时创建约束。表结构如图1-12所示。

图1-12 要创建的表的结构

约束要求如下:

? 将学号设置为主键(PRIMARY KEY),主键名为pk_sid。 ? 为姓名添加唯一约束(UNIQUE),约束名为uk_name。 ? 为性别添加默认约束(DEFAULT),默认名称为df_sex,其值为“男”。 ? 为出生日期添加属性值约束(CHECK),约束名为ck_bday,其检查条件为:出生日期>'1988-1-1'。

② 在stu_con表中插入如表1-1所示的数据记录。

表1-1 在stu_con表中插入的数据

学号 0009 0010 0011 0012

姓名 张小东 李梅 王强 王强

性别 女

出生日期 1989-4-6 1983-8-5 1988-9-10 1989-6-3

家庭住址

分析各约束在插入记录时所起的作用,查看插入记录后表中数据与所插入的数据是否一致?

③ 使用ALTER TABLE语句的DROP CONSTRAINT参数项在查询设计器中删除为stu_con表所建的约束。

(8)用SQL Server管理平台完成实验内容7的所有设置。

(9)在查询设计器中,为studentsdb数据库的grade表添加外键约束

联系合同范文客服:xxxxx#qq.com(#替换为@)