1、数据库平时上机实验报告实验一 数据库的定义和建立实验一、实验目的要求学生熟练掌握和使用TSQLSQL Server企业管理器创建数据库基本表视图索引和修改表结构,及向数据库输入数据的操作;学会创建和使用表的主外码和约束。 二、实验内容本实验针对上述两个题目分别完成以下相应任务:1创建相应的数据库和查看数据库属性;2创建基本表确定表的主码和相应的约束,为主码建索引;3创建查看视图;4创建表之间的关联;5利用TSQL和SQL Server企业管理器向数据库输入数据。二、SQL语句创建基本表确定表的主码和相应的约束,为主码建索引;1、CREATE TABLE S /建立S表(SNO CHAR(2)
2、UNIQUE SNAME CHAR(6)STATUS CHAR(2)CITY CHAR(4)PRIMARY KEY(SNO) /确定主码SNOCREATE UNIQUE INDEXS1 ON S(SNO ASC)/为主码SNO建立索引2、CREATE TABLE P /建立P表(PNO CHAR(2) UNIQUE PNAME CHAR(6)COLOR CHAR(2)WEIGHT SMALLINTPRIMARY KEY(PNO) /确定主码PNOCREATE UNIQUE INDEXP1 ON P(PNO ASC)/为主码PNO建立索引3、CREATE TABLE J /建立J表(JNO CH
3、AR(2) UNIQUE JNAME CHAR(8)CITY CHAR(4)PRIMARY KEY(JNO) /确定主码JNOCREATE UNIQUE INDEXJ1 ON J(JNO ASC)/为主码JNO建立索引4、CREATE TABLE SPJ /建立SPJ表(SNO CHAR(2) UNIQUE JNO CHAR(2)PNO CHAR(2)CITY CHAR(4)QTY INTPRIMARY KEY(SNO,JNO,PNO) /确定主码CREATE UNIQUE INDEXSPJ1 ON SPJ(SNO ASC)四思考题1为什么要建立索引?在你的数据库中建立多少索引合适?答:使用索
4、引可以明显地加快数据查询的速度;使用索引可以保证数据的唯一性;可以加快连接速度。索引的个数应该由所要建立的数据库内部关系来确定,不宜过多,越精越好。对于此次实验中的选课数据库只需要建立四个。2索引和视图能否修改吗?为什么?答:可以3为什么不能随意删除被参考表中的主码?答:数据库中,主码在于实施所谓的实体完整性,各个表之间由码进行联系,不能随意删除被参照表中的主码。 实验二 数据库的查询实验一实验目的要求学生掌握SQL Server查询分析器和TSQL语言的使用方法,熟练掌握和使用简单表的数据查询数据排序和数据连接查询嵌套查询等操作方法, 二实验内容 用TSQL语言表示以下操作:题目1 实验内容
5、:1. 检索上海产的零件的工程名称;2. 检索供应工程J1零件P1的供应商号SNO;3. 检索供应工程J1零件为红色的供应商号SNO; 4. 检索没有使用天津生产的红色零件的工程号JNO; 5. 检索至少用了供应商S1所供应的全部零件的工程号JNO; 6. 检索购买了零件P1的工程项目号JNO及数量QTY,并要求对查询的结果按数量QTY降序排列。三、SQL语句 1、SELECT JNAME FROM SPJ,S,J WHERE S.SNO=SPJ.SNO ANDS.CITY=上海 AND J.JNO=SPJ.JNO2、SELECT SNOFROM SPJWHERE JNO=J1 AND PNO
6、=P13、SELECT SNOFROM SPJ,PWHERE JNO=J1 AND SPJ.PNO=P.PNO AND COLOR=红4、SELECT JNOFROM SPJWHERE JNO NOT IN(SELECT JNO FROM SPJ,P,SWHERE S.CITY=天津 AND COLOR=红 AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO)5、SELECT PNOFROM SPJWHERE SNO=S1SELECT JNO FROM SPJWHERE PNO=P1 AND JNO IN(SELECT JNOFROM SPJWHERE PNO=P2)6、S
7、ELECT JNO,QTYFROM SPJWHERE PNO=P1ORDER BY QTY DESC四思考题1.如何提高数据查询和连接速度。答:建立视图2. 试比较连接查询和嵌套查询答:有些嵌套查询是可以用连接来代替的,而且使用连接的方式,性能要比嵌套查询高出很多;当查询涉及多个关系时,用嵌套查询逐步求解结构层次清楚,易于构造具有结构化程序设计的优点,但是相比于连接运算,目前商用关系数据库管理系统对嵌套查询的优化做的还不够完善,所以在实际应用中,能够用连接运算表达的查询尽可能采用连接运算。实验三 数据库的维护实验一实验目的要求学生熟练使用和掌握数据库的维护操作,包含数据的插入、检索、修改,掌握
8、SQL Server中用户、角色及操作权限的管理方法,学会创建和使用规则、缺省和触发器。二实验内容 用TSQL语言表示以下操作:题目1实验内容:1把全部红色零件颜色改为粉红色;2由S1供给J1的零件P1今改为由S2供应,作必要修改;3删去全部蓝色零件及相应的SPJ记录;4把全部螺母的重量置为0;5为SPJ表的QTY字段设计CHECK约束:0 QTY1000;6实现对SPJ表的操作权限管理的使用。三、SQL语句1、UPDATE P SET COLOR=粉红 WHERE PNO IN (SELECT PNO FROM P WHERE COLOR=红)2、UPDATE SPJ SET SNO=S2
9、WHERE SNO=S1 AND JNO=J1 AND PNO=P13、DELETE FROM P WHERE COLOR=蓝 DELETE FROM SPJ WHERE PNO=P3OR PNO=P5 4、UPDATE P SET WEIGHT=0 WHERE PNAME=螺母 5、CREAT TABLE SPJ SNO CHAR(2) PNO CHAR(2) JNO CHAR(2) QTY INT CHECK(0QTY302、SELECT P.PNAME ,SPJ.QTY FROM P,SPJ WHERE P.PNO=SPJ.PNO AND JNO=J23、SELECT JNO,SUM(Q
10、TY) FROM SPJ GROUPBY JNO ORDERBY JNO ASC4、SELECT SNO,PNO,JNO,QTY FROM SPJ GROUPBY SNO,PNO,JNO,QTY ORDERBY JNO ASC四思考题1.统计函数和分组统计函数有什么不同?答:统计函数是按某种要求,对某个属性的一列值进行计算,对数值进行整合,而分组统计函数是将查询结果按某一列或多列的值分组,值相等的为一组。目的是为了细化聚集函数的作用对象。分组后聚集函数将作用于每一个组,即每一组都有一个函数值。2.使用GROUP BY 子句后,语句中的统计函数的运行结果有什么不同? 答:如果未对查询结果分组,聚集函数将作用于整个查询结果,分组后聚集函数将作用 于每一个组,即每一个组都有一个函数值。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1