get测试人员须知的数据库使用技能

一、查询

1. 查询表格全部数据

SELECT * from 表名;

2. 查询单个表格的单个字段数据或者多个字段数据;字段之间英文都好隔开

select id from 表名;

select id,name from 表名;

3、单表条件查询+and,and连接不同的条件,相当于且,要同事满足的条件

单条件查询
select * from 表名 where id=1122;

多条件查询
select * from 表名 where id=1234 and name='小白';

4、分组查询+ group by

语法:SELECT 字段1 ,字段 2 from 表名  where 条件  GROUP BY 字段1/字段2;

需求;查询禅道中每个产品的bug总数,按产品id进行分组统计
SELECT COUNT(*),product from zt_bug where deleted=1 GROUP BY product;

结果:

get测试人员须知的数据库使用技能_第1张图片

过滤条件having,having是对已经分组的数据再进行处理,如,查询产品bug总数中bug总数大于1000的产品:

SELECT COUNT(*),product from zt_bug where deleted=1 GROUP BY product HAVING COUNT(*)>1000;

SELECT COUNT(*),product from zt_bug where deleted=1 and openedDate > '2023-01-01' GROUP BY product;  -- 查询2023年每个项目的bug总数,按照产品进行分组统计

可能会遇到的问题:

1)、group by 后面的字段只能是查询的字段中,如只能是product或者zt_bug表中的字段

5、in 语句

语法:匹配多个字段,select * from 表名 where 字段 in (字段1,字段2)

查询等级为1、2级的bug数据行

SELECT * FROM zt_bug zb  where severity in('1','2');

6、between 语句

语法:选取介于两个值之间的数据范围。BETWEEN 同 AND 一起搭配使用

WHERE column BETWEEN value1 AND value2
WHERE column NOT BETWEEN value1 AND value2

1、数值型,通常 value1 应该小于 value2,例子:查询9月零点之前的bug数

SELECT * FROM zt_bug  where openedDate BETWEEN '2023-09-01' AND '2023-09-30';

SELECT * FROM zt_bug  where openedDate BETWEEN '2023-09-01 00:00:00' AND '2023-09-30 23:59:59';

7、like 语句  

语法:

select * from table1 where code like ‘%abc’; 查询列值以abc结尾的

Select * from table1 where code like ‘abc%’ 查询列值以abc开头的

Select * from table1 where code like ‘%abc%’  查询列值包含abc的;
 

二、sql 加减乘除取余运算

语法:SELECT (UNIX_TIMESTAMP(结束时间)-UNIX_TIMESTAMP(开始时间))/(24*3600)  AS days from 表名  where 条件

使用时间错的方式,查询产品名字叫‘线上问题池’下的2023年后1级bug的平均处理工时(天数)

SELECT (AVG(UNIX_TIMESTAMP(resolvedDate)-UNIX_TIMESTAMP(openedDate)))/(24*3600)  AS days from zt_bug where resolvedDate != '00-00-00' and product ='86' and  severity=1 and openedDate >'2023-01-01';

三、排序

语法:SELECT 列名 FROM 表 ORDER BY 指定列名

1、升序,两种方式效果一致,都是按照1234

  1. SELECT * from zt_bug ORDER BY severity;

  2. SELECT * from zt_bug ORDER BY severity ASC ;

2、倒序,根据严重程度倒序/降序,也就是4321

SELECT * from zt_bug ORDER BY severity DESC ;

 3、多重排序,就像筛选条件中,以销量作为主要排序,销量一致时以价格作为第二条件排序

SELECT ID ,name  from zt_product ORDER BY ID  ASC , name DESC ;

4、根据列位置排序

语法:SELECT 所有列 FROM 表 ORDER BY 2,3

对查询的所有字段中,仅对13和14列字段机型升序排序

SELECT * FROM zt_bug zb  ORDER BY 13,14;

你可能感兴趣的:(数据库,sql)