六、创建计算字段
存储在表中的各列不一定是应用程序所需要的,需要将表中的数据进行转换、计算或者格式化之后再传给程序处理。在数据库中对数据进行转换比在程序中速度快。
拼接字段
拼接:将值联接到一起构成单个值。
拼接操作符有‘+’和‘||’根据DBMS不同而支持的不同。
①、select RTRIM(colum1)+' ('+RTRIM(column2)+')' as tilte from table1 order by column1;
此例中使用+对column1和column2字段进行拼接返回。
因为许多数据库中,结合成计算字段的列会用空格填充,所以使用RTRIM函数去掉右边添加上的空格。
因为是拼接的字段,所以返回值没有名字,在程序引用的时候比较难,因此使用as关键字给返回值一个别名(title)。
执行算数运算
②、select column1,column2,column3,column2*column3 as title from table1 where column1=value;
sql支持的算数运算符:+、-、*、/ 加减乘除。
九、汇总数据
聚集函数:运行在行组上,计算和返回单个值的函数。
主要应用:♢确定表中行数(或者满足特定条件或包含特定值的行数)
♢获得表中行组的和。
♢找出表列(或者所有行或者特定行)的最大值、最小值、平均值。
sql的5个聚集函数:
------------------------------------------------------------------------------------------
函数 说明
------------------------------------------------------------------------------------------
AVG() 返回某列的平均值
SUM() 返回某列值之和
COUNT() 返回某列的行数
MAX() 返回某列的最大值
MIN() 返回某列的最小值
------------------------------------------------------------------------------------------
①、select AVG(column1) as name from table1 where column2=value;
计算column2值为value的column1的平均值。
avg()忽略列值为null的行。
②、select count(*) from table1;
计算table1表中的所有列的和,不忽略null值。
③、select count(column1) as name from table1;
count(column)对特定列中具有值的行进行计数,忽略null值。
对table1表使用count(*)时,结果为5,但是column1列中有3列有值,2列没有值,则对table1表使用count(column1),结果为3.
④、select max(column1) as name from table1;
max用于数值、日期的数据,也可用于文本列。如果数据按column1列排序,max返回最后一列。
min用法和max一样,用于文本时,如果数据按column1列排序,min返回最前边一列。
⑤、select sum(column1) as name from table1;
返回某列的和值。
⑥、select sum(column1*column2) as name from table2
sum函数可以用于合计计算值。
sum、max、min都忽略列值为null的行。
聚集不同值
⑦、select avg(distinct column1) as name from table1 where column2=value;
求column2=value时,不同column1值的平均值。
对于聚集函数,默认为all,当只统计不同值时,需要加上distinct。
distinct只能用于count(column),不能用于count(*),distinct必须指定列名,不能用于计算和表达式。
组合聚集函数
⑧、select count(column1),avg(column2),max(column2),min(column2) from table1.
一个select语句,使用多个聚集函数。