LOADING

加载过慢请开启缓存 浏览器默认开启

MySql必知必会

创建分组

分组是在 SELECT 语句的 GROUP BY 子句中建立的

select vend_id, COUNT(*) AS nums_prods From products GROUP BY vend_id;

上面的 SELECT 语句指定了两个列, vend_id 包含产品供应商的ID,
num_prods 为计算字段(用 COUNT(*) 函数建立)。 GROUP BY 子句指
示MySQL按 vend_id 排序并分组数据。

select vend_id, COUNT(*) AS nums_prods From products WHRER prod_price >= 10 GROUP BY vend_id Having COUNT(*)>=2;

在第一条语句基础上进行限制查询,实现过滤分组,它列出具有2个(含)以上、价格为10(含)以上的产品的供应商

在具体使用 GROUP BY 子句前,需要知道一些重要的规定。

  • 1.GROUP BY 子句可以包含任意数目的列。这使得能对分组进行嵌套,为数据分组提供更细致的控制。
  • 2.如果在 GROUP BY 子句中嵌套了分组,数据将在最后规定的分组上,进行汇总。换句话说,在建立分组时,指定的所有列都一起计算(所以不能从个别的列取回数据)。
  • 3.GROUP BY 子句中列出的每个列都必须是检索列或有效的表达式(但不能是聚集函数)。如果在 SELECT 中使用表达式,则必须在GROUP BY 子句中指定相同的表达式。不能使用别名。
  • 4.除聚集计算语句外, SELECT 语句中的每个列都必须在 GROUP BY子句中给出。
  • 5.如果分组列中具有 NULL 值,则 NULL 将作为一个分组返回。如果列中有多行 NULL 值,它们将分为一组。
  • 6.GROUP BY 子句必须出现在 WHERE 子句之后, ORDER BY 子句之前。

子查询

嵌套在其他查询中的查询,子查询总是从内向外处理。例如:

select cust_id 
from orders 
where order_num in(select order_num 
                   from orderitems 
                   where prod_id='TNT2');

联结

SQL最强大的功能就是能在数据检索查询的执行中联结表

计算标准日期格式下,日期之间的插值:datediff()

本文作者:GWB
当前时间:2023-11-09 11:11:11
版权声明:本文由gwb原创,本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 国际许可协议。
转载请注明出处!