1. 触发器(Triggers)
触发器是数据库的一种高级功能,它允许在执行特定数据库操作(如INSERT、UPDATE、DELETE)之前或之后自动执行一段代码。
1.1 创建商品和订单表
-
商品表(goods)
gid
: 商品编号(主键)name
: 商品名price
: 商品价格num
: 商品数量
-
订单表(orders)
oid
: 订单号(主键,自动递增)gid
: 商品编号name
: 商品名price
: 商品价格onum
: 订单数量otime
: 订单时间
1.2 触发器的创建和测试
- 订单数量增加触发器:当订单表中增加订单数量时,商品表中相应商品的数量同步减少。
- 订单取消触发器:当订单被取消时,恢复商品表中对应商品的数量。
- 订单修改触发器:当订单被修改时,商品表中对应商品的数量同步更新。
1.3测试触发器
- 插入初始数据到商品表和订单表。
- 执行触发器应该触发的操作(如插入、删除或更新订单)。
- 查询商品表,检查商品数量是否按预期更新。
示例测试步骤
-
插入初始商品数据
-
插入订单数据
-
查询商品表检查数量变化
-
删除订单数据测试订单取消触发器
-
再次查询商品表
-
更新订单数据测试订单修改触发器
-
最终查询商品表
2. 存储过程(Stored Procedures)
存储过程是一组为了完成特定功能的SQL语句集合,可以接收输入参数,返回结果。
2.1 创建存储过程
- s1:提取
emp_new
表所有员工的姓名和工资。 - s2:输入员工姓名,返回员工的年龄。
- s3:传入部门号,返回该部门的平均工资。
2.2使用存储过程
创建完存储过程后,您可以按照以下方式调用它们:
-
调用存储过程
s1
这将返回
emp_new
表中所有员工的姓名和工资。 -
调用存储过程
s2
并传入员工姓名
这将返回名为张三
的员工的年龄。 -
调用存储过程
s3
并传入部门编号
这将返回部门编号为20的部门的平均工资。