cencenhai 发表于 2018-10-6 06:32:42

MySQL第二天

查询

模糊查询(like)

范围查询

  非连续   select * from students where>
  连续select * from students where>


聚合
  快速得到统计数据


[*]count(*)
[*]sum()
[*]max()
[*]min()
[*]avg()
  示例:select count(*) from students
  select sum(id) from students where isDelete=0 ;
  子查询:select * from students where>

分组(group by)
  select gender as xb,count(*) as rs from students group by gender;
  分组后筛选
  select gender,count(*) from students group by gender having gender=1;
  having&where:

  where是对原始数据的筛选,针对from
  having是对分组后结果进行筛选,针对group by

排序(order by)
  默认升序

  

select * from 表名 order by 列1 asc|desc,列2 asc|desc,……      

分页
  

select * from 表名 limit start,count     


[*]从start开始(0),获取count条数据
[*]  第n页,显示m条数据
  select * from studentswhere isdelete=0limit (n-1)*m,m;

总结
  

select (distinct) *  
from 表名
  
where ....
  
group by ...
  
having ...
  
order by ...
  
limit start,count;
  

连接查询
  表与表之间建立关系
  select students.name,subjects.title,scores.score
  from scores
  inner join students on scores.stuid=students.id
  inner join subjects on scores.subid=subjects.id;

  通用模板
  

select distinct 列 *  
from 表名1
  
inner|left|right join 表名2 on 表之间的关系
  
group by ……having……
  
order by ……asc|desc
  
limit start,count
  

  5/11/2018 6:35:33 PM


页: [1]
查看完整版本: MySQL第二天