一、相关知识点
SQL Server 数据库基础知识:了解 SQL Server 数据库的概念、架构和基本操作,包括创建数据库、创建表、插入、查询、更新和删除数据等操作。
存储过程的概念和作用:理解存储过程的概念、作用和优势,存储过程是一组预编译的 SQL 语句集合,存储在数据库中,并可以通过名称调用执行。
存储过程的语法和结构:了解存储过程的语法和结构,包括创建存储过程、输入参数、输出参数、返回值、局部变量、条件语句、循环语句、异常处理等。
存储过程的编写和调用:掌握如何编写存储过程,包括定义存储过程名称、输入参数、输出参数、返回值、编写存储过程的 SQL 语句等,以及如何调用存储过程执行。
存储过程的优化和性能调优:了解存储过程的优化技巧和性能调优策略,如使用适当的查询和索引、避免不必要的操作、使用临时表等。
二、软件版本
Microsoft SQL Server Management Studio(v18.7.1)
三、实验所用数据库
实验所基于的销售管理数据库中涉及以下表:
四、实验内容
1. 编程计算S=2+4+6+……+100
2. 编程计算S=1+(1+3)+(1+3+5)+……+(1+3+5……+51)
3. 查询是否有“打印机”的订单,如果有,输出“目前有打印机的订单”,如果没有,输出“目前没有打印机的订单”。
4. 编程实现删除员工“姜玲娜”,将数据库中与“姜玲娜”相关信息一并删除。
5. 供应商“文成软件有限公司”给员工“章宏”供货2000个优盘。编程实现将采购订单涉及到的相关信息写入到数据库中。
6. 在销售管理数据库中创建存储过程proc_employee_order,要求实现如下功能:根据员工的姓名查询该员工的奖金情况,奖金根据该员工接收订单的总金额计算得到(奖金=总金额*5%),调用存储过程,查询员工王孔若和蔡慧敏的奖金。
7. 在销售管理数据库中创建存储过程proc_customer_order, 要求实现如下功能:根据客户的公司名称查询该客户的订单情况,如果该公司没有订购商品,则输出“某某公司没有订购商品”,否则输出订购商品的相关信息,包括公司名称,联系人姓名,订购商品名称,订购数量,单价。调用存储过程,查询“通恒机械有限公司”订购商品情况。
五、实验过程及数据记录
1. 编程计算S=2+4+6+……+100
2. 编程计算S=1+(1+3)+(1+3+5)+……+(1+3+5+……+51)
3. 查询是否有“打印机”的订单,如果有,输出“目前有打印机的订单”,如果没有,输出“目前没有打印机的订单”。
4. 编程实现删除员工“姜玲娜”,将数据库中与“姜玲娜”相关信息一并删除。
(1)定义触发器:
(2)执行操作:
5. 供应商“文成软件有限公司”给员工“章宏”供货2000个优盘。编程实现将采购订单涉及到的相关信息写入到数据库中。
操作:
结果:
6. 在销售管理数据库中创建存储过程proc_employee_order,要求实现如下功能:根据员工的姓名查询该员工的奖金情况,奖金根据该员工接收订单的总金额计算得到(奖金=总金额*5%),调用存储过程,查询员工王孔若和蔡慧敏的奖金。
(1)定义存储过程:
(2)调用存储过程:
7. 在销售管理数据库中创建存储过程proc_customer_order, 要求实现如下功能:根据客户的公司名称查询该客户的订单情况,如果该公司没有订购商品,则输出“某某公司没有订购商品”,否则输出订购商品的相关信息,包括公司名称,联系人姓名,订购商品名称,订购数量,单价。调用存储过程,查询“通恒机械有限公司”订购商品情况。
(1)定义存储过程:
(2)调用存储过程:
六、实验小结
1、本次实验中遇到无法在数据库删除关联数据的问题。最后使用instead of 触发器解决。
2、存储过程中也可定义查询语句和进行数据库编程。
3、数据库编程中,需要给局部变量赋值时需要在语句前加上set 或select。
4、局部变量名以‘@’开始。