mysql必知必会读书笔记——函数

一.计算字段

计算字段并不存在于实际的数据库表中,它是运行时在select语句内创建的。

注意:只有数据库知道select语句中哪些列是实际的表列,哪些是计算字段。从客户机(如应用程序)的角度来看,计算机字段的数据是以与其他列的数据相同的方式返回的。

1.拼接字段

拼接:将值联结到一起构成单个值。在mysql的select语句中,可以使用Concat()函数来拼接两个列。

如:select concat(name,'(',id,')') from test order by name;


concat()需要一个或多个列,各个串之间用逗号分隔。

2.在mysql中可以用rtrim()来删除数据右侧多余的空格,用ltrim()来删除数据左边的空格。

如:select concat(rtrim(name),'(',rtrim(id),')') from test order by name desc;

3.上面拼接出来的新计算列并没有名字,不能被客户机使用。为了解决这个问题,mysql支持别名(alias)

别名是一个字段或值得替换名。别名用as关键字赋予。如:

select concat(rtrim(name),'-',ltrim(id)) as name_id from test order by name;


4.执行算术计算

如:select id,name,age,id*age as id_age from test where age=2;


输出中显示的id_age列为一个计算字段。客户机应用现在可以使用这个新的计算列,就像使用其他列一样。


二.数据处理函数

1.日期和时间处理函数



如:select * from date where date='2012-07-23';


但这有时候会出现问题,当date的数据类型为:datetime时,这种类型存储日期及时间值。如:2004-09-01 11:30:09,那么where  date='2005-09-01'就会失败。

很简单的解决办法为:将给出的日期与列中的日期进行比较,而不是将给出的日期与整个劣质进行比较。

所以要使用Date()函数。

如:select * from date where Date(date) ='2015-09-08';


2.数值处理函数


如: select sqrt(price) as sqrt_price from date;


三.汇总数据

1.聚集函数:运行在行组上,计算和返回某个值的函数.


1):avg()通过对表中行数计数并计算特定列值之和。求得该列的平均值。avg()可用于返回所有列的平均值,也可以用来返回特定列或行的平均值。

如:返回date表中所有产品的平均价格:select avg(price) as avg_price from date;



也可以用来返回特定行的平均值:  select avg(price) as avg_price from date where year(date)=2015;


注意:avg()只能用于确定特定数值列的平均值,而且列名必须作为函数参数给出。为了获得多个列的平均值,必须使用多个av()函数。

avg()函数会忽略列值为null的行。

2.count()函数:确定表中行数或满足特定条件的行数

两种使用方式:

1)使用count(*)对表中行的数目进行计数,不管表列中的值是否为null

2)使用count(column)对特定列中具有值得行进行技术,忽略值为null的行。



3.max()函数:返回指定列中的最大值,要求指定列名。忽略列值为null的行。

4.min()函数:返回指定列中的最小值,要求指定列名。忽略列值为null的行。

5.sum()函数:返回指定列值得和。忽略列值为null的行。

2.组合聚集函数:select可根据需要包含多个聚集函数。

如:select count(*) as nums,min(price) as min_price,max(price) as max_price,avg(price) as price_avg from date;


猜你喜欢

转载自blog.csdn.net/sinat_38301574/article/details/80138032