【MySQL必知必会】学习总结(一)

本文介绍了MySQL中的几个实用技巧,包括如何使用Concat()函数拼接字符串,Date()和Time()函数处理日期时间,以及Count()、AVG()等聚集函数的用法。

闲鱼时间,学习巩固一下mysql中的常用知识,都是结合实际中可以用到的


1.拼接字串函数Concat()

select Concat(LTrim(name),' (',LTrim(role),')') from user;

注:Trim函数  MYSQL除了支持LTrim()(去掉串左边的空格),还支持RTrim以及Trim(去掉串右边的空格)

2.日期和时间处理函数

1>.使用Date函数过滤某一天的数据:

比如查询2015年9月1日出生的人,我看到有些人是这么处理的,birth  between  '2015-09-01 00:00:00' and '2015-09-01 23:59:59',额,这个在后台需要把时间拼接成
这样,查询也麻烦,使用Date()函数就比较方便,Date()指示MySQL仅提取列的日期部分,所有可以这样写:
select * from user where Date(birth)='2015-09-01'
注:如果不使用between也不使用Date函数直接等于查询的话,查出来的只是‘2015-09-01 00:00:00’时刻的数据
相应的,Time()函数只返回一个日期时间的时间部分

2>.使用Year()函数和Month()函数过滤某一时间段的数据:

比如我们想统计2015年9月出生的人,常见写法是Date(birth) between '2015-09-01' and '2015-09-30',但是这样写有一个问题,比如我们想查询的数据可能是动态的,
根据前台用户选择的过滤条件过滤,用户选择的是9月,查询9月的,若是其他月呐?9月是30天,其他月可能是31天也有可能是28天,那么我们可以使用如下方式解决:
select * from user where Year(birth) = 2015 and Month(birth) = 9;

这样我们只关心年份和月份,拼接一个动态SQL即可,而不用关心一个月到底有多少天。
注:Year()是一个从日期(或日期时间)中返回年份的函数。类似Month()从日期中返回月份

3.聚集函数

1>.Count()

count()函数有两种使用方式。
1.使用count(*)对表中行的数目进行计数,不管表列中包含的是空值(NULL)还是非空值
2.使用count(column)对特定列中具有值的行进行计数,忽略NULL值

2>.AVG()

注意一下AVG()和distinct搭配的这种用法
select AVG(distinct prod_price) as avg_price from products where vend_id=1003
先过滤相同价格的,然后再平均,不知道什么场景会用到,不过暂且作为一种用法列出来

3>组合聚集函数

select count(*) as num_items,min(prod_price) as price_min,max(prod_price) as price_max,avg(prod_price) as price_avg from products;






















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值