MySQL学习笔记三

目录

一、常用聚合函数

二、分组查询--group by

三、字符串拼接-concat()

四、常见数据处理函数

1.文本处理

2.日期处理

3.数值处理


一、常用聚合函数

都具备空数据过滤功能

avg()--平均值,具备空数据过滤功能 avg(c_inprice)

count(*) ---计数  count(*)统计所有的数据,count(field)会排除空数据

max()  min()  sum()  聚合函数一般可用在select后

select avg(c_inprice),count(c_inprice),max(c_inprice),
min(c_inprice),sum(c_inprice) from commodity;

用count解决可能产生的空指针异常问题。如果用户名和密码不对应,返回0而不是返回null

select count(*) from user where name='' and pwd='';

二、分组查询--group by

单纯用group by作用和distinct一致,仅去除了重复项,但意义不一致

select c_type from commodity group by c_type;
select distinct from commodity;

分组最常用的是和聚合函数配合

#求出每种商品中的最高进价
select c_type,max(c_inprice) from commodity group by c_type;
#每种商品最大的库存有多少,一共有多少库存,售价最便宜的是多少,进价最贵的是多少
select max(c_num),sum(c_num),min(c_outprice),max(c_inprice) from commodity
group by c_type;

where是对原字段进行筛选,having是对分组后的计算结果字段进行筛选;where在group by前,having在group by后。

#进价超过1000的商品种类
select c_type,max(c_inprice) from commodity
group by c_type
having max(c_inprice)>1000;

先where后group by

先group by后having

先group by后order by

 整理

select ... from ...
select distinct ... from ...
select ... from ... where ① and or not > < >= <= =
                          ② between A and B
                          ③ field is not null
                          ④ field not in (A,B,C,...)
                          ⑤ field like '%a%'

select ... from ... where ... order by ... limit N

select ... from ... group by ...
select ... from ... group by ... having ...
where优于having

select c_name,concat('《',c_name,'》') from commodity where c_type=3;
select c_name from commodity where c_name like concat('%','玩具','%');

三、字符串拼接-concat()

简单拼接字符串

select concat('hello',' world','!');

加书名号,concat直接用用在select后

select c_name,concat('《',c_name,'》') from commodity where c_type=3;

拼接句子

select c_name,c_madein,concat(c_name,'的产地是',c_madein) from commodity;

用concat实现模糊查询,和where like一起使用;使用在where后

#找到含有"玩具"二字的c_name
select c_name from commodity where c_name like concat('%','玩具','%');
select c_name from commodity where c_name like '%玩具%';

四、常见数据处理函数

1.文本处理

①left('',n)返回字符串左边的字符

select left('jack',2);

②right('',n)返回字符串右边的字符

select right('jack',1);

③length('')返回字符串的长度

select length('jack');

④ltrim(' ')去除字符串左边的空格

select ltrim('   rose    ');

⑤rtrim(' ')去除字符串右边的空格

select rtrim('   rose    ');

⑥lower('')将所有的英文字母变成小写

select lower('ABC');

⑦upper('')将所有的小写字母变成大写

select upper('ac');

2.日期处理

now()--返回当前系统实践

select now();

year()、month()、day()、hour()、minute()、second()返回日期张的年、月、日、时、分、秒

select year(now());
select month(now());

3.数值处理

返回绝对值--abs()  返回余弦--cos() 返回余数--mod()  返回圆周率--pi()   返回一个0-1之间,左闭右开的随机数

select abs(-20);
select cos(30);
select mod(9,4);
select pi();
select rand();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值