实验题目:数据库编程
实验目的和要求:
实验步骤:
- 按实验内容要求完成各项操作
- 根据题目要求给出解决方案
- 提交实验报告
实验内容:
- 定义一个表变量,用以存储‘计算机系’的学生学号,姓名,所在系。
- 判断学生表中是否有“李宁”同学,如查到,则显示该生的基本信息和选修的课程信息及成绩;若没有查到则显示“该生不存在”提示信息。
- 编写一个自定义的函数,该函数接受一个学生姓名,返回该生选修课程的平均成绩。
- 试用CASE语句根据指定成绩判断成绩等级
- 编写存储过程,以系别作为参数,统计指定系别的人数,并作为存储过程的输出。
- 为每个学生选修课程的平均成绩定义游标对象,并判断如果平均成绩低于70,则输出“考核不合格”,否则输出“通过考核”
实验总结
本次实验更加深入了解并掌握T-SQL语句的语法规则、T-SQL流程控制结构、掌握T-SQL的函数和存储过程的创建
思考题
1.T-SQL中自定义函数的标量值函数和表值函数的区别是什么?
- 标量值函数返回单个值,而表值函数返回一张表,即多个行和多个列。
- 标量值函数只能在SELECT语句中使用,而表值函数可以在FROM语句中使用,也可以在JOIN语句中使用。
- 标量值函数可以接受一个或多个参数,并返回一个标量值,而表值函数可以接受一个或多个参数,并返回一张表。
- 标量值函数的执行速度比表值函数要快,因为标量值函数只返回单个值,而表值函数需要返回多个行和多个列。
- 标量值函数可以嵌套在SELECT语句中,而表值函数不能嵌套在SELECT语句中。
2.存储过程的特点是什么?
- 封装性:存储过程可以封装一系列SQL语句和逻辑操作,形成一个独立的单元,提高了代码的复用性和可维护性。
- 减少网络流量:存储过程在数据库服务器上执行,可以减少与数据库服务器之间的网络通信量,提高了系统的性能。
- 安全性:存储过程可以设置权限控制,只有具有执行权限的用户才能调用存储过程,提高了数据的安全性。
- 提高性能:存储过程在数据库服务器上编译和存储,可以减少重复编译的时间,提高了执行效率。
- 批处理操作:存储过程可以包含多条SQL语句,支持批处理操作,可以一次性执行多个操作,减少了与数据库服务器的交互次数。
- 事务控制:存储过程可以包含事务控制语句,支持事务的回滚和提交,确保数据的完整性和一致性。
3.游标的特点是什么?
- 遍历能力:游标可以逐行遍历结果集,对每一行数据进行操作,适用于需要逐行处理数据的情况。
- 易于理解:对于一些复杂的数据处理逻辑,使用游标可以更直观地表达逻辑,易于理解和维护。
- 灵活性:游标可以在结果集中定位到任意位置,可以前进、后退、跳过或重置游标位置,提供了灵活的数据操作能力。
- 数据一致性:游标可以在事务中使用,确保在处理数据时能够维持数据的一致性。
- 适用性:对于一些复杂的数据处理需求,游标可以提供更灵活的处理方式,适用于一些无法用单纯的SQL语句解决的问题。