成品app直播源码搭建,Mysql查询的那点事儿
Mysql一直都是成品app直播源码搭建之中常用的的一门语言,其中查询更是常用的功能之一,今天就来说说关于查询的那些事儿。
SELECT是sql中的关键字之一,sql中的关键字还有INSERT、DELETE、UPDATE 等关键字,在这篇文章中,我们只要讲讲关于SELECT的部分;
1、SELECT查询的基础语法
查询表中所有列的数据
SELECT * FROM table
也可以查询表中一个或者多个列的数据,在列明之间用逗号 ,分割即可。
SELECT column_1,column_2,column_3,column_4 FROM table
起别名查询
SELECT column_1 as name FROM table
去重查询,从查询结果中去掉重复的行,使用的是关键字DISTINCT,并且,DISTINCT需要放在列的前面,如果写在列后面就会报错。
SELECT DISTINCT column_1 FROM table
分组查询,通常会与聚合函数放在一起使用,将结果集中的多行数据根据一个或者多个列进行分组,
使用 GROUP BY 可以对每个分组进行聚合计算,而不是对整个结果集进行计算。
SELECT column_1,column_2,FROM table GROUP BY column_1
使用 HAVING 子句,HAVING 子句与 GROUP BY 一起使用,用于对分组后的结果进行过滤:
SELECT column_1, SUM(column_2) AS total_num FROM table GROUP BY column_1 HAVING total_num > 10;
以上sql就是按照字段column_1进行分组查询column_2的总数信息,并且返回总数要大于10的所有数据
查询结果排序,比如排行榜等数据需要按照大小顺序对查询结果进行排序,就需要使用 ORDER BY 子句。使用 ORDER BY 子句有以下几个点需要注意:
1、ORDER BY后面是需要排序的列名,可以是一个或者多个,会按照后面的列名先后进行排序操作;
2、ORDER BY后面可以设置排列的顺序,在列名后面添加 ASC或者DESC,ASC 代表递增排序,DESC 代表递减排序,如果没有设置,会默认按照ASC升序排列,即便是select中没有查询的列名也可以 在ORDER BY后面设置排序;ORDER BY要在SELECT语句的最后,否则会报错。
当我们需要按照column_1数值的从高到低进行查询结果排序的时候,sql如下
SELECT column_1,column_2 FROM table ORDER BY column_1 DESC
当我们想要限定返回结果的数量的时候,使用 LIMIT 关键字,比如在上一个查询例子中只想查询前10条数据
SELECT column_1,column_2 FROM table ORDER BY column_1 DESC LIMIT 10
2、关于SELECT查询的执行顺序,查询可以说是针对数据库最频繁的操作,我们在查询过程中要注意几个关键点:
关键字必须按照顺序编写,比如讲我们以上讲过的所有关键字都放到一个查询语句中,那么顺序是:
SELECT DISTINCT ...... FROM ...... WHERE ......GROUP BY...... ORDER BY ...... ASC.....LIMIT ......
SELECT 语句的执行顺序:
FROM > WHERE > GROUP BY > HAVING > SELECT的字段 > DISTINCT > ORDER BY > LIMIT
如果写了一个复杂查询的sql,那么它的执行顺序如下
SELECT DISTINCT column_1, column_2, count(*) as num #顺序5 FROM table #顺序1 WHERE column_2 = 10 #顺序2 GROUP BY column_1 #顺序3 HAVING num > 10 #顺序4 ORDER BY num DESC #顺序6 LIMIT 10 #顺序7
以上就是成品app直播源码搭建,Mysql查询的那点事儿, 更多内容欢迎关注之后的文章