测试人员常用sql语句

出自于博客https://www.cnblogs.com/qgc1995/p/9668369.html,根据自己的使用习惯做了一些小修改。

一、增删改查

1,查询 SELECT (查询表的所有信息)

执行后,结果被存储在一个结果表中(称为结果集)

SELECT 列名称(或*FROM 表名称                  ---------*代表全部列

 2,插入 INSERT(在表中插入新的行)

INSERT INTO 表名称 VALUES (值1, 值2,....)        ---------值与列相对应

 也可以指定所要插入数据的列:

INSERT INTO 表名称 (列1, 列2,...) VALUES (值1, 值2,....)  ---------未包括列的值为空 

 3,修改 UPDATE(修改表中某一列的值)

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值        ---------修改多列,列名称=新值,列名称=新值,...

 4,删除 DELETE(删除表中的某一行)

DELETE FROM 表名称 WHERE 列名称 =----------不加where条件,会删除所有行数据,慎重使用

  二、常用辅助查询

1,DISTINCT 语句(测试中,适用于去除重复值,并返回列)

SELECT DISTINCT 列名称 FROM 表名称      ----------针对多列重复,列名称,列名称,...

 2,WHERE 语句(测试中,适用于有条件选取语句)

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

 部分运算操作符如下:

操作符:描述
=:等于
<>:不等于
>:大于
<:小于
>=:大于等于
<=:小于等级
BETWEEN:在某个范围内
LIKE:模糊查询

3,AND 和 OR 语句(测试中,适用于结合多个where条件)

 AND 显示多个条件都满足的记录,而OR 只要有一个条件满足则显示。

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值 AND/OR 列 运算符 值     ---------可用圆括号来组成复杂的表达式

 4,LIKE与通配符(测试中,适用于查找特定的某一值)

SELECT 列名称 FROM 表名称 WHERELIKE-----------如查找姓氏为李的所有记录,where name like '李%'     

 值可以使用一下通配符组成:

通配符描述
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符

[^charlist]

或者

[!charlist]

不在字符列中的任何单一字符

5,IN与BETWEEN操作符(测试中,in适用于设置多个值,between适用于值的区间)

SELECT 列名称 FROM 表名称 WHEREIN (值1,值2,...)       

SELECT 列名称 FROM 表名称 WHEREBETWEEN 值1 AND 值2        ---------这里值1值2可以使数字,文本,日期,不同的数据库可能包含值1值2,也可能不包含

 6,ORDER BY 语句(测试中,适用于对结果集进行排序)

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值  ORDER BY 列名称 (DESCASC)   ---------多列排序,以逗号隔开,并以第一个为准,第一个有重复地再看第二个,以此类推

7,TOP, LIMIT, ROWNUM 子句(用于规定要返回的记录的数目)

SELECT *FROM 表名 LIMIT 5;          -----------不是所有数据库都支持TOP、ROWNUM,例如MySQL支持limit。

 三、函数

1,COUNT()函数 - 返回行数

SELECT COUNT(列名) FROM 表名              ---------也可以COUNT(*)代表所有行 
SELECT COUNT(列名) AS 自定义列名 FROM 表名    --------如果要重命名计数的行

2,AVG()函数 - 返回平均值

3,FIRST()函数 - 返回第一个记录的值

4,LAST()函数 - 返回最后一个记录的值

5,MAX()函数 - 返回最大值

6,MIN()函数 - 返回最小值

7,SUM()函数 - 返回总和 

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

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

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

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

10,NOW() 函数

SELECT NOW() FROM 表名;

四、表连接

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

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

2,Left Join左连接(左边表的所有数据都显示出来,右边的表数据只显示共同有的那部分)

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

3,Right Join右连接(与左连接相反)

4,full join 全连接(查询出左表和右表所有数据,但是去除两表的重复数据)

5,Union (合并两个或多个 SELECT 语句的结果集)

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

SELECT 列名 FROM 表A       -------默认显示唯一值,需要显示重复的值,用 UNION ALL
UNION
SELECT 列名 FROM 表B
原文地址:https://www.cnblogs.com/haifeima/p/12598539.html