《MYSQL必知必会》—10~13.创建计算字段、使用数据处理函数、使用聚集函数汇总数据,使用GROUP BY与HAVING分组数据及过滤

本文详细介绍了MySQL中如何创建计算字段,包括拼接字段、使用别名以及执行算术运算。此外,还讲解了数据处理函数,如文本、日期和时间、数值函数,并探讨了聚集函数,如AVG、COUNT、MAX、MIN和SUM的使用。文章还阐述了如何使用GROUP BY和HAVING来分组和过滤数据,以及在SQL查询中处理日期和时间的注意事项。
摘要由CSDN通过智能技术生成

1.如何创建计算字段以及怎样从应用程序中使用别名引用它们

1.1 什么是计算字段

  存储在数据库表中的数据一般不是应用程序所需要的格式。我们需要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化。计算字段并不实际存在于数据库表中。计算字段是运行时在SELECT语句内创建的。

可在SQL语句内完成的许多和格式化工作都可以直接在客户机应用程序内完成。一般来说,在数据库服务器上完成这些操作比在客户机中完成要快得多,因为DBMS是设计来快速有效地完成这种处理的。

1.2 拼接字段—concat()

  在MySQL的SELECT语句中,可使用concat()函数来拼接两个列。

# name (location)这样的格式列出供应商报表
SELECT Concat(vend_name,' (',vend_country,')') FROM vendors ORDER BY vend_name;

在这里插入图片描述
Concat()拼接串,即把多个串连接起来形成一个较长的串。Concat()需要一个或多个指定的串,各个串之间用逗号分隔。

SELECT Concat(RTrim(vend_name),'(',RTrim(vend_country),')') FROM vendors ORDER BY vend_name;

RTrim()函数去掉值右边的所有空格。通过使用RTrim(),各个列都进行了整理。
LTnim()函数去掉串左边的空格
Trim()函数去掉串左右两边的空格

1.3 使用别名—AS

  SQL支持列别名,别名用AS关键字赋予

SELECT Concat(RTrim(vend_name),'(',RTrim(vend_country), ')') AS vend_title FROM vendors ORDER BY vend_name;

在这里插入图片描述
SELECT语句本身与以前使用的相同,只不过这里的语句中计算字段之后跟了文本AS vend_title。它指示SQL创建一个包含指定计算的名为vend_title的计算字段。从输出中可以看到,结果与以前的相同,但现在列名为vend_title,任何客户机应用都可以按名引用这个列,就像它是一个实际的表列一样。

1.4 执行算术运算

  计算字段的另一常见用途是对检索出的数据进行算术计算

SELECT prod_id,quantity,item_price FROM orderitems WHERE order_num = 20005;

在这里插入图片描述
  计算汇总物品的价格

SELECT prod_id,quantity,item_price,quantity*item_price AS expanded_price FROM orderitems WHERE order_num = 20005;

在这里插入图片描述
输出中显示的expanded_price列为一个计算字段,此计算为quantity*item_price。客户机应用现在可以使用这个新计算列,就像使用其他列一样。
  MySQL支持表列出的基本算术操作符。此外圆括号可用来区分优先顺序。
在这里插入图片描述

SELECT Now()利用Now()函数返回当前日期和时间

2.MySQL支持何种数据处理函数以及如何使用这些函数

  如果你决定使用函数,应该保证做好代码注释,以便以后你(或其他人)能确切地知道所编写SQL代码的含义。
大多数SQL实现支持以下类型的函数:

  1. 用于处理文本串(如删除或填充值,转换值为大写或小写)的文本函数。
  2. 用于在数值数据上进行算术操作(如返回绝对值,进行代数运算)的数值函数。
  3. 用于处理日期和时间值并从这些值中提取特定成分(例如返回两个日期之差,检查日期有效性等)的日期和时间函数。
  4. 返回DBMS正使用的特殊信息(如返回用户登录信息,检查版本细节)的系统函数。
2.1 文本处理函数

  下面列出常用的文本处理函数<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值