实践目标:
1.掌握存储过程的创建
2.掌握存储过程的调用
3.能运用存储过程进行程序设计,解决运用问题

一、实训内容:
(1)创建一个存储过程,用于获取指定线路的详细线路信息,要求显示线路名、行程天数、价格、交通工具和住宿标准。
-- (1)创建一个存储过程,用于获取指定线路的详细线路信息,-- 要求显示线路名、行程天数、价格、交通工具和住宿标准。-- 开始:创建存储过程框架drop PROCEDURE if exists proc_1;create procedure proc_1(lname varchar(20))beginSELECT l.lineName,l.days,l.price,l.vehicle ,l.hotelFROM line lWHERE INSTR(l.lineName,lname)>0 ;end;-- 调用CALL proc_1('黄陂木兰天池');-- 模糊查询CALL proc_1('山');
(**2)创建一个存储过程,用于获取指定线路类型的线路个数与全部线路个数之比。**
-- (2)创建一个存储过程,用于获取指定线路类型的线路个数与全部线路个数之比。-- 框架drop PROCEDURE if exists proc_2;create procedure proc_2(type VARCHAR(20),out percent DECIMAL(6,2))comment 'type 线路类型,percent 线路个数与全部线路个数之比'beginDECLARE tid ,num,total int;-- 1. 查询指定线路类型的IDselect lt.lineTypeID INTO tidfrom linetype ltwhere INSTR(lt.typeName,type);-- 2. 根据类型ID在line查询线路数select count(*) INTO numfrom line lwhere l.lineTypeID = tid;-- 3. 查询line表所有线路数select count(*) INTO totalfrom line l;-- 4. 计算比值赋值给percentSET percent = num / total;end;-- 调用call proc_2('短线游',@p);SELECT '短线游',CONCAT(round(@p*100,2),'%');call proc_2('短线游11',@p);SELECT '短线游11',CONCAT(round(@p*100,2),'%');
(3)创建一个存储过程,用于获取指定交通工具和住宿标准的线路的平均价格。
二、自主练习
(1)创建一个存储过程,用于获取指定线路类型的平均价格、最低价格和最高价格。
(2)创建一个存储过程,用于获取价格在某个区间范围之内的线路信息。
