MySQL必知必会 第10-12章

第十章 创建计算字段

本章介绍如何创建字段,如何从应用程序中使用别名引用它们。

10.1 计算字段

字段 (field): 基本上与列(column)的意思相同,数据库列一般称为列,而术语字段通常用在计算字段的连接上。对客户机而言,计算字段与数据列的返回方式相同。

10.2 拼接字段
  • 拼接(concatenate) 将值联结到一起构成单个值。
  • 分析 1:concat可以将多个串拼接在一起,上述例子中,连接了vend_name,(, vend_country,)四个元素。上述的拼接的结果实际上是没有名字的,可以使用AS为结果设置一个别名,例如:

  • 分析2:别名还有其他用途:简化列名,在实际的表名包含不合规字符时进行重命名等等。

10.3 执行算数字段
  • 计算字段的另一个常见用途是对检索结果进行算术运算,例SELECT a_column * b_column AS result from t1。可以使用的运算符还包括:+, -, /等。

  • 在mysql中可以直接利用select 语句来检测计算结果,例如:SELECT Now(); SELECT 2*3; SELECT Rtrim('abv');等。

第十一章 使用数据处理函数

本章介绍什么是函数,mysql支持何种函数,以及如何使用函数。

11.1 函数

与其他大多数计算机语言一样,SQL语言提供了函数来处理数据,但是需要注意的是各DBMS所提供的函数各有特点,即使是相同功能的函数,使用方式和返回数据的格式也不一定相同。因此函数并不具备高可移植性。mysql随着版本的迭代,支持的函数在不断丰富。

  • 在客户端命令行中,可以使用HELP FUNCTIONS来查看当前版本支持哪些函数。
11.2 使用函数

大多数SQL支持一下几个类型的函数:

  • 文本处理函数:对字符本身进行处理
  • 日期与时间处理函数:日期与时间采用特殊的数据格式进行存储以便快速进行排序与过滤,以及节省物理存储空间。常用的日期与时间处理函数如下图所示:


  • 注意:不同格式的日期时间不能直接比较,例如Now()函数返回的内容包括日期和时间,它不能与'2018-08-26'直接比较,后者属于一个日期,不包括时间。应该用Date(Now())'2018-08-26'比较。

  • 数值处理函数:一般用于代数,三角或几何运算,这是DBMS最一致的函数。常用函数如下图所示:


第十二章:汇总数据

本章介绍什么是聚集函数(或译为聚合函数),如何利用它来汇总数据。

12.1 聚集函数

聚集函数(aggregate function):运行在行组上,计算和返回单个值的函数。

  • AVG函数:计算表中相关的所有列的平均值
  • COUNT函数:用于统计表中行的数目或符合要求的行的数目。其中COUNT(*)可以将空行统计在内,COUNT(column)会自动过滤值为NULL的行。
  • MAX函数:返回列中的最大值。
  • MIN函数:返回列中的最小值。
  • SUM函数:返回指定列值的总和。
12.2 聚集不同的值

对上述的5个聚集函数,默认是对所有行进行操作,可以通过指定DISTINCT关键字的方式过滤重复行。

12.3 组合聚集函数

SELECT 语句可以根据需要包含多个聚集函数:

推荐阅读更多精彩内容