实验10.3 创建和使用函数

更新于 2026年10月10日 版权声明
实验10.3 创建和使用函数

【实验目的】

掌握函数的创建和使用方法。

【实验内容】

①创建一个函数F_Price,根据顾客姓名和商品名,查询订购该商品的总价。

②使用函数F_Price,查询顾客Tip Top订购的产品comb的总价格。

③使用流程控制函数case()实现如下功能:查询顾客的编号和顾客订单总金额,根据订单总金额为顾客输出客户等级,如果订单总金额大于等于3 000,客户等级为A;如果订单总金额大于等于1 000并且小于3 000,客户等级为B;如果订单总金额大于等于0并且小于1 000,客户等级为C;否则客户等级为D。

【实验步骤】

(1)创建函数F_Price

创建一个函数F_Price,根据顾客姓名和商品名,查询订购该商品的总价。

①在图标菜单中单击第一个图标 图示,新建一个查询窗口。

②在查询窗口中输入如下SQL语句:

USE `sales`;
DROP function IF EXISTS `F_Price`;

DELIMITER $$
USE `sales`$$
CREATE FUNCTION `F_Price` (
in_cname char(50),
in_pname char(50)
)
RETURNS float
READS SQL DATA
RETURN (SELECT sum(dollars) FROM orders,customers,products
     WHERE orders.cid=customers.cid AND orders.pid=products.pid
     AND customers.cname=in_cname AND products.pname=in_pname);$$

DELIMITER ;

③单击工具栏中的 图示 按钮,执行上面的SQL语句,如图10.15所示。

图示

图10.15 创建存储函数F_price

(2)使用函数F_Price

使用函数F_Price,查询顾客Tip Top订购的产品comb的总的价格。(https://www.daowen.com)

①在图标菜单中单击第一个图标 图示,新建一个查询窗口。

②在查询窗口输入下面的SQL语句:

SET @in_cname = 'Tip Top';
SET @in_pname = 'comb';
SELECT F_price(@in_cname,@in_pname);

③单击工具栏中的 图示 按钮,执行窗口中的SQL语句,如图10.16所示。

图示

图10.16 执行存储函数

(3)使用流程控制函数

用流程控制函数case()实现如下功能:查询顾客的编号和顾客订单总金额,根据订单总金额为顾客输出客户等级,如果订单总金额大于等于3 000,客户等级为A;如果订单总金额大于等于1 000并且小于3 000,客户等级为B;如果订单总金额大于等于0并且小于1 000,客户等级为C;否则客户等级为D。

①在图标菜单中单击第一个图标 图示,新建一个查询窗口。

②在查询窗口输入下面的SQL语句:

SELECT cid, SUM(dollars) 购买总金额,
CASE WHEN SUM(dollars)>=3000 THEN 'A'
WHEN SUM(dollars)>=1000 THEN 'B'
WHEN SUM(dollars)>=0 THEN 'C'
ELSE 'D'
END 客户等级
FROM orders
GROUP BY cid;

③单击工具栏中的图示按钮,执行窗口中的SQL语句,如图10.17所示。

图示

图10.17 查询执行结果

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)