数据库上机实验报告.docx
《数据库上机实验报告.docx》由会员分享,可在线阅读,更多相关《数据库上机实验报告.docx(10页珍藏版)》请在冰豆网上搜索。
数据库实验
(第三次)
题目1实验内容:
1.检索上海产的零件的工程名称;
2.检索供应工程J1零件P1的供应商号SNO;
3.检索供应工程J1零件为红色的供应商号SNO;
4.检索没有使用天津生产的红色零件的工程号JNO;
5.检索至少用了供应商S1所供应的全部零件的工程号JNO;
6.检索购买了零件P1的工程项目号JNO及数量QTY,并要求对查询的结果按数量QTY降序排列。
1
selectjname
fromj
wherejnoin
(selectjno
fromspj
wheresnoin
(selectsno
froms
wherecity='上海'
)
);
2
selectsno
fromspj
wherejno='j1'andpno='p1'
3
selectdistinctsno
fromspj
wherepnoin
(selectpno
fromp
wherecolor='红'andpnoin
(selectpno
fromspj
wherejno='j1'
)
);
4
selectdistinctjno
fromspj
wherepnonotin
(selectpno
fromp
wherecolor='红'andpnoin
(select pno
fromspj
wheresnoin
(selectsno
froms
wherecity='天津'
)
)
)
5
selectjno
fromspj
wheresno='s1'
6
selectjno,qty
fromspj
wherepno='p1'
orderbyqtydesc
四﹑思考题
1.如何提高数据查询和连接速度。
建立视图
2.试比较连接查询和嵌套查询
有些嵌套查询是可以用连接来代替的,而且使用连接的方式,性能要比
嵌套查询高出很多
当查询涉及多个关系时,用嵌套查询逐步求解结构层次清楚,易于构造,具有结构化程序设计的优点。
但是相比于连接运算,目前商用关系数据库管理系统对嵌套查询的优化做的还不够完善,所以在实际应用中,能够用连接运算表达的查询尽可能采用连接运算。
二
题目1实验内容:
1.把全部红色零件颜色改为粉红色;
2.由S1供给J1的零件P1今改为由S2供应,作必要修改;
3.删去全部蓝色零件及相应的SPJ记录;
4.把全部螺母的重量置为0;
5.为SPJ表的QTY字段设计CHECK约束:
0〈QTY〈1000;
6.实现对SPJ表的操作权限管理的使用。
1
updatep
setCOLOR='粉红'
wherepnoin
(selectpno
fromP
whereCOLOR='红')
2
updatespj
setsno='s2'
wheresno='s1'andpno='p1'andjno='j1'
3
delete
fromspj
wherepno='p3'orpno='p5'
delete
fromp
wherecolor='蓝'
4
updatep
setweight='1'
wherepname='螺母'
5
altertablespj
addconstraintc1check(qtybetween0and1000)
createtriggerspj_count
afterINSERTONspj
referencing
newtableasdelta
foreachstatement
insertintospjinsertlog(numbers)
selectcount(*)fromdelta
6
createroleuser1
grantselect,update,delete,insert
onspj
touser1
四、思考题
1.为什么不能随意删除被参考表中的主码。
破坏了数据的完整性
2.数据库中一般不允许更改主码数据。
如果需要更改主码数据时,怎样处理?
需要查看是否该表的主码别的表的外码并被依赖,如果是需要先将另一个表中跟需要删除的信息有关的元组,然后再更改主码数据。
3.两种SQLServer的安全认证模式及特点。
混合模式,就是使用windos集成的身份验证也可以,使用SQLServer独立认证
可以。
这种方式验证方式较宽,安全性跟兼容性是较为平衡的。
Windows集成身份验证,仅仅支持windos集成的身份,这种方式比较不安全,因为没有SQLServer的独立授权,与Windows自身的权限可能出现交叉问题,会造成安全问题。
4.什么是触发器?
主要功能时什么?
触发器是用户定义在关系表上的一类由事件驱动的特殊过程。
任何用户对表的增,删,改操作均由服务器自动激活相应的触发器,在关系数据库管理系统核心层进行集中的完整性控制。
触发器类似于约束,但是比约束更加灵活,可以实现复杂的检查和操作,具有更精细和更强大的数据控制能力。