Skip to content
On this page

函数

计算字段

Concat() 拼接

SELECT Concat(column1, '(', column2, ')') FROM table

AS value 使用别名

SELECT Concat(column1, '(', column2, ')') AS columnValue FROM table

执行算术计算

SELECT column1 * column2 AS result FROM table

支持加减乘除,可以用圆括号区分优先顺序。

数据处理函数

文本处理

  • LTrim、RTrim、Trim:去除前尾空格
  • Left、Right:返回串左右边的字符
  • Locate:找出串的一个子串
  • Length:返回串的长度
  • SubString:返回子串的字符
  • Soundex:返回串的SOUNDEX值(对发音进行匹配)

日期和时间处理

MySQL使用的日期格式:yyyy-mm-dd

  • 获取某一天的订单,数据库中日期包含时间:SELECT id, name FROM orders WHERE Date(date) = '2005-09-01'
  • 获取某个时间范围内的订单:
    • SELECT id, name FROM orders WHERE Date(date) BETWEEN '2005-09-01 AND '2005-09-30'
    • SELECT id, name FROM orders WHERE YEAR(date) = '2005' AND Month(date) = '9'

数值处理函数

汇总数据

聚集函数

  • AVG()SELECT AVG(price) AS avg_price FROM products
    • 只能用于单列
    • NULL值会忽略
  • COUNT()SELECT COUNT(*) AS num_count FROM customers
    • COUNT(*)对表中行的数目进行计数,包括空值
    • COUNT(column)对特定列中具有值的行进行计数,忽略空值
  • MAX()SELECT MAX(price) AS max_price FROM products
    • 可以对非数值数据使用。如果数据按照相应的列排序,则MAX()返回最后一行
    • 忽略值NULL的行
  • MIN()SELECT MIN(price) AS max_price FROM products
    • 可以对非数值数据使用。如果数据按照相应的列排序,则MAX()返回最前一行
    • 忽略值NULL的行
  • SUM()SELECT SUM(quantity) AS items_ordered FROM orderitems WHERE order_num = 20005

聚集不同值

  • ALL:对所有行进行计算,默认行为,不需要指定
  • DISTINCT:对不同的行进行计算,必须使用列名,不能用于计算或表达式
    • SELECT AVG(DISTINCT price) AS avg_price FROM products WHERE id = 1003
    • 不能用于COUNT(DISTINCT)
    • MAX()MIN()使用没有意义

组合聚合函数

SELECT COUNT(*) AS num_items, MIN(price) AS price_min, MAX(price) AS price_max, AVG(price) AS price_avg FROM products

返回产品数量、最低价、最高价、平均价格

MIT Licensed | Copyright © 2021 - 2022