任务一 查询和统计旅游线路基本信息

实践目标

1.进一步理解胜景网的数据库模型;

2.理解需求,分析表之间的逻辑关系,使用等值连接或自然连接方式进行多表连接,掌握各种连接方式的使用规则;

3.编写SQL语句,分步运行调试,实现各任务的查询功能,优化代码;

4.能应对查询过程中出现的Err并处理。

5.按要求使用语雀账号编写作业文档。

一、需求描述:

1.查询类型为“国内短线游”线路信息,要求按照线路价格升序显示线路编号、线路名和线路价格。

2.查询和统计类型为“国内长线游”的线路数量、最高线路价格和最低线路价格。

3.查询国内长线四日游线路信息,要求按照线路价格降序显示线路编号、线路名称和线路价格。

4.查询价格大于3000的国内长线游和出境游线路信息,要求按照线路类型和线路价格升序显示线路编号、线路类型名、线路名和线路价格。 5.统计每一种线路类型的线路数量、最高线路价格、最低线路价格和平均线路价格,要求按照线路数量和平均线路价格升序显示。

二、分析任务,指导学生实现:

  • 1.查询类型为“国内短线游”线路信息,要求按照线路价格升序显示线路编号、线路名和线路价格。
  1. SELECT l.lineID 线路编号,l.lineName 线路名,l.price 线路价格
  2. FROM line l
  3. -- 使用Natural join 连接lineType
  4. NATURAL JOIN linetype
  5. WHERE typeName="国内短线游"
  6. ORDER BY 线路价格;

2.2  胜景网联接查询任务一 - 图1

2.查询和统计类型为“国内长线游”的线路数量、最高线路价格和最高线路价格。

  1. SELECT
  2. COUNT(typeName) 线路数量,
  3. MAX(price) 最高线路价格,
  4. MIN(price) 最低线路价格
  5. FROM
  6. line l
  7. JOIN linetype lt USING (lineTypeID) -- 自然连接,前提是有同名列,并且等值
  8. WHERE
  9. typeName = '国内长线游';

2.2  胜景网联接查询任务一 - 图2

3.查询国内长线四日游线路信息,要求按照线路价格降序显示线路编号、 线路名称和线路价格。

  1. SELECT l.lineID 线路编号,l.lineName 线路名称,l.price 线路价格
  2. FROM line l
  3. JOIN linetype lt ON lt.lineTypeID = l.lineTypeID
  4. where typeName = '国内长线游' AND days = 4
  5. ORDER BY 线路价格 DESC;

2.2  胜景网联接查询任务一 - 图3

4.查询价格大于3000的国内长线游和出境游线路信息,要求按照线路类型和线路价格升序显示线路编号、线路类型名、线路名和线路价格。(分组练习) 5.统计每一种线路类型的线路数量、最高线路价格、最低线路价格和平均线路价格,要求按照线路数量和平均线路价格升序显示。(分组练习)

三、学生拓展练习:

1.统计每一种类型的线路数量、最高线路价格、最低线路价格和平均线路价格,要求按线路数量和平均线路价格升序显示线路数量大于4的分类信息。 参考:与指导部分的需求说明(5)相比,仅需添加条件“线路数量大于4”,即对分组后的数据进行过滤显示,所以在GROUP BY子句之后添加“HAVING 线路数量>4”即可。 2.统计每一种类型的线路订购数量和平均线路价格,要求按线路数量和平均线路价格升序显示。 参考:由“统计每一个类型的线路订购”,可知需按照线路类型分组;需联接的表为:线路类型、线路和订单线路明细。