mysql常见操作02

字段进行算术运算

格式:

(字段 符号 字段)

例如:

select (name+age) from students;

注意:

字符串参与运算字符串为0参与运算

拼接:

格式:

concat(str1,str2...)

例如:把name和age以-拼接显示

select concat(name,'-',age)from students;

格式:

concat_WS(separator,str1,str2,...)

例如:把name和age以-拼接显示

select concat('-',name,age)from students;

日期函数                

获取当前日期:

current_timestamp;--所有

current_timestamp();--所有

CURRENT_DATE();-- 年月日

CURRENT_DATE;-- 年月日

CURRENT_TIME();-- 时分秒

CURRENT_TIME;-- 时分秒

时间转str

格式:

date_format(date,format)

date:时间

format:格式

str转日期

格式:

str_to_date(str,formaat)

日期相减

格式:

datediff(expr1,expr2);

注意:只能相减年月日,时分秒参与运算结果为null

函数向日期添加指定的时间间隔

格式:

DATE_ADD(date,INTERVAL expr unit);

date:时间

INTERVAL:关键字

expr:间隔的数值

unit:年月日时分秒(..,...,day,..,..,..)

数组计算

round(x,d):四舍五入

x:值

d:保留几位小数点

ceil(x):向上取整

floor(x):向下取整

rand():随机数(0-1之间)

排序

格式:

order by 字段1 asc|desc,字段2 asc|desc...字段n asc|desc;

例如:按照age进行降序排列,age相同按照id进行降序排列

select * from students order by age desc,id desc;

注意:

默认升序asc,降序desc

如果有多个字段,按照先后顺序依次排序

group by 分组

格式:

group by 字段1,字段2...字段n;

注意:

多个字段,按照所有字段进行分组(一起分组)

有多少组显示多少条数据(默认情况下,没有经过条件筛选)

每组显示的数据为每组中默认第一条数据

gruop by 通常和聚合函数一起使用

筛选:where having

区别:having可以使用聚合函数

例如:

select * from students where age>=25;可以

select * from students having age>=25;可以

select sex,count(*) c from students group by sex  where c>4;不可以

select sex,count(*) c from students group by sex having c>4;可以

TopN:前几条数据

1.TopN        age最大的前三个

select * from students order by age desc limit 0,3;

2.分组Top1 按sex分组后,求分组中年龄最大的一个

1.select * from students where age in (select max(age) m from students group by sex);

2.select * from students as stu1 where age=(select max(age) from students as stu2 where stu1.sex=stu2.sex);

2.分组TopN 按sex分组后,求分组中年龄最大的三个

select * from students as stu1 where 3>(select count(*) students as stu2 where stu1.sex=stu2.sex and stu1.age<stu2.age);

mysql三大范式

1.原子性:字段不可在分割

2.唯一性:字段依赖于主键

3.冗余性:数据量过大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值