1:查询基础
select * from table1;
执行结果: 查找表格中*(table1)的数据 然后输出所有
2:加条件查询
select * from table1 where age=1;
**执行结果:**查找表格中的数据(满足条件age=1) 的数据 然后输出所有结果
3: 加别名查询
select * from table1 as t where t.age=1
执行结果: 查找表格中的数据(嫌表名太长 我给取个其他名字t 然后在后面条件中就可以使用 使用方式:别名.字段) 然后输出所有结果
4: where 条件 between a and b
select * from table1 as t where t.age between 11 and 12;
**执行结果:**查找表格中的数据 然后 条件是age 介于 11和12 包含11和12 (注意11和12 不可以颠倒 写成12 and 11 就没有结果) 然后输出所有结果
5:like条件
(需要使用双引号引用 )(包括 %:代替任意字符 , _ 代替一个字符)
select * from table1 as t where t.name like "%f"
**执行结果:**查找表格中的数据 然后条件是 name行 以 f结尾的 然后输出所有结果
6:in 条件 (结果可以是查询语句的结果)
select * from table1 as t where t.age in (12,13,14);
**执行结果:**查找表格中的数据 条件是 age 分别为 12 13 14 的所有结果
7:聚合函数
select count(1) from table1 as t where age=12;
**执行结果:**执行顺序为 表格1中 满足条件age=12的内容 然后对结果进行 行数汇总
注:where 条件中不可以加聚合函数 ,聚合函数是对结果的处理 但是 where 条件是结果之前的条件
8:分组 groupby
select name from table1 as t group by name;
**执行结果:按照name 字段 对表格进行分组 如果每组分为多个结果, 那么就展示第一个字段(应该是如此)
提示: 在使用按照字段分组时, 尽量不要使用 * 来输出结果 , 而使用 对应的字段和聚合函数来进行查询.因为 会展示所有的字段 但是你是要查询 按照某个字段分组后的结果,所以 展示的单条信息所有值 会对你有误导.
②:分组加 聚合函数
select count(1),* form table1 as t group by name;
执行结果:: 第一步:按照name 字段 对表格进行分组 第二步:如果每组分为多个字段 那么就展示第一个字段(应该是如此) ,第三步:可以通过聚合函数来获取到组中成员集合的结果 比如count()行数, max( ) 和 min() 等
9:分组 group by + having
select * from table1 as t group by name having age>11;
执行结果:: 查询表单中的数据 然后对表单进行分组 分组之后结果 在按照条件进行筛选, 筛选之后的结果
注:“having 可以加聚合函数” 因为已经是分组之后的数据了 所以可以处理.
10: 分组 group by + having+ 聚合函数
select * from test2 GROUP BY NAMES having age=max(age)
执行结果: :第一步先 对表格进行分组 第二步:对分组后的结果 进行having 条件筛选, 第三步: 对having 条件筛选后的结果进行 再次筛选