数据查询语句格式

SELECT [ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]… FROM<表名或视图名>[,<表名或视图名>]..I(SELECT语句) [AS]<别名> [WHERE<条件表达式>] [GROUP BY<列名1>[HAVING<条件表达式>]] [ORDER BY<列名2>[ASC|DESC]];

  • SELECT子句:指定要显示的属性列
  • FROM子句:指定查询对象(基本表或视图)
  • WHERE子句:指定查询条件
  • GROUP BY子句:对查询结果按指定列的值分组,该属性列值相等的元组为一个组。通常会在每组中作用聚集函数。
  • HAVING短语:只有满足指定条件的组才予以输出
  • ORDER BY子句:对查询结果表按指定列值的升序或降序排序
  • 指定DISTINCT关键词,去掉表中重复的行。如果没有指定DISTINCT关键词,则缺省为ALL

例子:

image-20250404173211967

image-20250404173537826

image-20250404174026242

例子:

image-20250404202545143

image-20250404202618966

image-20250404202648884

image-20250404202930689

image-20250404203016894

image-20250404203904839

image-20250404203924856

image-20250404203947204

image-20250404204008262

聚集函数:

  • 统计元组个数
    • COUNT(*)
  • 统计一列中值的个数
    • COUNT([DISTINCTIALL]<列名>)
  • 计算一列值的总和(此列必须为数值型)
    • SUM([DISTINCTIALL]<列名>)
  • 计算一列值的平均值(此列必须为数值型)
    • AVG([DISTINCTIALL]<列名>)
  • 求一列中的最大值和最小值
    • MAX([DISTINCTIALL]<列名>)
    • MIN([DISTINCTIALL]<列名>)

image-20250404204802233

GROUP BY子句分组:

  • 细化聚集函数的作用对象
    • 如果未对查询结果分组,聚集函数将作用于整个查询结果
    • 对查询结果分组后,聚集函数将分别作用于每个组
    • 按指定的一列或多列值分组,值相等的为一组

image-20250404205045221

image-20250404205114201