mysql select5种子句介绍
简要
一、五种字句
二、详解五种字句
一、五种字句
where、group by、having、order by、limit
二、详解五种字句
2.1、理解where子句
理解select 列1,列2… fromtable where where子句
a、 把where子句看成表达式。到table中查询满足表达式成立的行
b、 上述查询语句的执行顺序。先找到表table后,再执行where子句,满足表达式后进行展示。
c、比较运算符和逻辑运算符
<??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPGJsb2NrcXVvdGU+CjxoMz48c3Ryb25nPjIuMqGiZ3JvdXBieTwvc3Ryb25nPjwvaDM+CjxwPjIuMi4xoaLA7b3it9bX6df308OjrMrK08PT2s2zvMY8L3A+CjxwPjIuMi4yoaLT677bus+6r8r90rvG8MrK08Oho21heCjB0CmjrG1pbijB0CmjrGF2Zygpo6xzdW0oKaOsY291bnQoKTwvcD4KPHA+Mi4yLjOhorC01dW31tfpuvOjrNa7xNy1w7W9w7+49rfW1+m1xLXa0rvM9cr9vt08L3A+CjxwPjIuMi40oaKwuMD9IHRhYmxlse3S1Lywyv2+3cjnz8I6PC9wPgo8dGFibGUgYm9yZGVyPQ=="1" cellspacing="0" cellpadding="0">
typeid
name
price
1
A1
10
2
B1
11
1
A2
12
2
B2
22
详解1: select typeid,max(price) from table group by typeid
2.2.4.1、从table表中,按照typeid进行分组得到
typeid为1的数据
| typeid |
name |
price |
| 1 |
A1 |
10 |
| 1 |
A2 |
12 |
typeid为2的数据
| typeid |
name |
price |
| 2 |
B1 |
11 |
| 2 |
B2 |
22 |
2.2.4.2、从分组得到的数据中,按照聚合函数获取各个分组特定列的值
| typeid |
price |
| 1 |
12 |
| 2 |
22 |
详解2: select typeid, name,max(price) from table group by typeid
按照详解1的执行流程得到结果
| typeid |
name |
price |
| 1 |
A1 |
12 |
| 2 |
B1 |
22 |
备注: 在对比数据是否正确时,发现name有误。因为price最大值为12时,name为A2而不是A1。这是因为,在分组得到的结果中,利用聚合函数max进行比较获取最大值时,是从第一行往下比较,第一行的name为A1,往下进行比较替换的只是price值。因此,name仍然为第一行所得到的值。
2.3、having
having与where异同点:
1、having与where类似,可筛选数据;where后的表达式怎么写,having就怎么写
2、where针对表中的列发挥作用,查询数据;having针对查询结果中的列发挥作用,筛选数据
案例: 查找两门及两门以上不及格的同学的平均分
selectname,avg(score),sum(score<60) as s from stu group by name having s>=2;
2.4、orderby 与limit
1、order by 排序功能: 按照一个或多个字段对查询结果进行升序or降序排序.默认是升序
语法: select 字段1,字段2from table order by 字段1 [asc"desc]
2、limit 对查询结果取对应的条数
语法: select 字段1,字段2from table limit offset,n
(其中,0<=offset<总结果条数,n>0. offset为偏移量,n是指在offset的位置上取n条数据)
2.5、总结
1、语法顺序:
select 字段1,字段2….. from table where子句 group by 字段 having 子句 order by 字段 [asc|desc] limit n,m;
2、执行顺序
2.1、from table 找到源数据
2.2、where子句,把其看成一个表达式,在2.1的基础上一行一行判断表达式是否成立
2.3、group by 在2.2的基础上,对字段进行分组,得到查询结果
2.4、having 在2.3的基础上,对查询结果也是进行一行一行判断表达式是否成立。
2.5、order by 在2.4的基础上,对查询结果进行排序
2.6、limit 在2.5的基础上,取对应条数
2.7、select 在2.6的基础上,对结果进行展示
The quieter you become,the more you are able to hear!

