数据原理应用 答案 4_第1页
数据原理应用 答案 4_第2页
数据原理应用 答案 4_第3页
数据原理应用 答案 4_第4页
数据原理应用 答案 4_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【课后习题】参考答案第11章视图一、选择题1.D2.D二、填空题1.CREATEVIEW2.可更新性(通常不可更新)三、编程题1.答:CREATEVIEWv_students_adultASSELECT*FROMstudentsWHEREage>=18;2.答:CREATEVIEWview_average_gradeASSELECTgrade,AVG(grade)ASaverage_gradeFROMstudentsGROUPBYgrade;3.答:CREATEVIEWv_customer_ordersASSELECTc.customer_id,c.customer_name,COUNT(o.order_id)ASorder_count,SUM(o.total_amount)AStotal_amountFROMcustomerscLEFTJOINordersoONc.customer_id=o.customer_idGROUPBYc.customer_id,c.customer_name;4.答:UPDATEview_average_gradeSETaverage_grade=average_grade+10WHEREaverage_grade<60;四、简答题1.答:视图在MySQL中的作用及好处:①简化复杂查询,将常用查询封装为视图,用户直接查询视图即可;②提高数据安全性,通过视图只暴露允许访问的字段和记录,隐藏敏感数据;③提供逻辑数据独立性,当基本表结构变化时可通过修改视图定义保持应用不变;④定制数据视角,不同用户看到符合需求的数据集合。2.答:视图与基本表的区别:①视图是虚拟表,数据库中只保存视图定义,不保存实际数据;基本表实际存储数据。②视图的数据来自基本表,随基本表数据变化而动态变化;基本表数据独立存在。③视图更新受限,当包含聚合函数、GROUPBY、DISTINCT、多表连接等时通常不可更新;基本表可直接进行增删改操作。④视图主要起查询封装和安全隔离作用;基本表是数据存储的主体。3.答:不宜使用视图的情况:①视图定义过于复杂或嵌套层级过多,可能降低查询性能;②需要频繁对数据进行复杂更新时,由于视图更新限制较多,反而增加开发难度;③简单查询场景下引入视图会增加不必要的抽象层,维护成本高于收益。第12章触发器一、选择题1.A2.C二、填空题1.INSERT、UPDATE、DELETE2.完整性、一致性三、编程题1.答:DELIMITER//CREATETRIGGERtrg_student_insertAFTERINSERTONstudentsFOREACHROWBEGININSERTINTOstudent_logs(operate_time,student_id,operate_type)VALUES(NOW(),NEW.id,'INSERT');END//DELIMITER;2.答:DELIMITER//CREATETRIGGERtrg_order_status_updateAFTERUPDATEONordersFOREACHROWBEGINIFOLD.status='PENDING'ANDNEW.status='COMPLETED'THENINSERTINTOorder_history(order_id,update_time,new_status)VALUES(NEW.order_id,NOW(),NEW.status);ENDIF;END//DELIMITER;3.答:DELIMITER//CREATETRIGGERtrg_employee_deleteBEFOREDELETEONemployeesFOREACHROWBEGININSERTINTOdeleted_employees(employee_id,name,department,delete_time)VALUES(OLD.employee_id,OLD.name,OLD.department,NOW());END//DELIMITER;4.答:DELIMITER//CREATETRIGGERtrg_product_inventory_alertAFTERINSERTONproductsFOREACHROWBEGINIFNEW.stock_quantity<NEW.alert_thresholdTHENINSERTINTOinventory_alerts(product_id,alert_time,message)VALUES(NEW.product_id,NOW(),'库存低于警戒值');ENDIF;END//DELIMITER;四、简答题1.答:触发器的作用:当对表执行INSERT、UPDATE、DELETE操作时,系统自动执行预定义的SQL语句,无需用户显式调用。实际应用优点:①自动维护数据完整性和一致性;②实现审计日志,自动记录数据变更;③完成级联操作,减少应用层代码;④集中业务规则,便于统一维护。2.答:触发器类型:①按触发时机分为BEFORE触发器和AFTER触发器。BEFORE触发器在操作前执行,可用于数据验证和修改;AFTER触发器在操作后执行,常用于审计、日志和级联操作。②按触发事件分为INSERT触发器、UPDATE触发器和DELETE触发器,分别在插入、更新、删除时激活。3.答:设计触发器应注意的问题:①避免递归触发,防止触发器链式触发导致死循环;②控制触发器逻辑复杂度,过多触发器会影响数据库性能;③正确使用NEW和OLD引用,INSERT用NEW、DELETE用OLD、UPDATE两者都可用;④做好错误处理,触发器执行失败会导致原操作回滚;⑤保留触发器文档,便于后期维护和调试。第13章存储过程与存储函数一、编程题1.答:DELIMITER//CREATEPROCEDUREsp_sum_n(INnINT,OUTresultINT)BEGINDECLAREiINTDEFAULT1;DECLAREsINTDEFAULT0;WHILEi<=nDOSETs=s+i;SETi=i+1;ENDWHILE;SETresult=s;END//DELIMITER;调用:CALLsp_sum_n(100,@s);SELECT@s;2.答:DELIMITER//CREATEFUNCTIONfn_string_length(sVARCHAR(255))RETURNSINTBEGINRETURNCHAR_LENGTH(s);END//DELIMITER;调用:SELECTfn_string_length('Hello');3.答:存储函数只能返回一个值,若需同时返回姓名和职位可拼接为一个字符串返回。DELIMITER//CREATEFUNCTIONfn_get_employee_info(emp_idINT)RETURNSVARCHAR(255)BEGINDECLAREinfoVARCHAR(255);SELECTCONCAT(name,'-',position)INTOinfoFROMemployeesWHEREid=emp_id;RETURNinfo;END//DELIMITER;调用:SELECTfn_get_employee_info(101);二、简答题1.答:存储过程是为了完成特定功能而预编译并存储在数据库服务器上的一组SQL语句集合,用户通过指定名称和参数来调用执行。2.答:使用存储过程的益处:①预编译执行,效率高;②减少网络传输量,一次调用执行多条SQL;③代码复用,业务逻辑封装在数据库端;④增强安全性,可限制用户直接访问表,只能通过过程操作数据。3.答:游标在存储过程中的作用是逐行处理查询结果集。它允许程序每次从结果集中读取一行数据,并对该行进行单独处理,适用于需要对结果集逐条进行复杂逻辑操作的场景。4.答:存储过程与存储函数的区别:①存储函数必须有且只有一个返回值,存储过程没有返回值(可通过OUT/INOUT参数返回多个值);②存储函数可在SELECT语句和表达式中直接调用,存储过程必须使用CALL语句调用;③存储过程参数有IN、OUT、INOUT三种模式,更灵活;存储函数参数默认为输入参数,限制较多。第14章访问控制与安全管理一、选择题1.C2.C二、填空题1.存取控制、审计2.粒度越小三、编程题1.答:GRANTSELECTONEmployeesTO'Alice'@'localhost';2.答:REVOKESELECTONEmployeesFROM'Alice'@'localhost';3.答:CREATEVIEWv_managers_employeesASSELECT*FROMEmployeesWHEREsalary>50000;GRANTSELECTONv_managers_employeesTO'Managers';4.答:GRANTALLPRIVILEGESONSensitiveDataTO'Admin'@'localhost';对其他用户不授予任何权限,默认即无任何权限;如需撤销已有权限可执行REVOKEALLPRIVILEGESONSensitiveDataFROM'其他用户'@'主机';四、简答题1.答:数据库安全性是指保护数据库,防止因不

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论