任务一 查询和统计旅游线路基本信息
实践目标:
1.进一步理解胜景网的数据库模型;
2.理解需求,分析表之间的逻辑关系,使用等值连接或自然连接方式进行多表连接,掌握各种连接方式的使用规则;
3.编写SQL语句,分步运行调试,实现各任务的查询功能,优化代码;
4.能应对查询过程中出现的Err并处理。
5.按要求使用语雀账号编写作业文档。
一、需求描述:
1.查询类型为“国内短线游”线路信息,要求按照线路价格升序显示线路编号、线路名和线路价格。2.查询和统计类型为“国内长线游”的线路数量、最高线路价格和最低线路价格。
3.查询国内长线四日游线路信息,要求按照线路价格降序显示线路编号、线路名称和线路价格。
4.查询价格大于3000的国内长线游和出境游线路信息,要求按照线路类型和线路价格升序显示线路编号、线路类型名、线路名和线路价格。 5.统计每一种线路类型的线路数量、最高线路价格、最低线路价格和平均线路价格,要求按照线路数量和平均线路价格升序显示。
二、分析任务,指导学生实现:
- 1.查询类型为“国内短线游”线路信息,要求按照线路价格升序显示线路编号、线路名和线路价格。
SELECT l.lineID 线路编号,l.lineName 线路名,l.price 线路价格
FROM line l
-- 使用Natural join 连接lineType表
NATURAL JOIN linetype
WHERE typeName="国内短线游"
ORDER BY 线路价格;
2.查询和统计类型为“国内长线游”的线路数量、最高线路价格和最高线路价格。
SELECT
COUNT(typeName) 线路数量,
MAX(price) 最高线路价格,
MIN(price) 最低线路价格
FROM
line l
JOIN linetype lt USING (lineTypeID) -- 自然连接,前提是有同名列,并且等值
WHERE
typeName = '国内长线游';
3.查询国内长线四日游线路信息,要求按照线路价格降序显示线路编号、 线路名称和线路价格。
SELECT l.lineID 线路编号,l.lineName 线路名称,l.price 线路价格
FROM line l
JOIN linetype lt ON lt.lineTypeID = l.lineTypeID
where typeName = '国内长线游' AND days = 4
ORDER BY 线路价格 DESC;
三、学生拓展练习:
1.统计每一种类型的线路数量、最高线路价格、最低线路价格和平均线路价格,要求按线路数量和平均线路价格升序显示线路数量大于4的分类信息。 参考:与指导部分的需求说明(5)相比,仅需添加条件“线路数量大于4”,即对分组后的数据进行过滤显示,所以在GROUP BY子句之后添加“HAVING 线路数量>4”即可。 2.统计每一种类型的线路订购数量和平均线路价格,要求按线路数量和平均线路价格升序显示。 参考:由“统计每一个类型的线路订购”,可知需按照线路类型分组;需联接的表为:线路类型、线路和订单线路明细。
上一篇:2.1 美淘网联接查询
下一篇:2.3 胜景网连接查询