select …(输出) from…(获取数据)

where…(过滤)group by…(分组)

having…(过滤)order by…(排序)

limit…()限定个数

执行顺序

1.from 2.where 3.group by 4.select 5.having 6.order by 7 limit

数据的组织是以表的形式

sql相当于语言,可以查询数据库

mysql是软件,数据处理

Group by

group by 分组:分组展示后只展示第一行

group by 值1,值2.:值1值2相同的分一组

案例:

MySql回顾学习第一天

count(1)与count(分段语句)(计算)

区别:如果分段语句中有null那么count不记录null,其它情况二者一致

聚集函数:

1.count 计算

2.sum 求和

3.max 最大值

4.min 最小值

5.avg 平均值

6.group_concat (字符串的集合)

count的使用

count(1):全部数据

count(Name):有多少个不是空的数据

count(distinct Name):除了不是空之外将重复的值也要拿掉

sum(1)==count(1);

SQL

增删改查

对数据库有修改的操作是:增删改

对数据库没有修改的操作是:查(重要)

查询的SQL的结构是

select …from…where…group by…having…order by…limit…

写SQL的时候需要按照如下顺序写

from,where,group by,select,having,order by,limit

from的作用

from stu,将stu表中的数据都获取过来

where的作用

接受from中获取的数据进行过滤,and,or,!=

符合条件的数据留下,不符合条件的数据丢弃.

group by作用

group by classid,按照class id进行分组

分组后,如果遇到select,那么输出的代表是这一组的第一行数据

group by还可以和聚焦函数放在一起

having 的(再次过滤)

接受select以后的数据进行过滤

查询每个班里人数大于2的半径号是都是

MySql回顾学习第一天

select count(1) as n classId from stu group by classid having n>2;

select classid from stu group by classid having count(1)>2;

这一种方法是先将总数量搜出来,但不显示出来.在最后进行过滤.

order by(排序)

order by可以对两列进行排序.

第一列有有重复时第二列再次进行排序

Limit

limit 1,2(从第一条数据开始,去两条数据)

聚焦函数:

count(), sum(), max(), min(), avg(), group_concat()

创建数据库(schema)

create database 表名

插入数据使用的SQL

insert into stu(id,name,classid)values(. . . )

清空数据库

truncate 表名

MySql回顾学习第一天

使用group by进行输出的时候系统会默认按照分的组内容进行升序排序,加入desc就会进行降序排序

相关文章: