数据库平时上机实验报告.docx

上传人:b****8 文档编号:9646916 上传时间:2023-02-05 格式:DOCX 页数:12 大小:100.61KB
下载 相关 举报
数据库平时上机实验报告.docx_第1页
第1页 / 共12页
数据库平时上机实验报告.docx_第2页
第2页 / 共12页
数据库平时上机实验报告.docx_第3页
第3页 / 共12页
数据库平时上机实验报告.docx_第4页
第4页 / 共12页
数据库平时上机实验报告.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

数据库平时上机实验报告.docx

《数据库平时上机实验报告.docx》由会员分享,可在线阅读,更多相关《数据库平时上机实验报告.docx(12页珍藏版)》请在冰豆网上搜索。

数据库平时上机实验报告.docx

数据库平时上机实验报告

实验一数据库的定义和建立实验

一、实验目的

要求学生熟练掌握和使用T-SQL﹑SQLServer企业管理器创建数据库﹑基本表﹑视图﹑索引和修改表结构,及向数据库输入数据的操作;学会创建和使用表的主外码和约束。

二、实验内容

本实验针对上述两个题目分别完成以下相应任务:

1﹑创建相应的数据库和查看数据库属性;

2﹑创建基本表﹑确定表的主码和相应的约束,为主码建索引;

3﹑创建﹑查看视图;

4﹑创建表之间的关联;

5﹑利用T-SQL和SQLServer企业管理器向数据库输入数据。

二、SQL语句

创建基本表﹑确定表的主码和相应的约束,为主码建索引;

1、CREATETABLES//建立S表

(SNOCHAR

(2)UNIQUE

SNAMECHAR(6)

STATUSCHAR

(2)

CITYCHAR(4)

PRIMARYKEY(SNO)//确定主码SNO

CREATEUNIQUEINDEXS1ONS(SNOASC))//为主码SNO建立索引

2、CREATETABLEP//建立P表

(PNOCHAR

(2)UNIQUE

PNAMECHAR(6)

COLORCHAR

(2)

WEIGHTSMALLINT

PRIMARYKEY(PNO)//确定主码PNO

CREATEUNIQUEINDEXP1ONP(PNOASC))//为主码PNO建立索引

3、CREATETABLEJ//建立J表

(JNOCHAR

(2)UNIQUE

JNAMECHAR(8)

CITYCHAR(4)

PRIMARYKEY(JNO)//确定主码JNO

CREATEUNIQUEINDEXJ1ONJ(JNOASC))//为主码JNO建立索引

4、CREATETABLESPJ//建立SPJ表

(SNOCHAR

(2)UNIQUE

JNOCHAR

(2)

PNOCHAR

(2)

CITYCHAR(4)

QTYINT

PRIMARYKEY(SNO,JNO,PNO)//确定主码

CREATEUNIQUEINDEXSPJ1ONSPJ(SNOASC))

四﹑思考题

1﹑为什么要建立索引?

在你的数据库中建立多少索引合适?

答:

使用索引可以明显地加快数据查询的速度;使用索引可以保证数据的唯一性;可以加快连接速度。

索引的个数应该由所要建立的数据库内部关系来确定,不宜过多,越精越好。

对于此次实验中的选课数据库只需要建立四个。

2﹑索引和视图能否修改吗?

为什么?

答:

可以

3﹑为什么不能随意删除被参考表中的主码?

答:

数据库中,主码在于实施所谓的实体完整性,各个表之间由码进行联系,不能随意删除被参照表中的主码。

实验二数据库的查询实验

一﹑实验目的

要求学生掌握SQLServer查询分析器和T-SQL语言的使用方法,熟练掌握和使用简单表的数据查询﹑数据排序和数据连接查询﹑嵌套查询等操作方法,

二﹑实验内容

用T-SQL语言表示以下操作:

题目1实验内容:

1.检索上海产的零件的工程名称;

2.检索供应工程J1零件P1的供应商号SNO;

3.检索供应工程J1零件为红色的供应商号SNO;

4.检索没有使用天津生产的红色零件的工程号JNO;

5.检索至少用了供应商S1所供应的全部零件的工程号JNO;

6.检索购买了零件P1的工程项目号JNO及数量QTY,并要求对查询的结果按数量QTY降序排列。

三、SQL语句

1、SELECTJNAME

FROMSPJ,S,J

WHERES.SNO=SPJ.SNOAND

S.CITY=’上海’ANDJ.JNO=SPJ.JNO

2、SELECTSNO

FROMSPJ

WHEREJNO='J1'ANDPNO='P1

3、SELECTSNO

FROMSPJ,P

WHEREJNO=’J1’ANDSPJ.PNO=P.PNOANDCOLOR=’红’

4、SELECTJNO

FROMSPJ

WHEREJNONOTIN(SELECTJNOFROMSPJ,P,S

WHERES.CITY='天津'ANDCOLOR='红'

ANDS.SNO=SPJ.SNOANDP.PNO=SPJ.PNO)

5、SELECTPNO

FROMSPJ

WHERESNO=’S1’

SELECTJNO

FROMSPJ

WHEREPNO=’P1’ANDJNOIN(SELECTJNO

FROMSPJ

WHEREPNO=’P2’)

6、SELECTJNO,QTY

FROMSPJ

WHEREPNO=’P1’

ORDERBYQTYDESC

四﹑思考题

1.如何提高数据查询和连接速度。

答:

建立视图

2.试比较连接查询和嵌套查询

答:

有些嵌套查询是可以用连接来代替的,而且使用连接的方式,性能要比嵌套查询高出很多;当查询涉及多个关系时,用嵌套查询逐步求解结构层次清楚,易于构造具有结构化程序设计的优点,但是相比于连接运算,目前商用关系数据库管理系统对嵌套查询的优化做的还不够完善,所以在实际应用中,能够用连接运算表达的查询尽可能采用连接运算。

实验三数据库的维护实验

一﹑实验目的

要求学生熟练使用和掌握数据库的维护操作,包含数据的插入、检索、修改,掌握SQLServer中用户、角色及操作权限的管理方法,学会创建和使用规则、缺省和触发器。

二﹑实验内容

用T-SQL语言表示以下操作:

题目1实验内容:

1.把全部红色零件颜色改为粉红色;

2.由S1供给J1的零件P1今改为由S2供应,作必要修改;

3.删去全部蓝色零件及相应的SPJ记录;

4.把全部螺母的重量置为0;

5.为SPJ表的QTY字段设计CHECK约束:

0〈QTY〈1000;

6.实现对SPJ表的操作权限管理的使用。

三、SQL语句

1、UPDATEP

SETCOLOR=’粉红’

WHEREPNOIN(SELECTPNOFROMP

WHERECOLOR=’红’)

2、UPDATESPJ

SETSNO=’S2’

WHERESNO=’S1’ANDJNO=’J1’ANDPNO=’P1’

3、DELETE

FROMP

WHERECOLOR=’蓝’

DELETE

FROMSPJ

WHEREPNO='P3'ORPNO='P5'

4、UPDATEP

SETWEIGHT='0'

WHEREPNAME='螺母'

5、CREATTABLESPJ

SNOCHAR

(2)

PNOCHAR

(2)

JNOCHAR

(2)

QTYINTCHECK(0

6、CREATEROLEUSER1

GRANTSELECT,UPDATE,DELETE,INSERT

ONSPJ

TOUSER1

四、思考题

1.为什么不能随意删除被参考表中的主码。

答:

破坏了数据的完整性

2.数据库中一般不允许更改主码数据。

如果需要更改主码数据时,怎样处理?

答:

需要查看是否该表的主码别的表的外码并被依赖,如果是需要先将另一个表中跟需要删除的信息有关的元组,然后再更改主码数据。

3.两种SQLServer的安全认证模式及特点。

答:

混合模式,就是使用windos集成的身份验证也可以,使用SQLServer独立认证可以。

这种方式验证方式较宽,安全性跟兼容性是较为平衡的。

Windows集成身份验证,仅仅支持windos集成的身份,这种方式比较不安全,因为没有SQLServer的独立授权,与Windows自身的权限可能出现交叉问题,会造成安全问题。

4.什么是触发器?

主要功能时什么?

答:

触发器是用户定义在关系表上的一类由事件驱动的特殊过程。

任何用户对表的增,删,改操作均由服务器自动激活相应的触发器,在关系数据库管理系统核心层进行集中的完整性控制。

触发器类似于约束,但是比约束更加灵活,可以实现复杂的检查和操作,具有更精细和更强大的数据控制能力。

 

实验四数据库的统计输出实验

一﹑实验目的

熟练掌握和使用分组查询和函数查询的使用方法,完成数据查询中的统计、计算输出的操作方法。

二﹑实验内容

题目1实验内容:

1.找出向北京供应商购买重量大于30的零件的工程号;

2.找出工程项目J2使用的各种零件的名称及其数量;

3.按工程号递增的顺序列出每个工程购买的零件总数;

4.编程输出如下报表:

供应商

零件

工程项目

数量

三﹑SQL语句

1、SELECTSPJ.JNO

FROMSPJ,S,P

WHERES.SNO=SPJ.SNOANDP.PNO=SPJ.PNOAND

S.CITY=’北京’ANDP.WEIGHT>30

2、SELECTP.PNAME,SPJ.QTY

FROMP,SPJ

WHEREP.PNO=SPJ.PNOANDJNO=’J2’

3、SELECTJNO,SUM(QTY)

FROMSPJ

GROUPBYJNO

ORDERBYJNOASC

4、SELECTSNO,PNO,JNO,QTY

FROMSPJ

GROUPBYSNO,PNO,JNO,QTY

ORDERBYJNOASC

四﹑思考题

1.统计函数和分组统计函数有什么不同?

答:

统计函数是按某种要求,对某个属性的一列值进行计算,对数值进行整合,而分组统计函数是将查询结果按某一列或多列的值分组,值相等的为一组。

目的是为了细化聚集函数的作用对象。

分组后聚集函数将作用于每一个组,即每一组都有一个函数值。

2.使用GROUPBY<条件条件>子句后,语句中的统计函数的运行结果有什么不同?

答:

如果未对查询结果分组,聚集函数将作用于整个查询结果,分组后聚集函数将作用于每一个组,即每一个组都有一个函数值'。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1