• 软件测试工程师必备的SQL语句基础


    为一个软件测试工程师,我们在测试过程中往往需要对数据库数据进行操作,但是我们的操作大多以查询居多,有时会涉及到新增,修改,删除等操作,所以我们其实并不需要对数据库的操作有特别深入的了解,以下是我在工作过程中整理的比较常用的SQL语句。

    1.插入表数据:
    insert into 表名1 (字段1,字段2) values(字段1值,字段2值);
     
    2.删除表数据:
    delete:delete from 表名1 where 范围(删除表内符合条件的内容)
    delete from 表名1(清空数据表内容,不释放空间,即:下次插入表数据,id依然接着删除数据的id继续增加)
    truncate:truncate table 表名1(清空表数据,释放空间,即:下次插入表数据,id从1重新开始)
    drop:drop table 表名1(整张表被删除,要使用该表必须重新建)
     
    3.修改表数据:
    update 表名1 set 字段名 = ‘新值’ where 范围
     
    4.查询表数据:
     
    查询数据:select * from table1 where 范围
    总数:select count (*) from table1 where 范围
    select count (distinct(字段1) from table1 where 范围(distinct可去重)
    求和:select sum (字段1) from table1 where 范围
    平均:select avg (字段1) from table1 where 范围
    最大:select max (字段1) from table1 where 范围
    最小:select min (字段1) from table1 where 范围
    排序:select * from table1 where 范围 order by 排序字段名 desc(desc逆序排序。默认是正序排序asc)
    5.复杂查询:
    嵌套查询:多个查询语句嵌套在一起查询,一般嵌套的查询语句放在where 或 having 的后面
    例:
    select * from table1 where status in(select status from table2)
     
    多表连接查询:

    table1:

    id username
    1 张三
    2 李四
    3 王二
    table2:
    id job
    1 teacher
    2 student
    4 worker
     
    (1)内联查询(inner join……on……)
    select * from table1 a inner join table2 b on a.id=b.id
    查询结果:
    id
    username
    id
    job
    1
    张三
    1
    teacher
    2
    李四
    2
    student
    (2)左外联(left outer join……on……)
    select * from table1 a left outer join table2 b on a.id=b.id
    查询结果:
    id
    username
    id
    job
    1
    张三
    1
    teacher
    2
    李四
    2
    student
    3
    王二
    null
    null
    (3)右外联(right outer join……on……)
    select * from table1 a right outer join table2 b on a.id=b.id
    id
    username
    id
    job
    1
    张三
    1
    teacher
    2
    李四
    2
    student
    null
    null
    4
    worker
    (4)全外联(full outer join……on……)
    select * from table1 a full outer join table2 b on a.id=b.id
    id
    username
    id
    job
    1
    张三
    1
    teacher
    2
    李四
    2
    student
    3
    王二
    null
    null
    null
    null
    4
    worker
    6.group by分组
    根据某一个或多个列表字段进行分组统计。
    table1:
    id
    name
    course
    score
    1
    张一
    Chinese
    80
    2
    张二
    Chinese
    60
    3
    张三
    math
    65
    4
    张三
    Chinese
    70
    5
    张一
    math
    90
     
    查询每个用户的最高成绩:
    select name,max(score) as max_score from table1 group by name
    查询结果:先按用户名分组,再在每个组中查询找到最高分数
    id
    name
    max_score
    1
    张一
    90
    2
    张二
    60
    3
    张三
    70
     
    查询全班每科课程平均分
    select course,avg(score) as avg_score from table1 group by course
    查询结果:先按课程分组,再在每个组中查询找到平均分数
    id
    course
    avg_score
    1
    chinese
    70
    2
    math
    77.5
     
    having的用法:同where用法,having与group by连用。where是筛选单个记录,having是筛选分组记录(先分组,后筛选)

    作为一个初中级测试人员,一般情况下拥有以上的数据库知识就可以满足大部分的测试需要了。

  • 相关阅读:
    烂笔头@WP 的博文仅供自己学习的备忘录
    工具---搜索
    ubuntu---安装teamviewer和向日葵
    Ubuntu---标注工具 XXX-labelImg
    ubuntu---深度学习标注工具CasiaLabeler
    ubuntu---kazam安装
    ubuntu---notepadqq安装
    ubuntu---TeamViewer安装
    ubuntu---鼠标的乌龙事件
    ubuntu---终端下不显示 中文文字 的解决方法
  • 原文地址:https://www.cnblogs.com/chenlimei/p/9394876.html
Copyright © 2020-2023  润新知