SQL子句

SQL子句

以下是一些觉的SQL子句:

1. GROUP BY

  • SQL GROUP BY语句用于将相同的数据排列到分组中。 GROUP BY语句与SQL SELECT语句一起使用。
  • GROUP BY语句在SELECT语句中跟随WHERE子句,并在ORDER BY子句之前。
  • GROUP BY语句与聚合函数一起使用。

语法

SELECT column  
FROM table_name  
WHERE conditions   
GROUP BY column  
ORDER BY column

假设有一个表:PRODUCT_MAST ,它的结构和数据记录如下所示 -

PRODUCT COMPANY QTY RATE COST
Item1 Com1 2 10 20
Item2 Com2 3 25 75
Item3 Com1 2 30 60
Item4 Com3 5 10 50
Item5 Com2 2 20 40
Item6 Cpm1 3 25 75
Item7 Com1 5 30 150
Item8 Com1 3 10 30
Item9 Com2 2 25 50
Item10 Com3 4 30 120

示例

SELECT COMPANY, COUNT(*)  
FROM PRODUCT_MAST   
GROUP BY COMPANY;

执行上面语句,得到结果如下 -

Com1   5
Com2   3
Com3   2

2. HAVING子句

  • HAVING子句用于指定分组或聚合的搜索条件。
  • 需要在GROUP BY子句中使用,如果没有使用GROUP BY子句,那么可以像使用WHERE子句一样使用HAVING函数。

语法:

SELECT column1, column2   
FROM table_name  
WHERE conditions   
GROUP BY column1, column2   
HAVING conditions  
ORDER BY column1, column2;

示例

SELECT COMPANY, COUNT(*)  
FROM PRODUCT_MAST   
GROUP BY COMPANY  
HAVING COUNT(*)>2;

执行上面语句,得到结果如下 -

Com1   5
Com2   3

3.ORDER BY子句

  • ORDER BY子句按升序或降序对结果集进行排序。
  • 它默认按升序对记录进行排序。 DESC关键字用于按降序对记录进行排序。

语法:

SELECT column1, column2  
FROM table_name  
WHERE condition  
ORDER BY column1, column2... ASC|DESC;

其中,

  • ASC:用于按表达式按升序对结果集进行排序。
  • DESC:它按表达式按降序对结果集进行排序。

示例: 按升序排序结果

假设有一个 CUSTOMER 表,它的结构和数据记录如下 -

CUSTOMER_ID NAME ADDRESS
12 Kathrin US
23 David Bangkok
34 Alina Dubai
45 John UK
56 Harry US

执行以下SQL语句:

SELECT *  
FROM CUSTOMER  
ORDER BY NAME;

得到以下结果 -

CUSTOMER_ID NAME ADDRESS
34 Alina Dubai
23 David Bangkok
56 Harry US
45 John UK
12 Kathrin US

示例:按降序排序结果
基于上面的CUSTOMER表,执行下面SQL语句 -

SELECT *  
FROM CUSTOMER  
ORDER BY NAME DESC;

得到以下结果 -

CUSTOMER_ID NAME ADDRESS
12 Kathrin US
45 John UK
56 Harry US
23 David Bangkok
34 Alina Dubai

目录

索引和B+树