本篇文章围绕SQL,重点为大家介绍创建计算字段、使用函数处理数据和汇总数据。
01创建计算字段
什么是计算字段?如何创建计算字段?以及如何从应用程序中使用别名引用它们?下面就为大家解答下刚刚的几个问题。
计算字段
存储在数据库表中的数据一般不是应用程序所需要的格式,举两个例子:
需要显示公司名,同时还需要显示公司的地址,但这两个信息存储在不同的表列中。
列数据是大小写混合的,但报表程序需要把所有数据按大写表示出来。
上述例子中,存储在表中的数据都不是应用程序所需要的。我们需要直接从数据库中检索出转换、计算或格式化过的数据,然后再在客户端应用程序中重新格式化。
拼接字段
假如要生成一个供应商报表,需要在格式化的名称中列出供应商的位置。此报表需要一个值,而表中数据存储在两个列vend_name和vend_country中,我们该如何创建这个组合值呢?
在SQL中的SELECT语句中,可使用一个特殊的操作符来拼接两个列。
根据你所使用的DBMS,此操作符可用加号(+)或两个竖杠(
)表示。
SQLServer使用+号,DB2、Oracle、PostgreSQL和SQLite使用
,在MySQL和MariaDB中,必须使用特殊的函数。
+号(多数DBMS使用这种语法):
SELECTvend_name+’(’+vend_country+’)’
FROMVendors
ORDERBYvend_name
语法:
SELECTvend_name
’(’
vend_country
’)’
FROMVendors
ORDERBYvend_name
使用MySQL或MariaDB时需要使用的语句:
SELECTConcat(vend_name,’(’,vend_country,’)’)
FROMVendors
ORDERBYvend_name
执行算术计算
计算字段的另一常见用途是对检索出的数据进行算术计算。
举个例子,Orders表包含收到的所有订单,OrderItems表包含每个订单中的各项物品。下面的SQL语句检索订单号中的所有物品。
SELECTprod_id,quantity,itemprice
FROMOrderItems
WHEREorder_num=
02使用函数处理数据
与大多数其他计算机语言一样,SQL也可以用函数来处理数据。
本文仅展示一些具有代表性的函数,大家并不需要一次全部记住,只需要知道有这样的函数就可以了,实际应用时可以随时查阅。
常见文本处理函数
日期和时间处理函数
日期和时间值以特殊的格式存储,以便能快速和有效地排序或过滤,并且节省物理存储空间,日期和时间函数在SQL中具有重要的作用,但每种DBMS都有自己的特殊形式。
Date函数
SQLServerDate函数
MySQLDate函数
数值处理函数
这些函数一般主要用于代数、三角或几何运算,因此不像字符串或日期、时间处理函数使用那么频繁。在主要DBMS的函数中,数值函数是最一致、最统一的函数。
03汇总数据
我们经常需要汇总数据,为此SQL提供了专门的函数,使用这些函数,SQL查询可用于检索数据,以便分析和报表生成。
这一类函数可以单独使用,如SELECTCOUNT(*)FROMstudent,也可以放在分组里使用,如SELECTclass,COUNT(*)FROMstudentgroupbyclass,下篇会为大家详细讲解分组数据。
聚集函数
聚集不同值
对所有行执行计算,ALL为默认行为,参数不需要指定,如果不指定DISTINCT,则假定为ALL。
举例:使用AVG()函数返回特定供应商提供的产品的平均价格。
SELECTAVG(DISTINCTprod_price)ASavg_price
FROMProducts
WHEREvend_id=’DLLO1’
组合聚集函数
所有聚集函数例子都只涉及单个函数,SELECT语句可根据需要包含多个聚集函数。
SELECTCOUNT(*)ASnum_items,
MIN(prod_price)ASprice_min,
MAX(prod_price)ASprice_max,
AVG(prod_price)ASprice_avg
FROMProducts
分析:这里用单条SELECT语句执行了4个聚集计算。
以上就是本次分享的全部内容,下期重点为大家讲解分组数据,我们下期再见!
整理不易,点赞、转发帮忙点一下!