测试人员需要了解的sql知识(提高篇)

时间:2021-06-30 08:09:01

上一篇写了一些基础的sql知识,这里再深挖一些常用的

------------------------------------------------------------------骄傲的分割线--------------------------------------------------------

常用SQL:

1,COUNT函数(测试中,适用于计数于指定查询的行数)

SELECT COUNT(列名) FROM 表名              ---------也可以COUNT(*)代表所有行 

如果要重命名计数的行

SELECT COUNT(列名) AS 自定义列名 FROM 表名    --------列名前加DISTINCT代表去除重复行

2,SUM函数(测试中,适用于合计所指定查询列的值)

SELECT SUM(列名) FROM 表名        -------统计该列的数据和

3,Group By函数(测试中,根据一列或多列对结果集进行分组)

SELECT 列名, 聚合函数(列名) FROM 表名   ---------这函数一般是合计函数
WHERE 列名 操作符 值
GROUP BY 列名 -------这个列名要与第一个列名一致,数量也一致

4,Having函数(测试中,通常与GROUP BY语句联合使用,过滤由GROUP BY语句返回的记录集)

SELECT 列名, 函数(列名) FROM 表名
WHERE 列名 操作符 值
GROUP BY 列名
HAVING 聚合函数(列名) 操作符 值 --------这里WHERE就不能代替HAVING

5,Inner Join内连接(测试中,与join相同,交叉捆绑多个表的数据,如果表中有至少一个匹配,则返回行)

SELECT 表A.列名, 表B.列名 FROM 表A        --------需要在列前加上对应的表名
INNER JOIN 表B
ON 表A.主键 = 表B.主键

6,Left Join外连接(测试中,从左表那里返回所有的行,即使在右表中没有匹配的行)

SELECT 表A.列名, 表B.列名 FROM 表A 
LEFT JOIN 表B
ON 表A.主键 = 表B.主键

其中Right Join与其相反,从右表那里返回所有的行,即使在左表中没有匹配的行

7,Union Join操作符(测试中,适用于合并两个或多个 SELECT 语句的结果集)

多个select语句必须拥有相同数量的列,列也必须拥有相似的数据类型,同时,每条 SELECT 语句中的列的顺序必须相同。

SELECT 列名 FROM 表A       -------默认显示唯一值,需要显示重复的值,用 UNION ALL
UNION
SELECT 列名 FROM 表B