关于SELECT语句
课程    SQL查询及优化

SELECT语句按照指定的条件从数据表中查找数据,它的语法结构包含如下的常用子句:SELECT子句、FROM子句、WHERE子句、GROUP BY子句、HAVING子句、ORDER BY子句,还有一些其它的关键字。对于了解英语的人书写SELECT语句并不困难。例如,由course表中查询出类别为“编程”的课程名称,可以使用下列的SELECT语句。

SELECT name FROM course WHERE category='编程'

SELECT语句的基本语法如下。

SELECT 列名的列表
      [INTO 新表名]
     [FROM 表名]
     [WHERE 条件表达式]
     [GROUP BY 列名的列表]
     [HAVING 条件表达式]
     [ORDER BY 列名1 [ASC|DESC], 列名2[ASC|DESC],……]

其中,SELECT子句用于指定查询的输出字段;INTO子句用于将查询到的结果数据按照原来的数据类型保存到一个新建的表中;FROM子句用于指定要查询的表或列,即数据的来源;WHERE子句用于指定记录的查询条件;ORDER BY子句用于将查询到的结果按指定的列排序;GROUP BY子句用于按指定的列进行分组,即列值相同的分为一组;HAVING子句用于指定对分组记录的过滤条件。

下面的案例来自mooc数据库的course表,下图是course表数据:

image.png                                             

例1:从course表中查询分类(category)为机器学习,且按照价格升序排序。

要返回分类为机器学习并按价格升序排序的课程数据,可以联合使用WHERE子句和ORDER BY子句,WHERE子句设定查询条件,ORDER BY子句对查询的结果进行排序。在查询窗口输入下面的SQL语句。

SELECT * FROM course  where category='机器学习' order by price

SQL查询结果如下图所示。


image.png 

例2:从course表中查询每位老师开设了多少门课程?

要查询每位老师开设了多少门课程,可以使用GROUP BY语句对teacher_number字段进行分组,使用count函数统计分组后记录数,在查询窗口输入下面的SQL语句。

SELECT COUNT(teacher_number) as course_num,teacher_number  from course GROUP BY teacher_number

SQL查询结果如下图所示。

image.png


从上图的查询结果可以看出,编号为0001的老师开设了2门课程,编号为0002的老师开设了3门课程,编号为0003的老师开设了2门课程。

例3:从course表中统计已开设课程的价格总和。

统计开设课程的价格总和,可以使用SUM函数求表中所有记录price字段的和,在这种情况下,查询结果仅输出一条记录。在查询窗口输入下面的SQL语句。

SELECT SUM(price) as all_price FROM course

SQL查询结果如下图所示。


image.png

读者留言
最新
推荐
半夏微凉
2019/7/4
能多一点具体的例子就好了
郎宏林回复:
回复日期:2019/7/4
  • 推荐[0]
  • |
  • 回复
回复评论
用手机学习课程

手机、电脑同步学

用浏览器扫描二维码,即可下载APP。

郎宏林
授课老师
授课老师简介
项目经理,系统分析和架构师,从事多年中文信息处理技术。熟悉项目管理、擅长项目需求分析和设计、精通Java、C#、Python等编程语言。
  • 备案号:鲁ICP备15001146号
  • @1997-2018 潍坊米粒花网络技术有限公司版权所有