1.查询中用到的关键词主要包含六个,并且他们的顺序依次为 select--- distinct-from--where--group by--having--order by --- asc(desc) --limit 其中select和from是必须的,其他关键词是可选的,这六个关键词的执行顺序 与的书写顺序并不是一样的,而是按照下面的顺序来执行 from--where--group by--having--select--order by, from:需要从哪个数据表检索数据 where:过滤表中数据的条件 group by:如何将上面过滤出的数据分组 having:对上面已经分组的数据进行过滤的条件 select:查看结果集中的哪个列,或列的计算结果 order by :按照什么样的顺序来查看返回的数据 2.from后面的表关联,是自右向左解析的 而where条件的解析顺序是自下而上的。 也就是说,在写SQL文的时候,尽量把数据量大的表放在最右边来进行关联, 而把能筛选出大量数据的条件放在where语句的最下面。
注意:
1.where 语句中不能使用聚合函数,用having代替where
2.having 语句不能包含为grouy by的列名,因为先执行group by,再执行having,用where 语句代替
3.空值条件is null ,is not null
4.没有出现在goup by 语句中的列,不能放在select 语句中,但select可以包含聚合函数(计算未包含的列;
group by 有一个原则,就是 select 后面的所有列中,没有使用的列,必须出现在 group by 后面。
5.聚合函数max ,min,avg,sum
6.数据处理函数select lenght(d1) from t1 , length ,abs,substring,.........
7.union 联合结果集,select d1 from t1 union select d2 from t2 union select.... ,每个结果集列数必须相同,每一列类型必须相同; union 对联合的结果集重复的行,默认只保留一项,可用union all 解决