SQL基本查询
简单的SQL查询一般是单关系查询,也就是在一个表内查询。这里面大概可以分为选择查询,投影查询。SQL语句一般不区分大小写,但为了SQL关键词和其它元素有所区分,一般将SQL关键词大写。
投影查询:从表中选取任意个列,其对应的一般SQL语句为:
SELECT <列名1>,<列名2>,.....,<列名n> FROM <表名>
如果是从表中选取所有的列,那么SQL语句可以简化为:
SELECT * FROM <表名>
条件查询:在投影查询的基础上,对列中的元素进行筛选。因为要加入条件,SELECT和FROM两个关键字显然不能满足需求,需要引入新的关键字WHERE,条件查询的一般形式为:
SELECT <列名1>,<列名2>,......,<列名n> FROM <表名> WHERE <条件表达式>
从形式上看,条件查询比投影查询多了一个WHERE语句。
对查询结果进行排序,当我们需要对查询结果排序的时候,就需要用到OEDER BY子句,一个完整的条件查询并排序的语句为:
SELECT <列名1>,<列名2>,......,<列名n> FROM <表名> WHERE <条件表达式> ORDER BY <列名>
因为排序往往是针对某一列的数据而言,所以ORDER BY子句后面一般是某个列名。
聚集查询:直白点说,是将SQL提供的聚集函数作用于查询结果。其实就是为了获取查询结果的一些统计量,恰如均值,最值,和值,结果的数量。
SQL提供了五个固有聚集函数:
平均值:AVG
最大值:MAX
最小值:MIN
总和:SUM
计数:COUNT
如果我们想知道一共有多少行数据,对应的SQL语句为:
SELECT COUNT(*) FROM <表名>
如果我们想知道某一列数据的均值,对应的SQL语句为:
SELECT AVG(<列名>) FROM <表名>
如果我们想要知道结果的某一统计量,一般只需要在SELECT后面对应的列名填入对应的聚集函数。
分组聚集:有时候,我们需要对查询的结果进行分组,显而易见,分组需要一定的依据,即根据某一列的数据进行分组。这个时候,需要用到GROUP BY子句,其一般形式为:
SELECT <列名>,若干聚集函数 FROM <表名> WHERE <条件表达式> GROUP BY <列名>
当SQL查询使用分组时,一个很重要的事情就是,出现在SELECT语句中单没有被聚集的列名必须出现在GROUP BY子句中,换句话说,任何没有出现在GROUP BY中的列名如果出现在SELECT语句中的话,只能在聚集函数内部。