视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
实验二 表操作和数据完整性定义
2025-10-02 15:06:45 责编:小OO
文档
洛阳理工学院实验报告

系别计算机与信息工程系班级学号姓名
课程名称数据库系统应用实验日期
实验名称实验二 表操作和数据完整性定义

成绩
实验目的:

1.掌握表结构设计中各种数据类型的应用;

2.熟练掌握用SSMS和create table语句创建表与定义完整性约束;

3.巩固insert、update、delete语句的使用;

4.掌握数据库导入、导出操作和数据库关系图的创建;

5.熟练掌握索引与视图的创建和应用。

实验条件:

连在局域网中的微机1台、SQL Server 2008

实验内容与步骤:

请按顺序完成下面各题:

1.创建图书管理数据库XXX(用自己的名字的缩写作为数据库名),按照下面的要求,在其中创建三个表:“图书”、“读者”、“借阅”。

(1)各个表应含有如下各个字段,要求为各个字段合理选择数据类型、长度等。

图书:书号、ISBN、书名、作者、出版社、出版年、状态、书库

读者:借书证号、类别、已借书数、最多借书数、编号、姓名、系别、密码

借阅:借书证号、书号、借出日期、还书日期

(2)用SSMS创建“图书”表,要求定义主键,为“状态”定义默认值为“未借”,定义一个CHECK约束:图书的状态只能是“借出”、“未借”两种状态之一。

(3)用SSMS创建“读者”表,要求定义主键,并定义一个CHECK约束:借书证号必须是6位数字。

(4)用CREATE TABLE语句创建“借阅”表,要求定义主键和外键。该表的主键是“书号”,外键有两个,一个是“书号”,参照“图书”表的主键,另一个是“借书证号”,参照“读者”表的主键。并定义一个CHECK约束:借书证号必须是6位数字。

2.用SSMS向“图书”和“读者”表中分别添加2条记录。

3.用insert语句向“借阅”表中添加2条记录。

 INSERT INTO [dbo].[借阅]

           ([借书证号]

           ,[书号]

           ,[借出日期]

           ,[还书日期])

     VALUES

           (111111

           ,1

           ,'2012/11/1'

           ,'2012/12/1')

GO

4.执行下面的update语句,说明该语句的作用是:

____某个读者借的书数

Update 读者

set 已借书数=(

select count(*) from  借阅

where 借书证号=读者.借书证号

)

5.新建数据库new,将数据库XXX中的三个表导出到new中。

6.创建books数据库的数据库关系图。

7.在数据库XXX中

(1)执行语句:ALTER TABLE 借阅 ADD  id int identity(1,1);

回答问题:id列被称为什么列?

答:序号列,代表当前是第几列。

(2)执行语句:Select * from借阅

记录id 列中现有哪些值:

答:1,2

(3)写出delete语句,删除“借阅”表中的第一条记录;

delete from 借阅 

  where id=1;

(4)写出truncate table语句,删除“借阅”表中全部记录。

TRUNCATE TABLE 借阅; 

8. 附加teaching数据库,在teaching数据库中完成索引操作

(1)查看student表上已有哪些索引,记录各个索引的索引名以及其依据的是哪一列。

IX_student_1非聚簇唯一索引 依据sname列,

PK__student__07020F21聚簇索引 依据studentno列

(2)在student表上新建一个按姓名的非聚集索引,然后在查询分析器中执行下面的语句,查看这些查询的执行计划(并抓图),说明其分别运用了哪些索引。

select studentno,sname from student where sname like '%王' 

  非聚簇索引 Tablesname

select studentno,sname from student where studentno = '0805101 

  聚簇索引PK__student__07020F21

9.在teaching数据库中完成视图操作

(1)执行如下创建视图的语句:

Create view credit_of_student as

select student.studentno,sname, course.credit

from student ,score ,course 

where student.studentno= score.studentno and score.courseno= course.courseno

回答问题:该视图有几个基表?分别是?

答:两个;student表和course表

(2)执行如下语句,记录是否成功执行,说明其原因:

Insert into credit_of_student (studentno,credit) values('08050288',5);

不能:

原因:视图或函数'credit_of_student' 不可更新,因为修改会影响多个基表。

update credit_of_student set credit=5 where studentno='08050203';

可以

实验总结(结论或问题分析):

    这次比较难,因为没有提前预习导致在做的过程中进度比较慢,虽然按时完成了实验内容但也认识到提前预习的重要性,最后还是完成了任务,掌握用SSMS和create table语句创建表与定义完整性约束;巩固insert、update、delete语句的使用;掌握数据库导入、导出操作和数据库关系图的创建;熟练掌握索引与视图的创建和应用。

下载本文
显示全文
专题