单表查询

简单查询

select distinct 列1,列2 from 表名;

查询所有

select * from 表名;

设置别名

select 列1 别名,列2+列3+列4 as 别名
from exam;

*取消重复行

select distinct 列2 from 表名;

*使用where子句进行过滤查询

select 列名 from 表名 where 条件;
有数据则列1,列2….><=值

设置别名后使用where 子句仍然需要用原来的列名

高级查询

聚合函数

统计行数

select count(*) as 别名 from 表名;
as可加可不加

求和

select sum(列1),sum(列2),sum(列3)
from 表名;
单个数据求和

极值

select max(列1),min(列2)
from 表名;

平均值

select avg(列1)
from 表名;

排序查询

select 列名1 别名1,列名1+列名2+列名3 别名2
from 表名
order by 列名(有别名可写别名,例别名2) asc/desc;
升序/降序

asc 升序,desc 降序

分组查询

select 列名1
from 表名
group by 列名
having 表达式 #分组后筛选
order by asc/desc; #分组后排序

select 后的字段只能是group by 后的字段或包括在聚合函数中

select 列名1
from 表名
where 条件 #分组前筛选
group by 列名
having 表达式 #分组后筛选
order by asc/desc; #分组后排序

limit关键字查询(部分)

select 列名1
from 表名
limit 起始值记录数;
从0开始【0实际-1,个数】

数学函数

select 列名1 truncate( ,数) #truncate()数值小数后保留几位(舍去后几位)
round( ) #round()….(四舍五入)
ceil( ) #ceil( )返回大于数值的最小整数(向上取整)
floor( ) #floor( )返回小于数值的最小整数(向下取整)
from 表名
where 条件 #分组前筛选
group by 列名
having 表达式 #分组后筛选
order by asc/desc; #分组后排序
select 列名1 year(curdate( )) - year(列名) #year() 年 curdate( ) 当前日期
from 表名
where 条件 #分组前筛选
group by 列名
having 表达式 #分组后筛选
order by asc/desc; #分组后排序